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;
+}