| Index: src/gpu/GrDrawTarget.h
 | 
| diff --git a/src/gpu/GrDrawTarget.h b/src/gpu/GrDrawTarget.h
 | 
| index 0c2b568da418450eee64c6e6731207799d0383e2..9501d96301bf015f545dce56db3d8dbec215c5c5 100644
 | 
| --- a/src/gpu/GrDrawTarget.h
 | 
| +++ b/src/gpu/GrDrawTarget.h
 | 
| @@ -621,6 +621,23 @@ public:
 | 
|          GrDrawTarget*    fTarget;
 | 
|      };
 | 
|  
 | 
| +    ///////////////////////////////////////////////////////////////////////////
 | 
| +    // 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 NULL != 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); }
 | 
| +        
 | 
|  protected:
 | 
|  
 | 
|      enum GeometrySrcType {
 | 
| @@ -839,6 +856,9 @@ private:
 | 
|      // but couldn't be made. Otherwise, returns true.
 | 
|      bool setupDstReadIfNecessary(DrawInfo* info);
 | 
|  
 | 
| +    // Check to see if this set of draw commands has been sent out
 | 
| +    virtual bool       isIssued(uint32_t drawID) { return true; }
 | 
| +    
 | 
|      enum {
 | 
|          kPreallocGeoSrcStateStackCnt = 4,
 | 
|      };
 | 
| 
 |