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 |