aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkRecordDraw.h
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2015-05-07 13:41:07 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-05-07 13:41:07 -0700
commitc92c129ff85b05a714bd1bf921c02d5e14651f8b (patch)
treeea2f915b36a5f6abb746827a4a6f650d5ff13310 /src/core/SkRecordDraw.h
parent2fbd4068bde6a9fb50341c0bdfbb8bf18b70d015 (diff)
Sketch splitting SkPicture into an interface and SkBigPicture.
Adds small pictures for drawRect(), drawTextBlob(), and drawPath(). These cover about 89% of draw calls from Blink SKPs, and about 25% of draw calls from our GMs. SkPicture handles: - serialization and deserialization - unique IDs Everything else is left to the subclasses: - playback(), cullRect() - hasBitmap(), hasText(), suitableForGPU(), etc. - LayerInfo / AccelData if applicable. The time to record a 1-op picture improves a good chunk (2 mallocs to 1), and the time to record a 0-op picture greatly improves (2 mallocs to none): picture_overhead_draw: 450ns -> 350ns picture_overhead_nodraw: 300ns -> 90ns BUG=skia: Review URL: https://codereview.chromium.org/1112523006
Diffstat (limited to 'src/core/SkRecordDraw.h')
-rw-r--r--src/core/SkRecordDraw.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/SkRecordDraw.h b/src/core/SkRecordDraw.h
index 7bbab81b5a..5b248cfbd5 100644
--- a/src/core/SkRecordDraw.h
+++ b/src/core/SkRecordDraw.h
@@ -9,6 +9,7 @@
#define SkRecordDraw_DEFINED
#include "SkBBoxHierarchy.h"
+#include "SkBigPicture.h"
#include "SkCanvas.h"
#include "SkMatrix.h"
#include "SkRecord.h"
@@ -20,7 +21,7 @@ class SkLayerInfo;
void SkRecordFillBounds(const SkRect& cullRect, const SkRecord&, SkBBoxHierarchy*);
void SkRecordComputeLayers(const SkRect& cullRect, const SkRecord& record,
- const SkPicture::SnapshotArray*,
+ const SkBigPicture::SnapshotArray*,
SkBBoxHierarchy* bbh, SkLayerInfo* data);
// Draw an SkRecord into an SkCanvas. A convenience wrapper around SkRecords::Draw.