| Index: src/gpu/GrInOrderDrawBuffer.h
|
| diff --git a/src/gpu/GrInOrderDrawBuffer.h b/src/gpu/GrInOrderDrawBuffer.h
|
| index 60e01f01b970b802c2f819b1eb61661a7c0fd670..457648418160d9cbffc9613c1f50359fbfa2ba4f 100644
|
| --- a/src/gpu/GrInOrderDrawBuffer.h
|
| +++ b/src/gpu/GrInOrderDrawBuffer.h
|
| @@ -88,6 +88,7 @@ private:
|
| kClear_Cmd = 5,
|
| kCopySurface_Cmd = 6,
|
| kDrawPath_Cmd = 7,
|
| + kDrawPaths_Cmd = 8,
|
| };
|
|
|
| class DrawRecord : public DrawInfo {
|
| @@ -112,6 +113,18 @@ private:
|
| GrDeviceCoordTexture fDstCopy;
|
| };
|
|
|
| + struct DrawPaths : public ::SkNoncopyable {
|
| + DrawPaths();
|
| + ~DrawPaths();
|
| +
|
| + size_t fPathCount;
|
| + const GrPath** fPaths;
|
| + SkMatrix* fTransforms;
|
| + SkPath::FillType fFill;
|
| + SkStrokeRec::Style fStroke;
|
| + GrDeviceCoordTexture fDstCopy;
|
| + };
|
| +
|
| struct Clear : public ::SkNoncopyable {
|
| Clear() : fRenderTarget(NULL) {}
|
| ~Clear() { SkSafeUnref(fRenderTarget); }
|
| @@ -139,6 +152,9 @@ private:
|
| virtual void onStencilPath(const GrPath*, SkPath::FillType) SK_OVERRIDE;
|
| virtual void onDrawPath(const GrPath*, SkPath::FillType,
|
| const GrDeviceCoordTexture* dstCopy) SK_OVERRIDE;
|
| + virtual void onDrawPaths(size_t, const GrPath**, const SkMatrix*,
|
| + SkPath::FillType, SkStrokeRec::Style,
|
| + const GrDeviceCoordTexture* dstCopy) SK_OVERRIDE;
|
|
|
| virtual bool onReserveVertexSpace(size_t vertexSize,
|
| int vertexCount,
|
| @@ -188,6 +204,7 @@ private:
|
| DrawRecord* recordDraw(const DrawInfo&);
|
| StencilPath* recordStencilPath();
|
| DrawPath* recordDrawPath();
|
| + DrawPaths* recordDrawPaths();
|
| Clear* recordClear();
|
| CopySurface* recordCopySurface();
|
|
|
| @@ -197,6 +214,7 @@ private:
|
| kDrawPreallocCnt = 8,
|
| kStencilPathPreallocCnt = 8,
|
| kDrawPathPreallocCnt = 8,
|
| + kDrawPathsPreallocCnt = 8,
|
| kStatePreallocCnt = 8,
|
| kClipPreallocCnt = 8,
|
| kClearPreallocCnt = 4,
|
| @@ -206,8 +224,9 @@ private:
|
|
|
| SkSTArray<kCmdPreallocCnt, uint8_t, true> fCmds;
|
| GrSTAllocator<kDrawPreallocCnt, DrawRecord> fDraws;
|
| - GrSTAllocator<kStatePreallocCnt, StencilPath> fStencilPaths;
|
| - GrSTAllocator<kStatePreallocCnt, DrawPath> fDrawPaths;
|
| + GrSTAllocator<kStencilPathPreallocCnt, StencilPath> fStencilPaths;
|
| + GrSTAllocator<kDrawPathPreallocCnt, DrawPath> fDrawPath;
|
| + GrSTAllocator<kDrawPathsPreallocCnt, DrawPaths> fDrawPaths;
|
| GrSTAllocator<kStatePreallocCnt, GrDrawState::DeferredState> fStates;
|
| GrSTAllocator<kClearPreallocCnt, Clear> fClears;
|
| GrSTAllocator<kCopySurfacePreallocCnt, CopySurface> fCopySurfaces;
|
|
|