Index: src/gpu/GrGpu.h |
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h |
index 3903af6344bd015f37c9227dc8a5d7a787d5c8ce..b2dbec65fb1566b5a74083c8e32865cc0400f1ae 100644 |
--- a/src/gpu/GrGpu.h |
+++ b/src/gpu/GrGpu.h |
@@ -117,6 +117,34 @@ |
* @return The index buffer if successful, otherwise NULL. |
*/ |
GrIndexBuffer* createIndexBuffer(size_t size, bool dynamic); |
+ |
+ /** |
+ * Creates an index buffer for instance drawing with a specific pattern. |
+ * |
+ * @param pattern the pattern to repeat |
+ * @param patternSize size in bytes of the pattern |
+ * @param reps number of times to repeat the pattern |
+ * @param vertCount number of vertices the pattern references |
+ * @param dynamic hints whether the data will be frequently changed |
+ * by either GrIndexBuffer::map() or |
+ * GrIndexBuffer::updateData(). |
+ * |
+ * @return The index buffer if successful, otherwise NULL. |
+ */ |
+ GrIndexBuffer* createInstancedIndexBuffer(const uint16_t* pattern, |
+ int patternSize, |
+ int reps, |
+ int vertCount, |
+ bool isDynamic = false); |
+ |
+ /** |
+ * Returns an index buffer that can be used to render quads. |
+ * Six indices per quad: 0, 1, 2, 0, 2, 3, etc. |
+ * The max number of quads can be queried using GrIndexBuffer::maxQuads(). |
+ * Draw with kTriangles_GrPrimitiveType |
+ * @ return the quad index buffer |
+ */ |
+ const GrIndexBuffer* getQuadIndexBuffer() const; |
/** |
* Resolves MSAA. |
@@ -492,6 +520,8 @@ |
ResetTimestamp fResetTimestamp; |
uint32_t fResetBits; |
+ // these are mutable so they can be created on-demand |
+ mutable GrIndexBuffer* fQuadIndexBuffer; |
// To keep track that we always have at least as many debug marker adds as removes |
int fGpuTraceMarkerCount; |
GrTraceMarkerSet fActiveTraceMarkers; |