blob: d85f653be401dd8b1ff34802026fff09cad159bc [file] [log] [blame]
/*
* Copyright 2022 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef skgpu_graphite_CommandTypes_DEFINED
#define skgpu_graphite_CommandTypes_DEFINED
#include "include/core/SkRect.h"
#include "include/gpu/graphite/GraphiteTypes.h"
namespace skgpu::graphite {
// specifies a single region for copying, either from buffer to texture, or vice versa
struct BufferTextureCopyData {
size_t fBufferOffset;
size_t fBufferRowBytes;
SkIRect fRect;
unsigned int fMipLevel;
};
// Specifies a scissor, which can only be subsequently queried given a translation and clip which
// are assumed to be applied to all commands in the render pass in which the scissor is set.
class Scissor {
public:
explicit Scissor(const SkIRect& rect) : fRect(rect) {}
SkIRect getRect(const SkIVector& replayTranslation, const SkIRect& replayClip) const {
SkIRect rect = fRect.makeOffset(replayTranslation);
if (!rect.intersect(replayClip)) {
rect.setEmpty();
}
return rect;
}
private:
const SkIRect fRect;
};
} // namespace skgpu::graphite
#endif // skgpu_graphite_DrawTypes_DEFINED