| Index: src/gpu/GrBufferedDrawTarget.h
|
| diff --git a/src/gpu/GrBufferedDrawTarget.h b/src/gpu/GrBufferedDrawTarget.h
|
| index 5a80a3ccfb380267b0e3509f5fad14975a45cd8e..79b1a71cfe92854e6f011938b6c6b7d819e4511b 100644
|
| --- a/src/gpu/GrBufferedDrawTarget.h
|
| +++ b/src/gpu/GrBufferedDrawTarget.h
|
| @@ -20,7 +20,6 @@
|
| */
|
| class GrBufferedDrawTarget : public GrClipTarget {
|
| public:
|
| -
|
| /**
|
| * Creates a GrBufferedDrawTarget
|
| *
|
| @@ -31,82 +30,14 @@ public:
|
| ~GrBufferedDrawTarget() override;
|
|
|
| protected:
|
| - void appendIndicesAndTransforms(const void* indexValues, PathIndexType indexType,
|
| - const float* transformValues, PathTransformType transformType,
|
| - int count, char** indicesLocation, float** xformsLocation) {
|
| - int indexBytes = GrPathRange::PathIndexSizeInBytes(indexType);
|
| - *indicesLocation = (char*) fPathIndexBuffer.alloc(count * indexBytes,
|
| - SkChunkAlloc::kThrow_AllocFailType);
|
| - SkASSERT(SkIsAlign4((uintptr_t)*indicesLocation));
|
| - memcpy(*indicesLocation, reinterpret_cast<const char*>(indexValues), count * indexBytes);
|
| -
|
| - const int xformBytes = GrPathRendering::PathTransformSize(transformType) * sizeof(float);
|
| - *xformsLocation = nullptr;
|
| -
|
| - if (0 != xformBytes) {
|
| - *xformsLocation = (float*) fPathTransformBuffer.alloc(count * xformBytes,
|
| - SkChunkAlloc::kThrow_AllocFailType);
|
| - SkASSERT(SkIsAlign4((uintptr_t)*xformsLocation));
|
| - memcpy(*xformsLocation, transformValues, count * xformBytes);
|
| - }
|
| - }
|
| -
|
| void onDrawBatch(GrBatch*) override;
|
|
|
| private:
|
| - friend class GrInOrderCommandBuilder;
|
| - friend class GrTargetCommands;
|
| -
|
| - typedef GrTargetCommands::StateForPathDraw StateForPathDraw;
|
| -
|
| - StateForPathDraw* allocState(const GrPrimitiveProcessor* primProc = nullptr) {
|
| - void* allocation = fPipelineBuffer.alloc(sizeof(StateForPathDraw),
|
| - SkChunkAlloc::kThrow_AllocFailType);
|
| - return new (allocation) StateForPathDraw(primProc);
|
| - }
|
| -
|
| - void unallocState(StateForPathDraw* state) {
|
| - state->unref();
|
| - fPipelineBuffer.unalloc(state);
|
| - }
|
| -
|
| void onReset() override;
|
| void onFlush() override;
|
|
|
| - void onDrawPaths(const GrPathProcessor*,
|
| - const GrPathRange*,
|
| - const void* indices,
|
| - PathIndexType,
|
| - const float transformValues[],
|
| - PathTransformType,
|
| - int count,
|
| - const GrStencilSettings&,
|
| - const PipelineInfo&) override;
|
| -
|
| - bool isIssued(uint32_t drawID) override { return drawID != fDrawID; }
|
| -
|
| - StateForPathDraw* SK_WARN_UNUSED_RESULT createStateForPathDraw(
|
| - const GrPrimitiveProcessor*,
|
| - const PipelineInfo&,
|
| - GrPipelineOptimizations* opts);
|
| -
|
| - // TODO: Use a single allocator for commands and records
|
| - enum {
|
| - kPathIdxBufferMinReserve = 2 * 64, // 64 uint16_t's
|
| - kPathXformBufferMinReserve = 2 * 64, // 64 two-float transforms
|
| - kPipelineBufferMinReserve = 32 * sizeof(StateForPathDraw),
|
| - };
|
| -
|
| - // every 100 flushes we should reset our fPipelineBuffer to prevent us from holding at a
|
| - // highwater mark
|
| - static const int kPipelineBufferHighWaterMark = 100;
|
| -
|
| SkAutoTDelete<GrCommandBuilder> fCommands;
|
| - SkChunkAlloc fPathIndexBuffer;
|
| - SkChunkAlloc fPathTransformBuffer;
|
| - SkChunkAlloc fPipelineBuffer;
|
| uint32_t fDrawID;
|
| - SkAutoTUnref<StateForPathDraw> fPrevState;
|
|
|
| typedef GrClipTarget INHERITED;
|
| };
|
|
|