Index: src/gpu/GrDrawTarget.h |
diff --git a/src/gpu/GrDrawTarget.h b/src/gpu/GrDrawTarget.h |
index 73a4ec770fc8394fb6188c3381904545e08a35eb..84f7eb2197a4aa736aabba9847b9ba5b08ab5518 100644 |
--- a/src/gpu/GrDrawTarget.h |
+++ b/src/gpu/GrDrawTarget.h |
@@ -201,6 +201,23 @@ |
* is intended to give an application some recourse when resources are low. |
*/ |
virtual void purgeResources() {}; |
+ |
+ /////////////////////////////////////////////////////////////////////////// |
+ // Draw execution tracking (for font atlases and other resources) |
+ class DrawToken { |
+ public: |
+ DrawToken(GrDrawTarget* drawTarget, uint32_t drawID) : |
+ fDrawTarget(drawTarget), fDrawID(drawID) {} |
+ |
+ bool isIssued() { return fDrawTarget && fDrawTarget->isIssued(fDrawID); } |
+ |
+ private: |
+ GrDrawTarget* fDrawTarget; |
+ uint32_t fDrawID; // this may wrap, but we're doing direct comparison |
+ // so that should be okay |
+ }; |
+ |
+ virtual DrawToken getCurrentDrawToken() { return DrawToken(this, 0); } |
bool programUnitTest(int maxStages); |