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

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

Issue 334493002: Remove SkPicture pointer from SkPicturePlayback (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: clean up Created 6 years, 6 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
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
11 #define SkPicture_DEFINED 11 #define SkPicture_DEFINED
12 12
13 #include "SkBitmap.h" 13 #include "SkBitmap.h"
14 #include "SkImageDecoder.h" 14 #include "SkImageDecoder.h"
15 #include "SkRefCnt.h" 15 #include "SkRefCnt.h"
16 16
17 #if SK_SUPPORT_GPU 17 #if SK_SUPPORT_GPU
18 class GrContext; 18 class GrContext;
19 #endif 19 #endif
20 20
21 class SkBBHFactory; 21 class SkBBHFactory;
22 class SkBBoxHierarchy; 22 class SkBBoxHierarchy;
23 class SkCanvas; 23 class SkCanvas;
24 class SkDrawPictureCallback; 24 class SkDrawPictureCallback;
25 class SkData; 25 class SkData;
26 class SkPathHeap;
27 class SkPicturePlayback; 26 class SkPicturePlayback;
28 class SkPictureRecord; 27 class SkPictureRecord;
29 class SkStream; 28 class SkStream;
30 class SkWStream; 29 class SkWStream;
31 30
32 struct SkPictInfo; 31 struct SkPictInfo;
33 32
34 /** \class SkPicture 33 /** \class SkPicture
35 34
36 The SkPicture class records the drawing commands made to a canvas, to 35 The SkPicture class records the drawing commands made to a canvas, to
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 SkPicturePlayback* fPlayback; 278 SkPicturePlayback* fPlayback;
280 int fWidth, fHeight; 279 int fWidth, fHeight;
281 mutable const AccelData* fAccelData; 280 mutable const AccelData* fAccelData;
282 281
283 void needsNewGenID() { fUniqueID = SK_InvalidGenID; } 282 void needsNewGenID() { fUniqueID = SK_InvalidGenID; }
284 283
285 // Create a new SkPicture from an existing SkPicturePlayback. Ref count of 284 // Create a new SkPicture from an existing SkPicturePlayback. Ref count of
286 // playback is unchanged. 285 // playback is unchanged.
287 SkPicture(SkPicturePlayback*, int width, int height); 286 SkPicture(SkPicturePlayback*, int width, int height);
288 287
289 SkPicture(int width, int height, SkPictureRecord& record, bool deepCopyOps); 288 SkPicture(int width, int height, const SkPictureRecord& record, bool deepCop yOps);
290 289
291 private: 290 private:
292 SkAutoTUnref<SkPathHeap> fPathHeap; // reference counted
293
294 const SkPath& getPath(int index) const;
295 int addPathToHeap(const SkPath& path);
296
297 void flattenToBuffer(SkWriteBuffer& buffer) const;
298 bool parseBufferTag(SkReadBuffer& buffer, uint32_t tag, uint32_t size);
299
300 static void WriteTagSize(SkWriteBuffer& buffer, uint32_t tag, size_t size); 291 static void WriteTagSize(SkWriteBuffer& buffer, uint32_t tag, size_t size);
301 static void WriteTagSize(SkWStream* stream, uint32_t tag, size_t size); 292 static void WriteTagSize(SkWStream* stream, uint32_t tag, size_t size);
302 293
303 void initForPlayback() const;
304 void dumpSize() const;
305
306 // An OperationList encapsulates a set of operation offsets into the picture byte 294 // An OperationList encapsulates a set of operation offsets into the picture byte
307 // stream along with the CTMs needed for those operation. 295 // stream along with the CTMs needed for those operation.
308 class OperationList : ::SkNoncopyable { 296 class OperationList : ::SkNoncopyable {
309 public: 297 public:
310 virtual ~OperationList() {} 298 virtual ~OperationList() {}
311 299
312 // If valid returns false then there is no optimization data 300 // If valid returns false then there is no optimization data
313 // present. All the draw operations need to be issued. 301 // present. All the draw operations need to be issued.
314 virtual bool valid() const { return false; } 302 virtual bool valid() const { return false; }
315 303
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 */ 349 */
362 class SK_API SkDrawPictureCallback { 350 class SK_API SkDrawPictureCallback {
363 public: 351 public:
364 SkDrawPictureCallback() {} 352 SkDrawPictureCallback() {}
365 virtual ~SkDrawPictureCallback() {} 353 virtual ~SkDrawPictureCallback() {}
366 354
367 virtual bool abortDrawing() = 0; 355 virtual bool abortDrawing() = 0;
368 }; 356 };
369 357
370 #endif 358 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698