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

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

Issue 617953002: Strip old backend recording down to essentials (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: debug-only Created 6 years, 2 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
« no previous file with comments | « gyp/tests.gypi ('k') | include/core/SkPictureRecorder.h » ('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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 246
247 // Note: If the picture version needs to be increased then please follow the 247 // Note: If the picture version needs to be increased then please follow the
248 // steps to generate new SKPs in (only accessible to Googlers): http://goo.g l/qATVcw 248 // steps to generate new SKPs in (only accessible to Googlers): http://goo.g l/qATVcw
249 249
250 // Only SKPs within the min/current picture version range (inclusive) can be read. 250 // Only SKPs within the min/current picture version range (inclusive) can be read.
251 static const uint32_t MIN_PICTURE_VERSION = 19; 251 static const uint32_t MIN_PICTURE_VERSION = 19;
252 static const uint32_t CURRENT_PICTURE_VERSION = 36; 252 static const uint32_t CURRENT_PICTURE_VERSION = 36;
253 253
254 mutable uint32_t fUniqueID; 254 mutable uint32_t fUniqueID;
255 255
256 // TODO: make SkPictureData const when clone method goes away 256 SkAutoTDelete<const SkPictureData> fData;
257 SkAutoTDelete<SkPictureData> fData;
258 const SkScalar fCullWidth; 257 const SkScalar fCullWidth;
259 const SkScalar fCullHeight; 258 const SkScalar fCullHeight;
260 mutable SkAutoTUnref<const AccelData> fAccelData; 259 mutable SkAutoTUnref<const AccelData> fAccelData;
261 260
262 mutable SkTDArray<DeletionListener*> fDeletionListeners; // pointers are re fed 261 mutable SkTDArray<DeletionListener*> fDeletionListeners; // pointers are re fed
263 262
264 void needsNewGenID() { fUniqueID = SK_InvalidGenID; } 263 void needsNewGenID() { fUniqueID = SK_InvalidGenID; }
265 void callDeletionListeners(); 264 void callDeletionListeners();
266 265
267 // Create a new SkPicture from an existing SkPictureData. The new picture 266 // Create a new SkPicture from an existing SkPictureData. The new picture
268 // takes ownership of 'data'. 267 // takes ownership of 'data'.
269 SkPicture(SkPictureData* data, SkScalar width, SkScalar height); 268 SkPicture(SkPictureData* data, SkScalar width, SkScalar height);
270 269
271 SkPicture(SkScalar width, SkScalar height, const SkPictureRecord& record, bo ol deepCopyOps); 270 SkPicture(SkScalar width, SkScalar height, const SkPictureRecord& record, bo ol deepCopyOps);
272 271
273 // An OperationList encapsulates a set of operation offsets into the picture byte
274 // stream along with the CTMs needed for those operation.
275 class OperationList : ::SkNoncopyable {
276 public:
277 // The following three entry points should only be accessed if
278 // 'valid' returns true.
279 int numOps() const { return fOps.count(); }
280 // The offset in the picture of the operation to execute.
281 uint32_t offset(int index) const;
282 // The CTM that must be installed for the operation to behave correctly
283 const SkMatrix& matrix(int index) const;
284
285 SkTDArray<void*> fOps;
286 };
287
288 void createHeader(SkPictInfo* info) const; 272 void createHeader(SkPictInfo* info) const;
289 static bool IsValidPictInfo(const SkPictInfo& info); 273 static bool IsValidPictInfo(const SkPictInfo& info);
290 274
291 friend class SkPictureData; // to access OperationList
292 friend class SkPictureRecorder; // just for SkPicture-based const ructor 275 friend class SkPictureRecorder; // just for SkPicture-based const ructor
293 friend class SkGpuDevice; // for fData access 276 friend class SkGpuDevice; // for fData access
294 friend class GrLayerHoister; // access to fRecord 277 friend class GrLayerHoister; // access to fRecord
295 friend class CollectLayers; // access to fRecord 278 friend class CollectLayers; // access to fRecord
296 friend class SkPicturePlayback; // to get fData & OperationList 279 friend class SkPicturePlayback; // to get fData
297 friend void GrRecordReplaceDraw(const SkPicture* picture, 280 friend void GrRecordReplaceDraw(const SkPicture* picture,
298 SkCanvas* canvas, 281 SkCanvas* canvas,
299 const GrReplacements* replacements, 282 const GrReplacements* replacements,
300 const SkMatrix& initialMatrix, 283 const SkMatrix& initialMatrix,
301 SkDrawPictureCallback* callback); 284 SkDrawPictureCallback* callback);
302 285
303 typedef SkRefCnt INHERITED; 286 typedef SkRefCnt INHERITED;
304 287
305 // Takes ownership of the SkRecord, refs the (optional) BBH. 288 // Takes ownership of the SkRecord, refs the (optional) BBH.
306 SkPicture(SkScalar width, SkScalar height, SkRecord*, SkBBoxHierarchy*); 289 SkPicture(SkScalar width, SkScalar height, SkRecord*, SkBBoxHierarchy*);
(...skipping 14 matching lines...) Expand all
321 bool fWillPlaybackBitmaps; 304 bool fWillPlaybackBitmaps;
322 bool fHasText; 305 bool fHasText;
323 int fNumPaintWithPathEffectUses; 306 int fNumPaintWithPathEffectUses;
324 int fNumFastPathDashEffects; 307 int fNumFastPathDashEffects;
325 int fNumAAConcavePaths; 308 int fNumAAConcavePaths;
326 int fNumAAHairlineConcavePaths; 309 int fNumAAHairlineConcavePaths;
327 } fAnalysis; 310 } fAnalysis;
328 }; 311 };
329 312
330 #endif 313 #endif
OLDNEW
« no previous file with comments | « gyp/tests.gypi ('k') | include/core/SkPictureRecorder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698