| Index: src/gpu/GrDrawTarget.h
|
| diff --git a/src/gpu/GrDrawTarget.h b/src/gpu/GrDrawTarget.h
|
| index 47460ac527b56ac85d3efdccde2dc5f999e3ee11..49dd3880c8fcae92a71b86f3aebb7c2ff9263c9a 100644
|
| --- a/src/gpu/GrDrawTarget.h
|
| +++ b/src/gpu/GrDrawTarget.h
|
| @@ -329,6 +329,12 @@ public:
|
| void stencilPath(const GrPath*, const SkStrokeRec& stroke, SkPath::FillType fill);
|
|
|
| /**
|
| + * Fills a path. Fill must not be a hairline. It will respect the HW
|
| + * antialias flag on the draw state (if possible in the 3D API).
|
| + */
|
| + void fillPath(const GrPath*, const SkStrokeRec& stroke, SkPath::FillType fill);
|
| +
|
| + /**
|
| * Helper function for drawing rects. It performs a geometry src push and pop
|
| * and thus will finalize any reserved geometry.
|
| *
|
| @@ -448,6 +454,14 @@ public:
|
| */
|
| void executeDraw(const DrawInfo& info) { this->onDraw(info); }
|
|
|
| + /**
|
| + * For subclass internal use to invoke a call to onFillPath().
|
| + */
|
| + void executeFillPath(const GrPath* path, const SkStrokeRec& stroke,
|
| + SkPath::FillType fill, const GrDeviceCoordTexture* dstCopy) {
|
| + this->onFillPath(path, stroke, fill, dstCopy);
|
| + }
|
| +
|
| ////////////////////////////////////////////////////////////////////////////
|
|
|
| /**
|
| @@ -761,15 +775,6 @@ protected:
|
| }
|
| const SkRect* getDevBounds() const { return fDevBounds; }
|
|
|
| - bool getDevIBounds(SkIRect* bounds) const {
|
| - if (NULL != fDevBounds) {
|
| - fDevBounds->roundOut(bounds);
|
| - return true;
|
| - } else {
|
| - return false;
|
| - }
|
| - }
|
| -
|
| // NULL if no copy of the dst is needed for the draw.
|
| const GrDeviceCoordTexture* getDstCopy() const {
|
| if (NULL != fDstCopy.texture()) {
|
| @@ -834,6 +839,8 @@ private:
|
| const SkRect* localRect,
|
| const SkMatrix* localMatrix);
|
| virtual void onStencilPath(const GrPath*, const SkStrokeRec& stroke, SkPath::FillType fill) = 0;
|
| + virtual void onFillPath(const GrPath*, const SkStrokeRec& stroke, SkPath::FillType fill,
|
| + const GrDeviceCoordTexture* dstCopy) = 0;
|
|
|
| // helpers for reserving vertex and index space.
|
| bool reserveVertexSpace(size_t vertexSize,
|
| @@ -852,7 +859,10 @@ private:
|
|
|
| // Makes a copy of the dst if it is necessary for the draw. Returns false if a copy is required
|
| // but couldn't be made. Otherwise, returns true.
|
| - bool setupDstReadIfNecessary(DrawInfo* info);
|
| + bool setupDstReadIfNecessary(DrawInfo* info) {
|
| + return this->setupDstReadIfNecessary(&info->fDstCopy, info->getDevBounds());
|
| + }
|
| + bool setupDstReadIfNecessary(GrDeviceCoordTexture* dstCopy, const SkRect* drawBounds);
|
|
|
| // Check to see if this set of draw commands has been sent out
|
| virtual bool isIssued(uint32_t drawID) { return true; }
|
|
|