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

Side by Side Diff: src/core/SkPictureRecord.h

Issue 138013009: Culling API (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Comments, formatting. Created 6 years, 10 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
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkPictureRecord_DEFINED 8 #ifndef SkPictureRecord_DEFINED
9 #define SkPictureRecord_DEFINED 9 #define SkPictureRecord_DEFINED
10 10
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 void beginRecording(); 109 void beginRecording();
110 void endRecording(); 110 void endRecording();
111 111
112 private: 112 private:
113 void handleOptimization(int opt); 113 void handleOptimization(int opt);
114 int recordRestoreOffsetPlaceholder(SkRegion::Op); 114 int recordRestoreOffsetPlaceholder(SkRegion::Op);
115 void fillRestoreOffsetPlaceholdersForCurrentStackLevel(uint32_t restoreOffse t); 115 void fillRestoreOffsetPlaceholdersForCurrentStackLevel(uint32_t restoreOffse t);
116 116
117 #ifndef SK_COLLAPSE_MATRIX_CLIP_STATE 117 #ifndef SK_COLLAPSE_MATRIX_CLIP_STATE
118 SkTDArray<int32_t> fRestoreOffsetStack; 118 SkTDArray<int32_t> fRestoreOffsetStack;
119 SkTDArray<uint32_t> fCullOffsetStack;
caryclark 2014/02/14 14:54:35 Since the restore offset stack is int and the cull
f(malita) 2014/02/20 02:37:26 Indeed: we store negative values in fRestoreOffset
119 int fFirstSavedLayerIndex; 120 int fFirstSavedLayerIndex;
120 enum { 121 enum {
121 kNoSavedLayerIndex = -1 122 kNoSavedLayerIndex = -1
122 }; 123 };
123 #endif 124 #endif
124 125
125 /* 126 /*
126 * Write the 'drawType' operation and chunk size to the skp. 'size' 127 * Write the 'drawType' operation and chunk size to the skp. 'size'
127 * can potentially be increased if the chunk size needs its own storage 128 * can potentially be increased if the chunk size needs its own storage
128 * location (i.e., it overflows 24 bits). 129 * location (i.e., it overflows 24 bits).
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 void validateRegions() const; 215 void validateRegions() const;
215 #else 216 #else
216 public: 217 public:
217 void validate(size_t initialOffset, uint32_t size) const { 218 void validate(size_t initialOffset, uint32_t size) const {
218 SkASSERT(fWriter.bytesWritten() == initialOffset + size); 219 SkASSERT(fWriter.bytesWritten() == initialOffset + size);
219 } 220 }
220 #endif 221 #endif
221 222
222 protected: 223 protected:
223 virtual SkSurface* onNewSurface(const SkImageInfo&) SK_OVERRIDE; 224 virtual SkSurface* onNewSurface(const SkImageInfo&) SK_OVERRIDE;
225 virtual void onPushCull(const SkRect&) SK_OVERRIDE;
226 virtual void onPopCull() SK_OVERRIDE;
224 227
225 // Return fontmetrics.fTop,fBottom in topbot[0,1], after they have been 228 // Return fontmetrics.fTop,fBottom in topbot[0,1], after they have been
226 // tweaked by paint.computeFastBounds(). 229 // tweaked by paint.computeFastBounds().
227 static void ComputeFontMetricsTopBottom(const SkPaint& paint, SkScalar topbo t[2]); 230 static void ComputeFontMetricsTopBottom(const SkPaint& paint, SkScalar topbo t[2]);
228 231
229 // Make sure that flat has fTopBot written. 232 // Make sure that flat has fTopBot written.
230 static void WriteTopBot(const SkPaint& paint, const SkFlatData& flat) { 233 static void WriteTopBot(const SkPaint& paint, const SkFlatData& flat) {
231 if (!flat.isTopBotWritten()) { 234 if (!flat.isTopBotWritten()) {
232 ComputeFontMetricsTopBottom(paint, flat.writableTopBot()); 235 ComputeFontMetricsTopBottom(paint, flat.writableTopBot());
233 SkASSERT(flat.isTopBotWritten()); 236 SkASSERT(flat.isTopBotWritten());
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 friend class SkPictureTester; // for unit testing 289 friend class SkPictureTester; // for unit testing
287 290
288 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE 291 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE
289 SkMatrixClipStateMgr fMCMgr; 292 SkMatrixClipStateMgr fMCMgr;
290 #endif 293 #endif
291 294
292 typedef SkCanvas INHERITED; 295 typedef SkCanvas INHERITED;
293 }; 296 };
294 297
295 #endif 298 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698