8#ifndef SkPictureRecord_DEFINED
9#define SkPictureRecord_DEFINED
60#define MASK_24 0x00FFFFFF
61#define UNPACK_8_24(combined, small, large) \
62 small = (combined >> 24) & 0xFF; \
63 large = combined & MASK_24
64#define PACK_8_24(small, large) ((small << 24) | large)
107 fRecordFlags = recordFlags;
121 void handleOptimization(
int opt);
122 size_t recordRestoreOffsetPlaceholder();
123 void fillRestoreOffsetPlaceholdersForCurrentStackLevel(uint32_t restoreOffset);
147 SkASSERT(((uint8_t) drawType) == drawType);
160 void addInt(
int value) {
171 void addPatch(
const SkPoint cubics[12]);
175 void addPoint(
const SkPoint& point);
184 void addText(
const void*
text,
size_t byteLength);
276 uint32_t operator()(
const SkPath&
p) {
return p.getGenerationID(); }
289 uint32_t fRecordFlags;
290 int fInitialSaveCount;
#define SkASSERT_RELEASE(cond)
#define PACK_8_24(small, large)
constexpr uint32_t SkToU32(S x)
friend class SkPictureRecord
static sk_sp< SkData > MakeEmpty()
void onDrawTextBlob(const SkTextBlob *blob, SkScalar x, SkScalar y, const SkPaint &paint) override
void onDrawImage2(const SkImage *, SkScalar, SkScalar, const SkSamplingOptions &, const SkPaint *) override
const skia_private::TArray< sk_sp< const SkPicture > > & getPictures() const
void onDrawSlug(const sktext::gpu::Slug *slug, const SkPaint &paint) override
void onDrawDrawable(SkDrawable *, const SkMatrix *) override
void onDrawRect(const SkRect &, const SkPaint &) override
void onDrawArc(const SkRect &, SkScalar, SkScalar, bool, const SkPaint &) override
void onDrawBehind(const SkPaint &) override
void onClipRect(const SkRect &, SkClipOp, ClipEdgeStyle) override
void validate(size_t initialOffset, size_t size) const
void onClipRRect(const SkRRect &, SkClipOp, ClipEdgeStyle) override
void recordSaveLayer(const SaveLayerRec &)
void recordScale(const SkMatrix &matrix)
size_t recordClipRRect(const SkRRect &rrect, SkClipOp op, bool doAA)
int addPathToHeap(const SkPath &path)
const skia_private::TArray< sk_sp< const SkTextBlob > > & getTextBlobs() const
void onDrawPaint(const SkPaint &) override
void onDrawPicture(const SkPicture *, const SkMatrix *, const SkPaint *) override
const skia_private::TArray< sk_sp< const SkImage > > & getImages() const
void recordRestore(bool fillInSkips=true)
void willRestore() override
const skia_private::TArray< sk_sp< const SkVertices > > & getVertices() const
void onDrawOval(const SkRect &, const SkPaint &) override
void onDrawAnnotation(const SkRect &, const char[], SkData *) override
void onDrawPoints(PointMode, size_t count, const SkPoint pts[], const SkPaint &) override
void onDrawEdgeAAQuad(const SkRect &, const SkPoint[4], QuadAAFlags, const SkColor4f &, SkBlendMode) override
sk_sp< SkData > opData() const
SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec &) override
void onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], const SkPoint texCoords[4], SkBlendMode, const SkPaint &paint) override
void didScale(SkScalar, SkScalar) override
void onDrawAtlas2(const SkImage *, const SkRSXform[], const SkRect[], const SkColor[], int, SkBlendMode, const SkSamplingOptions &, const SkRect *, const SkPaint *) override
bool onDoSaveBehind(const SkRect *) override
void onDrawVerticesObject(const SkVertices *, SkBlendMode, const SkPaint &) override
void onDrawRegion(const SkRegion &, const SkPaint &) override
bool onPeekPixels(SkPixmap *) override
void recordTranslate(const SkMatrix &matrix)
const SkWriter32 & writeStream() const
const skia_private::TArray< sk_sp< SkDrawable > > & getDrawables() const
void onClipRegion(const SkRegion &, SkClipOp) override
void recordConcat(const SkMatrix &matrix)
void onDrawShadowRec(const SkPath &, const SkDrawShadowRec &) override
size_t recordClipPath(int pathID, SkClipOp op, bool doAA)
void onDrawPath(const SkPath &, const SkPaint &) override
const skia_private::TArray< sk_sp< const sktext::gpu::Slug > > & getSlugs() const
void didConcat44(const SkM44 &) override
size_t recordClipRect(const SkRect &rect, SkClipOp op, bool doAA)
void onDrawRRect(const SkRRect &, const SkPaint &) override
void onResetClip() override
void onClipPath(const SkPath &, SkClipOp, ClipEdgeStyle) override
size_t recordClipRegion(const SkRegion ®ion, SkClipOp op)
void onDrawEdgeAAImageSet2(const ImageSetEntry[], int count, const SkPoint[], const SkMatrix[], const SkSamplingOptions &, const SkPaint *, SrcRectConstraint) override
void onDrawDRRect(const SkRRect &, const SkRRect &, const SkPaint &) override
void onDrawImageRect2(const SkImage *, const SkRect &, const SkRect &, const SkSamplingOptions &, const SkPaint *, SrcRectConstraint) override
void onClipShader(sk_sp< SkShader >, SkClipOp) override
void didTranslate(SkScalar, SkScalar) override
sk_sp< SkSurface > onNewSurface(const SkImageInfo &, const SkSurfaceProps &) override
void didSetM44(const SkM44 &) override
void onDrawImageLattice2(const SkImage *, const Lattice &, const SkRect &, SkFilterMode, const SkPaint *) override
void setFlags(uint32_t recordFlags)
void writeInt(int32_t value)
void writeScalar(SkScalar value)
sk_sp< SkData > snapshotAsData() const
size_t bytesWritten() const
unsigned useCenter Optional< SkMatrix > matrix
ClipOpAndAA opAA SkRegion region
sk_sp< const SkPicture > picture
sk_sp< SkBlender > blender SkRect rect
PODArray< SkColor > colors
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 keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size