Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Unified Diff: include/private/SkRecords.h

Issue 2203453002: Sketch SkPictureRecorder::optimizeFor(GrContext*). (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: enough for demo Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: include/private/SkRecords.h
diff --git a/include/private/SkRecords.h b/include/private/SkRecords.h
index 0b50d1163d46594dafcbb422b8498c4fbcd54c86..32da3dd37704c195bd941fbced5712ebda4a4d65 100644
--- a/include/private/SkRecords.h
+++ b/include/private/SkRecords.h
@@ -153,6 +153,7 @@ enum Tags {
kDraw_Tag = 1, // May draw something (usually named DrawFoo).
kHasImage_Tag = 2, // Contains an SkImage or SkBitmap.
kHasText_Tag = 4, // Contains text.
+ kHasPaint_Tag = 8, // May have an SkPaint field, at least optionally.
};
// A macro to make it a little easier to define a struct that can be stored in SkRecord.
@@ -169,7 +170,7 @@ RECORD(Restore, 0,
TypedMatrix matrix);
RECORD(Save, 0);
-RECORD(SaveLayer, 0,
+RECORD(SaveLayer, kHasPaint_Tag,
Optional<SkRect> bounds;
Optional<SkPaint> paint;
sk_sp<const SkImageFilter> backdrop;
@@ -208,7 +209,7 @@ RECORD(ClipRegion, 0,
SkRegion::Op op);
// While not strictly required, if you have an SkPaint, it's fastest to put it first.
-RECORD(DrawDRRect, kDraw_Tag,
+RECORD(DrawDRRect, kDraw_Tag|kHasPaint_Tag,
SkPaint paint;
SkRRect outer;
SkRRect inner);
@@ -216,90 +217,90 @@ RECORD(DrawDrawable, kDraw_Tag,
Optional<SkMatrix> matrix;
SkRect worstCaseBounds;
int32_t index);
-RECORD(DrawImage, kDraw_Tag|kHasImage_Tag,
+RECORD(DrawImage, kDraw_Tag|kHasImage_Tag|kHasPaint_Tag,
Optional<SkPaint> paint;
sk_sp<const SkImage> image;
SkScalar left;
SkScalar top);
-RECORD(DrawImageRect, kDraw_Tag|kHasImage_Tag,
+RECORD(DrawImageRect, kDraw_Tag|kHasImage_Tag|kHasPaint_Tag,
Optional<SkPaint> paint;
sk_sp<const SkImage> image;
Optional<SkRect> src;
SkRect dst;
SkCanvas::SrcRectConstraint constraint);
-RECORD(DrawImageNine, kDraw_Tag|kHasImage_Tag,
+RECORD(DrawImageNine, kDraw_Tag|kHasImage_Tag|kHasPaint_Tag,
Optional<SkPaint> paint;
sk_sp<const SkImage> image;
SkIRect center;
SkRect dst);
-RECORD(DrawOval, kDraw_Tag,
+RECORD(DrawOval, kDraw_Tag|kHasPaint_Tag,
SkPaint paint;
SkRect oval);
-RECORD(DrawPaint, kDraw_Tag,
+RECORD(DrawPaint, kDraw_Tag|kHasPaint_Tag,
SkPaint paint);
-RECORD(DrawPath, kDraw_Tag,
+RECORD(DrawPath, kDraw_Tag|kHasPaint_Tag,
SkPaint paint;
PreCachedPath path);
-RECORD(DrawPicture, kDraw_Tag,
+RECORD(DrawPicture, kDraw_Tag|kHasPaint_Tag,
Optional<SkPaint> paint;
sk_sp<const SkPicture> picture;
TypedMatrix matrix);
-RECORD(DrawShadowedPicture, kDraw_Tag,
+RECORD(DrawShadowedPicture, kDraw_Tag|kHasPaint_Tag,
Optional<SkPaint> paint;
sk_sp<const SkPicture> picture;
TypedMatrix matrix);
-RECORD(DrawPoints, kDraw_Tag,
+RECORD(DrawPoints, kDraw_Tag|kHasPaint_Tag,
SkPaint paint;
SkCanvas::PointMode mode;
unsigned count;
SkPoint* pts);
-RECORD(DrawPosText, kDraw_Tag|kHasText_Tag,
+RECORD(DrawPosText, kDraw_Tag|kHasText_Tag|kHasPaint_Tag,
SkPaint paint;
PODArray<char> text;
size_t byteLength;
PODArray<SkPoint> pos);
-RECORD(DrawPosTextH, kDraw_Tag|kHasText_Tag,
+RECORD(DrawPosTextH, kDraw_Tag|kHasText_Tag|kHasPaint_Tag,
SkPaint paint;
PODArray<char> text;
unsigned byteLength;
SkScalar y;
PODArray<SkScalar> xpos);
-RECORD(DrawRRect, kDraw_Tag,
+RECORD(DrawRRect, kDraw_Tag|kHasPaint_Tag,
SkPaint paint;
SkRRect rrect);
-RECORD(DrawRect, kDraw_Tag,
+RECORD(DrawRect, kDraw_Tag|kHasPaint_Tag,
SkPaint paint;
SkRect rect);
-RECORD(DrawText, kDraw_Tag|kHasText_Tag,
+RECORD(DrawText, kDraw_Tag|kHasText_Tag|kHasPaint_Tag,
SkPaint paint;
PODArray<char> text;
size_t byteLength;
SkScalar x;
SkScalar y);
-RECORD(DrawTextBlob, kDraw_Tag|kHasText_Tag,
+RECORD(DrawTextBlob, kDraw_Tag|kHasText_Tag|kHasPaint_Tag,
SkPaint paint;
sk_sp<const SkTextBlob> blob;
SkScalar x;
SkScalar y);
-RECORD(DrawTextOnPath, kDraw_Tag|kHasText_Tag,
+RECORD(DrawTextOnPath, kDraw_Tag|kHasText_Tag|kHasPaint_Tag,
SkPaint paint;
PODArray<char> text;
size_t byteLength;
PreCachedPath path;
TypedMatrix matrix);
-RECORD(DrawTextRSXform, kDraw_Tag|kHasText_Tag,
+RECORD(DrawTextRSXform, kDraw_Tag|kHasText_Tag|kHasPaint_Tag,
SkPaint paint;
PODArray<char> text;
size_t byteLength;
PODArray<SkRSXform> xforms;
Optional<SkRect> cull);
-RECORD(DrawPatch, kDraw_Tag,
+RECORD(DrawPatch, kDraw_Tag|kHasPaint_Tag,
SkPaint paint;
PODArray<SkPoint> cubics;
PODArray<SkColor> colors;
PODArray<SkPoint> texCoords;
sk_sp<SkXfermode> xmode);
-RECORD(DrawAtlas, kDraw_Tag|kHasImage_Tag,
+RECORD(DrawAtlas, kDraw_Tag|kHasImage_Tag|kHasPaint_Tag,
Optional<SkPaint> paint;
sk_sp<const SkImage> atlas;
PODArray<SkRSXform> xforms;
@@ -308,7 +309,7 @@ RECORD(DrawAtlas, kDraw_Tag|kHasImage_Tag,
int count;
SkXfermode::Mode mode;
Optional<SkRect> cull);
-RECORD(DrawVertices, kDraw_Tag,
+RECORD(DrawVertices, kDraw_Tag|kHasPaint_Tag,
SkPaint paint;
SkCanvas::VertexMode vmode;
int vertexCount;
@@ -318,7 +319,7 @@ RECORD(DrawVertices, kDraw_Tag,
sk_sp<SkXfermode> xmode;
PODArray<uint16_t> indices;
int indexCount);
-RECORD(DrawAnnotation, 0,
+RECORD(DrawAnnotation, 0, // TODO: kDraw_Tag, skia:5548
SkRect rect;
SkString key;
sk_sp<SkData> value);

Powered by Google App Engine
This is Rietveld 408576698