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

Side by Side Diff: include/core/SkPicture.h

Issue 203333005: Revert of r13836 due to Chromium cc_unittests failures (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: 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') | no next file with comments »
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 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 const AccelData* fAccelData; 301 const AccelData* fAccelData;
302 302
303 // Create a new SkPicture from an existing SkPicturePlayback. Ref count of 303 // Create a new SkPicture from an existing SkPicturePlayback. Ref count of
304 // playback is unchanged. 304 // playback is unchanged.
305 SkPicture(SkPicturePlayback*, int width, int height); 305 SkPicture(SkPicturePlayback*, int width, int height);
306 306
307 // For testing. Derived classes may instantiate an alternate 307 // For testing. Derived classes may instantiate an alternate
308 // SkBBoxHierarchy implementation 308 // SkBBoxHierarchy implementation
309 virtual SkBBoxHierarchy* createBBoxHierarchy() const; 309 virtual SkBBoxHierarchy* createBBoxHierarchy() const;
310 private: 310 private:
311 // An OperationList encapsulates a set of operation offsets into the picture byte
312 // stream along with the CTMs needed for those operation.
313 class OperationList : public SkNoncopyable {
314 public:
315 virtual ~OperationList() {}
316
317 // If valid returns false then there is no optimization data
318 // present. All the draw operations need to be issued.
319 virtual bool valid() const { return false; }
320
321 // The following three entry points should only be accessed if
322 // 'valid' returns true.
323 virtual int numOps() const { SkASSERT(false); return 0; };
324 // The offset in the picture of the operation to execute.
325 virtual uint32_t offset(int index) const { SkASSERT(false); return 0; };
326 // The CTM that must be installed for the operation to behave correctly
327 virtual const SkMatrix& matrix(int index) const { SkASSERT(false); retur n SkMatrix::I(); }
328
329 static const OperationList& InvalidList();
330
331 private:
332 typedef SkNoncopyable INHERITED;
333 };
334
335 /** PRIVATE / EXPERIMENTAL -- do not call
336 Return the operations required to render the content inside 'queryRect'.
337 */
338 const OperationList& EXPERIMENTAL_getActiveOps(const SkIRect& queryRect);
339
340 void createHeader(SkPictInfo* info) const; 311 void createHeader(SkPictInfo* info) const;
341 static bool IsValidPictInfo(const SkPictInfo& info); 312 static bool IsValidPictInfo(const SkPictInfo& info);
342 313
343 friend class SkFlatPicture; 314 friend class SkFlatPicture;
344 friend class SkPicturePlayback; 315 friend class SkPicturePlayback;
345 friend class SkGpuDevice;
346 316
347 typedef SkRefCnt INHERITED; 317 typedef SkRefCnt INHERITED;
348 }; 318 };
349 319
350 /** 320 /**
351 * Subclasses of this can be passed to canvas.drawPicture. During the drawing 321 * Subclasses of this can be passed to canvas.drawPicture. During the drawing
352 * of the picture, this callback will periodically be invoked. If its 322 * of the picture, this callback will periodically be invoked. If its
353 * abortDrawing() returns true, then picture playback will be interrupted. 323 * abortDrawing() returns true, then picture playback will be interrupted.
354 * 324 *
355 * The resulting drawing is undefined, as there is no guarantee how often the 325 * The resulting drawing is undefined, as there is no guarantee how often the
356 * callback will be invoked. If the abort happens inside some level of nested 326 * callback will be invoked. If the abort happens inside some level of nested
357 * calls to save(), restore will automatically be called to return the state 327 * calls to save(), restore will automatically be called to return the state
358 * to the same level it was before the drawPicture call was made. 328 * to the same level it was before the drawPicture call was made.
359 */ 329 */
360 class SK_API SkDrawPictureCallback { 330 class SK_API SkDrawPictureCallback {
361 public: 331 public:
362 SkDrawPictureCallback() {} 332 SkDrawPictureCallback() {}
363 virtual ~SkDrawPictureCallback() {} 333 virtual ~SkDrawPictureCallback() {}
364 334
365 virtual bool abortDrawing() = 0; 335 virtual bool abortDrawing() = 0;
366 }; 336 };
367 337
368 #endif 338 #endif
OLDNEW
« no previous file with comments | « no previous file | src/core/SkPicture.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698