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

Unified Diff: include/core/SkPicture.h

Issue 195793010: Add a means of extracting active operations from SkPicture (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: more clean up Created 6 years, 9 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
« no previous file with comments | « no previous file | src/core/SkPicture.cpp » ('j') | src/core/SkPicturePlayback.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/core/SkPicture.h
===================================================================
--- include/core/SkPicture.h (revision 13766)
+++ include/core/SkPicture.h (working copy)
@@ -148,6 +148,33 @@
*/
void endRecording();
+ // An OperationList encapsulates a set of operation offsets into the picture byte
+ // stream along with the CTMs needed for those operation.
+ class OperationList : public SkNoncopyable {
reed1 2014/03/14 18:28:32 does this class need to be public? Can it instead
robertphillips 2014/03/14 18:36:08 SkPicturePlayback provides the impl and is already
robertphillips 2014/03/14 19:23:23 Done.
+ public:
+ // If valid returns false then there is no optimization data
+ // present. All the draw operations need to be issued.
+ virtual bool valid() const { return false; }
+
+ // The following three entry points should only be accessed if
+ // 'valid' returns true.
+ virtual int numOps() const { SkASSERT(false); return 0; };
+ // The offset in the picture of the operation to execute.
+ virtual uint32_t offset(int index) const { SkASSERT(false); return 0; };
+ // The CTM that must be installed for the operation to behave correctly
+ virtual const SkMatrix& matrix(int index) const { SkASSERT(false); return SkMatrix::I(); }
+
+ static const OperationList& InvalidList();
+
+ private:
+ typedef SkNoncopyable INHERITED;
+ };
+
+ /** PRIVATE / EXPERIMENTAL -- do not call
+ Return the operations required to render the content inside 'queryRect'.
+ */
+ const OperationList& EXPERIMENTAL_getActiveOps(const SkIRect& queryRect);
+
/** Replays the drawing commands on the specified canvas. This internally
calls endRecording() if that has not already been called.
@param canvas the canvas receiving the drawing commands.
« no previous file with comments | « no previous file | src/core/SkPicture.cpp » ('j') | src/core/SkPicturePlayback.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698