Index: src/gpu/GrDrawTarget.h |
diff --git a/src/gpu/GrDrawTarget.h b/src/gpu/GrDrawTarget.h |
index 572e4cbf3b2b4272f672e8a0ebe8e5f8ba1f1e14..13f35ac7680b801e969dbc823ff83bd2db727ba6 100644 |
--- a/src/gpu/GrDrawTarget.h |
+++ b/src/gpu/GrDrawTarget.h |
@@ -33,8 +33,9 @@ class GrBatch; |
class GrClip; |
class GrCaps; |
class GrPath; |
-class GrPathRange; |
class GrDrawBatch; |
+class GrDrawPathBatchBase; |
+class GrPathRangeDraw; |
class GrDrawTarget : public SkRefCnt { |
public: |
@@ -81,6 +82,8 @@ public: |
/** |
* Draws a path. Fill must not be a hairline. It will respect the HW |
* antialias flag on the GrPipelineBuilder (if possible in the 3D API). |
+ * |
+ * TODO: Remove this function and construct the batch outside GrDrawTarget. |
*/ |
void drawPath(const GrPipelineBuilder&, const GrPathProcessor*, const GrPath*, |
GrPathRendering::FillType); |
@@ -90,23 +93,17 @@ public: |
* always be equivalent to back-to-back calls to drawPath(). It will respect |
* the HW antialias flag on the GrPipelineBuilder (if possible in the 3D API). |
* |
- * @param pathRange Source paths to draw from |
- * @param indices Array of path indices to draw |
- * @param indexType Data type of the array elements in indexBuffer |
- * @param transformValues Array of transforms for the individual paths |
- * @param transformType Type of transforms in transformBuffer |
- * @param count Number of paths to draw |
+ * TODO: Remove this function and construct the batch outside GrDrawTarget. |
+ * |
+ * @param draw The range, transforms, and indices for the draw. |
+ * This object must only be drawn once. The draw |
+ * may modify its contents. |
* @param fill Fill type for drawing all the paths |
*/ |
- void drawPaths(const GrPipelineBuilder&, |
- const GrPathProcessor*, |
- const GrPathRange* pathRange, |
- const void* indices, |
- PathIndexType indexType, |
- const float transformValues[], |
- PathTransformType transformType, |
- int count, |
- GrPathRendering::FillType fill); |
+ void drawPathsFromRange(const GrPipelineBuilder&, |
+ const GrPathProcessor*, |
+ GrPathRangeDraw* draw, |
+ GrPathRendering::FillType fill); |
/** |
* Helper function for drawing rects. |
@@ -187,10 +184,6 @@ public: |
struct PipelineInfo { |
PipelineInfo(const GrPipelineBuilder* pipelineBuilder, const GrScissorState* scissor, |
- const GrPrimitiveProcessor* primProc, |
- const SkRect* devBounds, GrDrawTarget* target); |
- |
- PipelineInfo(const GrPipelineBuilder* pipelineBuilder, const GrScissorState* scissor, |
const GrDrawBatch* batch, const SkRect* devBounds, |
GrDrawTarget* target); |
@@ -225,18 +218,9 @@ private: |
virtual void onFlush() = 0; |
- virtual void onDrawPaths(const GrPathProcessor*, |
- const GrPathRange*, |
- const void* indices, |
- PathIndexType, |
- const float transformValues[], |
- PathTransformType, |
- int count, |
- const GrStencilSettings&, |
- const PipelineInfo&) = 0; |
- |
+ void drawPathBatch(const GrPipelineBuilder& pipelineBuilder, GrDrawPathBatchBase* batch, |
+ GrPathRendering::FillType fill); |
// Check to see if this set of draw commands has been sent out |
- virtual bool isIssued(uint32_t drawID) { return true; } |
void getPathStencilSettingsForFilltype(GrPathRendering::FillType, |
const GrStencilAttachment*, |
GrStencilSettings*); |