aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkPicture.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/core/SkPicture.h')
-rw-r--r--include/core/SkPicture.h70
1 files changed, 3 insertions, 67 deletions
diff --git a/include/core/SkPicture.h b/include/core/SkPicture.h
index 82c78a7880..0b6261af4e 100644
--- a/include/core/SkPicture.h
+++ b/include/core/SkPicture.h
@@ -286,73 +286,11 @@ protected:
// playback is unchanged.
SkPicture(SkPicturePlayback*, int width, int height);
-private:
- friend class SkPictureRecord;
- friend class SkPictureTester; // for unit testing
+ SkPicture(int width, int height, SkPictureRecord& record, bool deepCopyOps);
+private:
SkAutoTUnref<SkPathHeap> fPathHeap; // reference counted
- // ContentInfo is not serialized! It is intended solely for use
- // with suitableForGpuRasterization.
- class ContentInfo {
- public:
- ContentInfo() { this->reset(); }
-
- ContentInfo(const ContentInfo& src) { this->set(src); }
-
- void set(const ContentInfo& src) {
- fNumPaintWithPathEffectUses = src.fNumPaintWithPathEffectUses;
- fNumAAConcavePaths = src.fNumAAConcavePaths;
- fNumAAHairlineConcavePaths = src.fNumAAHairlineConcavePaths;
- }
-
- void reset() {
- fNumPaintWithPathEffectUses = 0;
- fNumAAConcavePaths = 0;
- fNumAAHairlineConcavePaths = 0;
- }
-
- void swap(ContentInfo* other) {
- SkTSwap(fNumPaintWithPathEffectUses, other->fNumPaintWithPathEffectUses);
- SkTSwap(fNumAAConcavePaths, other->fNumAAConcavePaths);
- SkTSwap(fNumAAHairlineConcavePaths, other->fNumAAHairlineConcavePaths);
- }
-
- // This field is incremented every time a paint with a path effect is
- // used (i.e., it is not a de-duplicated count)
- int fNumPaintWithPathEffectUses;
- // This field is incremented every time an anti-aliased drawPath call is
- // issued with a concave path
- int fNumAAConcavePaths;
- // This field is incremented every time a drawPath call is
- // issued for a hairline stroked concave path.
- int fNumAAHairlineConcavePaths;
- };
-
- ContentInfo fContentInfo;
-
- void incPaintWithPathEffectUses() {
- ++fContentInfo.fNumPaintWithPathEffectUses;
- }
- int numPaintWithPathEffectUses() const {
- return fContentInfo.fNumPaintWithPathEffectUses;
- }
-
- void incAAConcavePaths() {
- ++fContentInfo.fNumAAConcavePaths;
- }
- int numAAConcavePaths() const {
- return fContentInfo.fNumAAConcavePaths;
- }
-
- void incAAHairlineConcavePaths() {
- ++fContentInfo.fNumAAHairlineConcavePaths;
- SkASSERT(fContentInfo.fNumAAHairlineConcavePaths <= fContentInfo.fNumAAConcavePaths);
- }
- int numAAHairlineConcavePaths() const {
- return fContentInfo.fNumAAHairlineConcavePaths;
- }
-
const SkPath& getPath(int index) const;
int addPathToHeap(const SkPath& path);
@@ -399,12 +337,10 @@ private:
void createHeader(SkPictInfo* info) const;
static bool IsValidPictInfo(const SkPictInfo& info);
- static SkPicturePlayback* FakeEndRecording(const SkPicture* resourceSrc,
- const SkPictureRecord& record);
friend class SkFlatPicture;
friend class SkPicturePlayback;
- friend class SkPictureRecorder;
+ friend class SkPictureRecorder; // just for SkPicture-based constructor
friend class SkGpuDevice;
friend class GrGatherCanvas;
friend class GrGatherDevice;