GrPathRenderer* GrAAHairLinePathRenderer::Create(GrContext* context) { GrGpu* gpu = context->getGpu(); GrIndexBuffer* qIdxBuf = gpu->createIndexBuffer(kQuadIdxSBufize, false); SkAutoTUnref<GrIndexBuffer> qIdxBuffer(qIdxBuf); if (NULL == qIdxBuf || !push_quad_index_data(qIdxBuf)) { return NULL; } GrIndexBuffer* lIdxBuf = gpu->createIndexBuffer(kLineSegIdxSBufize, false); SkAutoTUnref<GrIndexBuffer> lIdxBuffer(lIdxBuf); if (NULL == lIdxBuf || !push_line_index_data(lIdxBuf)) { return NULL; } return SkNEW_ARGS(GrAAHairLinePathRenderer, (context, lIdxBuf, qIdxBuf)); }
GrPathRenderer* GrAAHairLinePathRenderer::Create(GrContext* context) { GrGpu* gpu = context->getGpu(); GrIndexBuffer* qIdxBuf = gpu->createInstancedIndexBuffer(kQuadIdxBufPattern, kIdxsPerQuad, kQuadsNumInIdxBuffer, kQuadNumVertices); SkAutoTUnref<GrIndexBuffer> qIdxBuffer(qIdxBuf); GrIndexBuffer* lIdxBuf = gpu->createInstancedIndexBuffer(kLineSegIdxBufPattern, kIdxsPerLineSeg, kLineSegsNumInIdxBuffer, kLineSegNumVertices); SkAutoTUnref<GrIndexBuffer> lIdxBuffer(lIdxBuf); return SkNEW_ARGS(GrAAHairLinePathRenderer, (context, lIdxBuf, qIdxBuf)); }