Added method of getting top genID from SkClipStack
http://codereview.appspot.com/6446108/
git-svn-id: http://skia.googlecode.com/svn/trunk@5034 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/core/SkClipStack.h b/include/core/SkClipStack.h
index 077c4b7..7ebd492 100644
--- a/include/core/SkClipStack.h
+++ b/include/core/SkClipStack.h
@@ -100,6 +100,8 @@
static const int32_t kEmptyGenID = 1; // no pixels writeable
static const int32_t kWideOpenGenID = 2; // all pixels writeable
+ int32_t getTopmostGenID() const;
+
private:
struct Rec;
@@ -127,6 +129,7 @@
const SkPath* fPath; // if non-null, this is a path clip
SkRegion::Op fOp;
bool fDoAA;
+ int32_t fGenID;
};
/**
diff --git a/src/core/SkClipStack.cpp b/src/core/SkClipStack.cpp
index 25e8ced..ff771c1 100644
--- a/src/core/SkClipStack.cpp
+++ b/src/core/SkClipStack.cpp
@@ -690,6 +690,7 @@
}
fClip.fOp = rec->fOp;
fClip.fDoAA = rec->fDoAA;
+ fClip.fGenID = rec->fGenID;
return &fClip;
}
@@ -812,3 +813,13 @@
int32_t SkClipStack::GetNextGenID() {
return sk_atomic_inc(&gGenID);
}
+
+int32_t SkClipStack::getTopmostGenID() const {
+
+ if (fDeque.empty()) {
+ return kInvalidGenID;
+ }
+
+ Rec* rec = (Rec*)fDeque.back();
+ return rec->fGenID;
+}