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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/core/SkPicture.cpp » ('j') | src/core/SkPicturePlayback.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2007 The Android Open Source Project 3 * Copyright 2007 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef SkPicture_DEFINED 10 #ifndef SkPicture_DEFINED
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 not active. This does not alter the refcnt on the canvas (if present). 141 not active. This does not alter the refcnt on the canvas (if present).
142 */ 142 */
143 SkCanvas* getRecordingCanvas() const; 143 SkCanvas* getRecordingCanvas() const;
144 /** Signal that the caller is done recording. This invalidates the canvas 144 /** Signal that the caller is done recording. This invalidates the canvas
145 returned by beginRecording/getRecordingCanvas, and prepares the picture 145 returned by beginRecording/getRecordingCanvas, and prepares the picture
146 for drawing. Note: this happens implicitly the first time the picture 146 for drawing. Note: this happens implicitly the first time the picture
147 is drawn. 147 is drawn.
148 */ 148 */
149 void endRecording(); 149 void endRecording();
150 150
151 // An OperationList encapsulates a set of operation offsets into the picture byte
152 // stream along with the CTMs needed for those operation.
153 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.
154 public:
155 // If valid returns false then there is no optimization data
156 // present. All the draw operations need to be issued.
157 virtual bool valid() const { return false; }
158
159 // The following three entry points should only be accessed if
160 // 'valid' returns true.
161 virtual int numOps() const { SkASSERT(false); return 0; };
162 // The offset in the picture of the operation to execute.
163 virtual uint32_t offset(int index) const { SkASSERT(false); return 0; };
164 // The CTM that must be installed for the operation to behave correctly
165 virtual const SkMatrix& matrix(int index) const { SkASSERT(false); retur n SkMatrix::I(); }
166
167 static const OperationList& InvalidList();
168
169 private:
170 typedef SkNoncopyable INHERITED;
171 };
172
173 /** PRIVATE / EXPERIMENTAL -- do not call
174 Return the operations required to render the content inside 'queryRect'.
175 */
176 const OperationList& EXPERIMENTAL_getActiveOps(const SkIRect& queryRect);
177
151 /** Replays the drawing commands on the specified canvas. This internally 178 /** Replays the drawing commands on the specified canvas. This internally
152 calls endRecording() if that has not already been called. 179 calls endRecording() if that has not already been called.
153 @param canvas the canvas receiving the drawing commands. 180 @param canvas the canvas receiving the drawing commands.
154 */ 181 */
155 void draw(SkCanvas* canvas, SkDrawPictureCallback* = NULL); 182 void draw(SkCanvas* canvas, SkDrawPictureCallback* = NULL);
156 183
157 /** Return the width of the picture's recording canvas. This 184 /** Return the width of the picture's recording canvas. This
158 value reflects what was passed to setSize(), and does not necessarily 185 value reflects what was passed to setSize(), and does not necessarily
159 reflect the bounds of what has been recorded into the picture. 186 reflect the bounds of what has been recorded into the picture.
160 @return the width of the picture's recording canvas 187 @return the width of the picture's recording canvas
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 */ 322 */
296 class SK_API SkDrawPictureCallback { 323 class SK_API SkDrawPictureCallback {
297 public: 324 public:
298 SkDrawPictureCallback() {} 325 SkDrawPictureCallback() {}
299 virtual ~SkDrawPictureCallback() {} 326 virtual ~SkDrawPictureCallback() {}
300 327
301 virtual bool abortDrawing() = 0; 328 virtual bool abortDrawing() = 0;
302 }; 329 };
303 330
304 #endif 331 #endif
OLDNEW
« 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