8#ifndef skgpu_graphite_Device_DEFINED
9#define skgpu_graphite_Device_DEFINED
35enum class LoadOp : uint8_t;
43class TextureProxyView;
58 bool registerWithRecorder=
true);
67 std::string_view label,
68 bool registerWithRecorder=
true);
202 class IntersectionTreeSet;
209 bool onReadPixels(
const SkPixmap&,
int x,
int y)
override;
211 bool onWritePixels(
const SkPixmap&,
int x,
int y)
override;
225 enum class DrawFlags :
unsigned {
231 kIgnorePathEffect = 0b001,
244 bool skipColorXform =
false);
281 bool requireMSAA)
const;
286 void internalFlush();
301 std::unique_ptr<BoundsManager> fColorDepthBoundsManager;
303 std::unique_ptr<IntersectionTreeSet> fDisjointStencilSet;
312 bool fMSAASupported =
false;
315 bool fIsFlushing =
false;
325 uint32_t fScopedRecordingID = 0;
#define SK_DECL_BITMASK_OPS_FRIENDS(E)
static SkColorType colorType(AImageDecoder *decoder, const AImageDecoderHeaderInfo *headerInfo)
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
sk_sp< SkSpecialImage > snapSpecial()
const SkMatrix & localToDevice() const
const SkSurfaceProps & surfaceProps() const
ClipState clipState() const
sk_sp< SkDevice > createDevice(const CreateInfo &, const SkPaint *) override
TextureProxyView readSurfaceView() const
bool useDrawCoverageMaskForMaskFilters() const override
static sk_sp< Device > Make(Recorder *recorder, sk_sp< TextureProxy >, SkISize deviceSize, const SkColorInfo &, const SkSurfaceProps &, LoadOp initialLoadOp, bool registerWithRecorder=true)
void drawRect(const SkRect &r, const SkPaint &paint) override
sk_sp< SkSurface > makeSurface(const SkImageInfo &, const SkSurfaceProps &) override
void drawOval(const SkRect &oval, const SkPaint &paint) override
void clipRRect(const SkRRect &rrect, SkClipOp, bool aa) override
void drawEdgeAAQuad(const SkRect &rect, const SkPoint clip[4], SkCanvas::QuadAAFlags aaFlags, const SkColor4f &color, SkBlendMode mode) override
void drawAtlas(const SkRSXform[], const SkRect[], const SkColor[], int count, sk_sp< SkBlender >, const SkPaint &) override
Recorder * recorder() const override
void android_utils_clipAsRgn(SkRegion *) const override
void drawPaint(const SkPaint &paint) override
void drawImageLattice(const SkImage *, const SkCanvas::Lattice &, const SkRect &dst, SkFilterMode, const SkPaint &) override
void drawVertices(const SkVertices *, sk_sp< SkBlender >, const SkPaint &, bool) override
void replaceClip(const SkIRect &rect) override
bool drawBlurredRRect(const SkRRect &, const SkPaint &, float deviceSigma) override
const Transform & localToDeviceTransform()
bool drawAsTiledImageRect(SkCanvas *, const SkImage *, const SkRect *src, const SkRect &dst, const SkSamplingOptions &, const SkPaint &, SkCanvas::SrcRectConstraint) override
void drawRRect(const SkRRect &rr, const SkPaint &paint) override
void drawEdgeAAImageSet(const SkCanvas::ImageSetEntry[], int count, const SkPoint dstClips[], const SkMatrix preViewMatrices[], const SkSamplingOptions &, const SkPaint &, SkCanvas::SrcRectConstraint) override
void drawSpecial(SkSpecialImage *, const SkMatrix &localToDevice, const SkSamplingOptions &, const SkPaint &, SkCanvas::SrcRectConstraint) override
bool isClipAntiAliased() const override
void clipRegion(const SkRegion &globalRgn, SkClipOp) override
SkStrikeDeviceInfo strikeDeviceInfo() const override
void drawShadow(const SkPath &, const SkDrawShadowRec &) override
void drawPath(const SkPath &path, const SkPaint &paint, bool pathIsMutable=false) override
void flushPendingWorkToRecorder()
bool isScratchDevice() const
void drawImageRect(const SkImage *, const SkRect *src, const SkRect &dst, const SkSamplingOptions &, const SkPaint &, SkCanvas::SrcRectConstraint) override
Device * asGraphiteDevice() override
void drawMesh(const SkMesh &, sk_sp< SkBlender >, const SkPaint &) override
bool isClipRect() const override
void drawCoverageMask(const SkSpecialImage *, const SkMatrix &localToDevice, const SkSamplingOptions &, const SkPaint &) override
void clipRect(const SkRect &rect, SkClipOp, bool aa) override
void setImmutable() override
void drawDrawable(SkCanvas *, SkDrawable *, const SkMatrix *) override
sk_sp< Image > makeImageCopy(const SkIRect &subset, Budgeted, Mipmapped, SkBackingFit)
void popClipStack() override
SkIRect devClipBounds() const override
sk_sp< Task > lastDrawTask() const
void drawPoints(SkCanvas::PointMode mode, size_t count, const SkPoint[], const SkPaint &paint) override
void pushClipStack() override
bool isClipWideOpen() const override
bool isClipEmpty() const override
void clipPath(const SkPath &path, SkClipOp, bool aa) override
drawSlug(r.slug.get(), r.paint)) DRAW(DrawAtlas
PODArray< SkPoint > dstClips
sk_sp< SkBlender > blender SkRect rect
PODArray< SkMatrix > preViewMatrices
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive mode
SK_MAKE_BITMASK_OPS(DawnErrorType)
MonotonicValue< PaintersDepthSequence > PaintersDepth
std::function< void(const sktext::gpu::AtlasSubRun *subRun, SkPoint drawOrigin, const SkPaint &paint, sk_sp< SkRefCnt > subRunStorage, sktext::gpu::RendererData)> AtlasDrawDelegate
skgpu::graphite::Transform Transform