diff options
author | 2013-10-30 18:57:55 +0000 | |
---|---|---|
committer | 2013-10-30 18:57:55 +0000 | |
commit | 1ab9f737f000e530f0c7713c8fad282f39e26efe (patch) | |
tree | 97b4537e4c08344e14bfaaf291ece064201b941d /include/core/SkPath.h | |
parent | b38d4e1584036b6e9316562b89c80080e08452b2 (diff) |
Use SkPathRef gen id for SkPath::getGenerationID
R=mtklein@google.com, robertphillips@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/49693002
git-svn-id: http://skia.googlecode.com/svn/trunk@12029 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'include/core/SkPath.h')
-rw-r--r-- | include/core/SkPath.h | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/include/core/SkPath.h b/include/core/SkPath.h index a6674d9afb..9b5dc4bf65 100644 --- a/include/core/SkPath.h +++ b/include/core/SkPath.h @@ -16,14 +16,6 @@ #include "SkTDArray.h" #include "SkRefCnt.h" -#ifdef SK_BUILD_FOR_ANDROID -#define GEN_ID_INC fGenerationID++ -#define GEN_ID_PTR_INC(ptr) (ptr)->fGenerationID++ -#else -#define GEN_ID_INC -#define GEN_ID_PTR_INC(ptr) -#endif - class SkReader32; class SkWriter32; class SkAutoPathBoundsUpdate; @@ -40,10 +32,10 @@ public: SK_DECLARE_INST_COUNT_ROOT(SkPath); SkPath(); - SkPath(const SkPath&); // Copies fGenerationID on Android. + SkPath(const SkPath&); ~SkPath(); - SkPath& operator=(const SkPath&); // Increments fGenerationID on Android. + SkPath& operator=(const SkPath&); friend SK_API bool operator==(const SkPath&, const SkPath&); friend bool operator!=(const SkPath& a, const SkPath& b) { return !(a == b); @@ -80,7 +72,6 @@ public: */ void setFillType(FillType ft) { fFillType = SkToU8(ft); - GEN_ID_INC; } /** Returns true if the filltype is one of the Inverse variants */ @@ -92,7 +83,6 @@ public: */ void toggleInverseFillType() { fFillType ^= 2; - GEN_ID_INC; } enum Convexity { @@ -914,16 +904,25 @@ public: * If buffer is NULL, it still returns the number of bytes. */ uint32_t writeToMemory(void* buffer) const; + /** * Initialized the region from the buffer, returning the number * of bytes actually read. */ uint32_t readFromMemory(const void* buffer); -#ifdef SK_BUILD_FOR_ANDROID + /** Returns a non-zero, globally unique value corresponding to the set of verbs + and points in the path (but not the fill type [except on Android skbug.com/1762]). + Each time the path is modified, a different generation ID will be returned. + */ uint32_t getGenerationID() const; + +#ifdef SK_BUILD_FOR_ANDROID + static const int kPathRefGenIDBitCnt = 30; // leave room for the fill type (skbug.com/1762) const SkPath* getSourcePath() const; void setSourcePath(const SkPath* path); +#else + static const int kPathRefGenIDBitCnt = 32; #endif SkDEBUGCODE(void validate() const;) @@ -953,7 +952,6 @@ private: mutable uint8_t fDirection; mutable SkBool8 fIsOval; #ifdef SK_BUILD_FOR_ANDROID - uint32_t fGenerationID; const SkPath* fSourcePath; #endif |