| Index: src/gpu/GrInOrderDrawBuffer.h
|
| diff --git a/src/gpu/GrInOrderDrawBuffer.h b/src/gpu/GrInOrderDrawBuffer.h
|
| index ca6af3fe8b40fa4270ae3a177654cf4945b9958e..f8ac67a3f84a60ed9d9e543095cf4aa1290edfef 100644
|
| --- a/src/gpu/GrInOrderDrawBuffer.h
|
| +++ b/src/gpu/GrInOrderDrawBuffer.h
|
| @@ -87,6 +87,7 @@ private:
|
| kSetClip_Cmd = 4,
|
| kClear_Cmd = 5,
|
| kCopySurface_Cmd = 6,
|
| + kFillPath_Cmd = 7,
|
| };
|
|
|
| class DrawRecord : public DrawInfo {
|
| @@ -104,6 +105,14 @@ private:
|
| SkPath::FillType fFill;
|
| };
|
|
|
| + struct FillPath : public ::SkNoncopyable {
|
| + FillPath();
|
| +
|
| + SkAutoTUnref<const GrPath> fPath;
|
| + SkStrokeRec fStroke;
|
| + SkPath::FillType fFill;
|
| + };
|
| +
|
| struct Clear : public ::SkNoncopyable {
|
| Clear() : fRenderTarget(NULL) {}
|
| ~Clear() { SkSafeUnref(fRenderTarget); }
|
| @@ -127,6 +136,8 @@ private:
|
| const SkRect* localRect,
|
| const SkMatrix* localMatrix) SK_OVERRIDE;
|
| virtual void onStencilPath(const GrPath*, const SkStrokeRec& stroke, SkPath::FillType) SK_OVERRIDE;
|
| + virtual void onFillPath(const GrPath*, const SkStrokeRec& stroke, SkPath::FillType,
|
| + const GrDeviceCoordTexture* dstCopy) SK_OVERRIDE;
|
| virtual bool onReserveVertexSpace(size_t vertexSize,
|
| int vertexCount,
|
| void** vertices) SK_OVERRIDE;
|
| @@ -169,6 +180,7 @@ private:
|
| void recordClip();
|
| DrawRecord* recordDraw(const DrawInfo&);
|
| StencilPath* recordStencilPath();
|
| + FillPath* recordFillPath();
|
| Clear* recordClear();
|
| CopySurface* recordCopySurface();
|
|
|
| @@ -177,6 +189,7 @@ private:
|
| kCmdPreallocCnt = 32,
|
| kDrawPreallocCnt = 8,
|
| kStencilPathPreallocCnt = 8,
|
| + kFillPathPreallocCnt = 8,
|
| kStatePreallocCnt = 8,
|
| kClipPreallocCnt = 8,
|
| kClearPreallocCnt = 4,
|
| @@ -187,6 +200,7 @@ private:
|
| SkSTArray<kCmdPreallocCnt, uint8_t, true> fCmds;
|
| GrSTAllocator<kDrawPreallocCnt, DrawRecord> fDraws;
|
| GrSTAllocator<kStatePreallocCnt, StencilPath> fStencilPaths;
|
| + GrSTAllocator<kStatePreallocCnt, FillPath> fFillPaths;
|
| GrSTAllocator<kStatePreallocCnt, GrDrawState::DeferredState> fStates;
|
| GrSTAllocator<kClearPreallocCnt, Clear> fClears;
|
| GrSTAllocator<kCopySurfacePreallocCnt, CopySurface> fCopySurfaces;
|
|
|