aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkPath.h
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-10-30 18:57:55 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-10-30 18:57:55 +0000
commit1ab9f737f000e530f0c7713c8fad282f39e26efe (patch)
tree97b4537e4c08344e14bfaaf291ece064201b941d /include/core/SkPath.h
parentb38d4e1584036b6e9316562b89c80080e08452b2 (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.h26
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