| Index: src/gpu/GrInOrderDrawBuffer.h
 | 
| diff --git a/src/gpu/GrInOrderDrawBuffer.h b/src/gpu/GrInOrderDrawBuffer.h
 | 
| index 415c3e1d1d789ea8b79fac34118592d4c31a2a15..207f88e65d24efda4be37c6dd493ddca556bcc4e 100644
 | 
| --- a/src/gpu/GrInOrderDrawBuffer.h
 | 
| +++ b/src/gpu/GrInOrderDrawBuffer.h
 | 
| @@ -8,23 +8,10 @@
 | 
|  #ifndef GrInOrderDrawBuffer_DEFINED
 | 
|  #define GrInOrderDrawBuffer_DEFINED
 | 
|  
 | 
| -#include "GrDrawTarget.h"
 | 
| -#include "GrGpu.h"
 | 
| -#include "GrIndexBuffer.h"
 | 
| +#include "GrFlushToGpuDrawTarget.h"
 | 
|  #include "GrOptDrawState.h"
 | 
|  #include "GrPath.h"
 | 
| -#include "GrPathRange.h"
 | 
| -#include "GrRenderTarget.h"
 | 
| -#include "GrSurface.h"
 | 
|  #include "GrTRecorder.h"
 | 
| -#include "GrVertexBuffer.h"
 | 
| -
 | 
| -#include "SkClipStack.h"
 | 
| -#include "SkTemplates.h"
 | 
| -#include "SkTypes.h"
 | 
| -
 | 
| -class GrIndexBufferAllocPool;
 | 
| -class GrVertexBufferAllocPool;
 | 
|  
 | 
|  /**
 | 
|   * GrInOrderDrawBuffer is an implementation of GrDrawTarget that queues up draws for eventual
 | 
| @@ -36,7 +23,7 @@ class GrVertexBufferAllocPool;
 | 
|   * in the GrGpu object that the buffer is played back into. The buffer requires VB and IB pools to
 | 
|   * store geometry.
 | 
|   */
 | 
| -class GrInOrderDrawBuffer : public GrClipTarget {
 | 
| +class GrInOrderDrawBuffer : public GrFlushToGpuDrawTarget {
 | 
|  public:
 | 
|  
 | 
|      /**
 | 
| @@ -54,28 +41,9 @@ public:
 | 
|  
 | 
|      ~GrInOrderDrawBuffer() SK_OVERRIDE;
 | 
|  
 | 
| -    /**
 | 
| -     * Empties the draw buffer of any queued up draws. This must not be called while inside an
 | 
| -     * unbalanced pushGeometrySource(). The current draw state and clip are preserved.
 | 
| -     */
 | 
| -    void reset();
 | 
| -
 | 
| -    /**
 | 
| -     * This plays the queued up draws to its GrGpu target. It also resets this object (i.e. flushing
 | 
| -     * is destructive). This buffer must not have an active reserved vertex or index source. Any
 | 
| -     * reserved geometry on the target will be finalized because it's geometry source will be pushed
 | 
| -     * before flushing and popped afterwards.
 | 
| -     */
 | 
| -    void flush();
 | 
| -
 | 
|      // tracking for draws
 | 
|      DrawToken getCurrentDrawToken() { return DrawToken(this, fDrawID); }
 | 
|  
 | 
| -    // overrides from GrDrawTarget
 | 
| -    bool geometryHints(size_t vertexStride,
 | 
| -                       int* vertexCount,
 | 
| -                       int* indexCount) const SK_OVERRIDE;
 | 
| -
 | 
|      void clearStencilClip(const SkIRect& rect,
 | 
|                            bool insideClip,
 | 
|                            GrRenderTarget* renderTarget) SK_OVERRIDE;
 | 
| @@ -217,6 +185,9 @@ private:
 | 
|      typedef void* TCmdAlign; // This wouldn't be enough align if a command used long double.
 | 
|      typedef GrTRecorder<Cmd, TCmdAlign> CmdBuffer;
 | 
|  
 | 
| +    void onReset() SK_OVERRIDE;
 | 
| +    void onFlush() SK_OVERRIDE;
 | 
| +
 | 
|      // overrides from GrDrawTarget
 | 
|      void onDraw(const GrDrawState&,
 | 
|                  const DrawInfo&,
 | 
| @@ -250,17 +221,6 @@ private:
 | 
|                   GrColor color,
 | 
|                   bool canIgnoreRect,
 | 
|                   GrRenderTarget* renderTarget) SK_OVERRIDE;
 | 
| -    void setDrawBuffers(DrawInfo*) SK_OVERRIDE;
 | 
| -
 | 
| -    bool onReserveVertexSpace(size_t vertexSize, int vertexCount, void** vertices) SK_OVERRIDE;
 | 
| -    bool onReserveIndexSpace(int indexCount, void** indices) SK_OVERRIDE;
 | 
| -    void releaseReservedVertexSpace() SK_OVERRIDE;
 | 
| -    void releaseReservedIndexSpace() SK_OVERRIDE;
 | 
| -    void geometrySourceWillPush() SK_OVERRIDE;
 | 
| -    void geometrySourceWillPop(const GeometrySrcState& restoredState) SK_OVERRIDE;
 | 
| -    void willReserveVertexAndIndexSpace(int vertexCount,
 | 
| -                                        size_t vertexStride,
 | 
| -                                        int indexCount) SK_OVERRIDE;
 | 
|      bool onCopySurface(GrSurface* dst,
 | 
|                         GrSurface* src,
 | 
|                         const SkIRect& srcRect,
 | 
| @@ -294,36 +254,16 @@ private:
 | 
|          kCmdBufferInitialSizeInBytes = 8 * 1024,
 | 
|          kPathIdxBufferMinReserve     = 2 * 64,  // 64 uint16_t's
 | 
|          kPathXformBufferMinReserve   = 2 * 64,  // 64 two-float transforms
 | 
| -        kGeoPoolStatePreAllocCnt     = 4,
 | 
|      };
 | 
|  
 | 
| -    struct GeometryPoolState {
 | 
| -        const GrVertexBuffer*   fPoolVertexBuffer;
 | 
| -        int                     fPoolStartVertex;
 | 
| -        const GrIndexBuffer*    fPoolIndexBuffer;
 | 
| -        int                     fPoolStartIndex;
 | 
| -        // caller may conservatively over reserve vertices / indices.
 | 
| -        // we release unused space back to allocator if possible
 | 
| -        // can only do this if there isn't an intervening pushGeometrySource()
 | 
| -        size_t                  fUsedPoolVertexBytes;
 | 
| -        size_t                  fUsedPoolIndexBytes;
 | 
| -    };
 | 
| -
 | 
| -    typedef SkSTArray<kGeoPoolStatePreAllocCnt, GeometryPoolState> GeoPoolStateStack;
 | 
| -
 | 
|      CmdBuffer                           fCmdBuffer;
 | 
|      const GrOptDrawState*               fPrevState;
 | 
|      SkTArray<GrTraceMarkerSet, false>   fGpuCmdMarkers;
 | 
| -    GrGpu*                              fDstGpu;
 | 
| -    GrVertexBufferAllocPool&            fVertexPool;
 | 
| -    GrIndexBufferAllocPool&             fIndexPool;
 | 
|      SkTDArray<char>                     fPathIndexBuffer;
 | 
|      SkTDArray<float>                    fPathTransformBuffer;
 | 
| -    GeoPoolStateStack                   fGeoPoolStateStack;
 | 
| -    bool                                fFlushing;
 | 
|      uint32_t                            fDrawID;
 | 
|  
 | 
| -    typedef GrClipTarget INHERITED;
 | 
| +    typedef GrFlushToGpuDrawTarget INHERITED;
 | 
|  };
 | 
|  
 | 
|  #endif
 | 
| 
 |