aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/ops/GrNonAAFillRectOp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/ops/GrNonAAFillRectOp.cpp')
-rw-r--r--src/gpu/ops/GrNonAAFillRectOp.cpp82
1 files changed, 52 insertions, 30 deletions
diff --git a/src/gpu/ops/GrNonAAFillRectOp.cpp b/src/gpu/ops/GrNonAAFillRectOp.cpp
index 269f876ddc..20bd599133 100644
--- a/src/gpu/ops/GrNonAAFillRectOp.cpp
+++ b/src/gpu/ops/GrNonAAFillRectOp.cpp
@@ -104,13 +104,18 @@ private:
using Helper = GrSimpleMeshDrawOpHelperWithStencil;
public:
- static std::unique_ptr<GrDrawOp> Make(GrPaint&& paint, const SkMatrix& viewMatrix,
- const SkRect& rect, const SkRect* localRect,
- const SkMatrix* localMatrix, GrAAType aaType,
+ static std::unique_ptr<GrDrawOp> Make(GrContext* context,
+ GrPaint&& paint,
+ const SkMatrix& viewMatrix,
+ const SkRect& rect,
+ const SkRect* localRect,
+ const SkMatrix* localMatrix,
+ GrAAType aaType,
const GrUserStencilSettings* stencilSettings) {
SkASSERT(GrAAType::kCoverage != aaType);
- return Helper::FactoryHelper<NonAAFillRectOp>(std::move(paint), viewMatrix, rect, localRect,
- localMatrix, aaType, stencilSettings);
+ return Helper::FactoryHelper<NonAAFillRectOp>(context, std::move(paint), viewMatrix, rect,
+ localRect, localMatrix, aaType,
+ stencilSettings);
}
NonAAFillRectOp() = delete;
@@ -228,12 +233,17 @@ private:
using Helper = GrSimpleMeshDrawOpHelperWithStencil;
public:
- static std::unique_ptr<GrDrawOp> Make(GrPaint&& paint, const SkMatrix& viewMatrix,
- const SkRect& rect, const SkRect* localRect,
- const SkMatrix* localMatrix, GrAAType aaType,
+ static std::unique_ptr<GrDrawOp> Make(GrContext* context,
+ GrPaint&& paint,
+ const SkMatrix& viewMatrix,
+ const SkRect& rect,
+ const SkRect* localRect,
+ const SkMatrix* localMatrix,
+ GrAAType aaType,
const GrUserStencilSettings* stencilSettings) {
SkASSERT(GrAAType::kCoverage != aaType);
- return Helper::FactoryHelper<NonAAFillRectPerspectiveOp>(std::move(paint), viewMatrix, rect,
+ return Helper::FactoryHelper<NonAAFillRectPerspectiveOp>(context, std::move(paint),
+ viewMatrix, rect,
localRect, localMatrix, aaType,
stencilSettings);
}
@@ -375,39 +385,50 @@ private:
namespace GrRectOpFactory {
-std::unique_ptr<GrDrawOp> MakeNonAAFill(GrPaint&& paint, const SkMatrix& viewMatrix,
- const SkRect& rect, GrAAType aaType,
+std::unique_ptr<GrDrawOp> MakeNonAAFill(GrContext* context,
+ GrPaint&& paint,
+ const SkMatrix& viewMatrix,
+ const SkRect& rect,
+ GrAAType aaType,
const GrUserStencilSettings* stencilSettings) {
if (viewMatrix.hasPerspective()) {
- return NonAAFillRectPerspectiveOp::Make(std::move(paint), viewMatrix, rect, nullptr,
- nullptr, aaType, stencilSettings);
+ return NonAAFillRectPerspectiveOp::Make(context, std::move(paint), viewMatrix, rect,
+ nullptr, nullptr, aaType, stencilSettings);
} else {
- return NonAAFillRectOp::Make(std::move(paint), viewMatrix, rect, nullptr, nullptr, aaType,
- stencilSettings);
+ return NonAAFillRectOp::Make(context, std::move(paint), viewMatrix, rect, nullptr, nullptr,
+ aaType, stencilSettings);
}
}
std::unique_ptr<GrDrawOp> MakeNonAAFillWithLocalMatrix(
- GrPaint&& paint, const SkMatrix& viewMatrix, const SkMatrix& localMatrix,
- const SkRect& rect, GrAAType aaType, const GrUserStencilSettings* stencilSettings) {
+ GrContext* context,
+ GrPaint&& paint,
+ const SkMatrix& viewMatrix,
+ const SkMatrix& localMatrix,
+ const SkRect& rect,
+ GrAAType aaType,
+ const GrUserStencilSettings* stencilSettings) {
if (viewMatrix.hasPerspective() || localMatrix.hasPerspective()) {
- return NonAAFillRectPerspectiveOp::Make(std::move(paint), viewMatrix, rect, nullptr,
- &localMatrix, aaType, stencilSettings);
+ return NonAAFillRectPerspectiveOp::Make(context, std::move(paint), viewMatrix, rect,
+ nullptr, &localMatrix, aaType, stencilSettings);
} else {
- return NonAAFillRectOp::Make(std::move(paint), viewMatrix, rect, nullptr, &localMatrix,
- aaType, stencilSettings);
+ return NonAAFillRectOp::Make(context, std::move(paint), viewMatrix, rect, nullptr,
+ &localMatrix, aaType, stencilSettings);
}
}
-std::unique_ptr<GrDrawOp> MakeNonAAFillWithLocalRect(GrPaint&& paint, const SkMatrix& viewMatrix,
- const SkRect& rect, const SkRect& localRect,
+std::unique_ptr<GrDrawOp> MakeNonAAFillWithLocalRect(GrContext* context,
+ GrPaint&& paint,
+ const SkMatrix& viewMatrix,
+ const SkRect& rect,
+ const SkRect& localRect,
GrAAType aaType) {
if (viewMatrix.hasPerspective()) {
- return NonAAFillRectPerspectiveOp::Make(std::move(paint), viewMatrix, rect, &localRect,
- nullptr, aaType, nullptr);
+ return NonAAFillRectPerspectiveOp::Make(context, std::move(paint), viewMatrix, rect,
+ &localRect, nullptr, aaType, nullptr);
} else {
- return NonAAFillRectOp::Make(std::move(paint), viewMatrix, rect, &localRect, nullptr,
- aaType, nullptr);
+ return NonAAFillRectOp::Make(context, std::move(paint), viewMatrix, rect, &localRect,
+ nullptr, aaType, nullptr);
}
}
@@ -430,10 +451,11 @@ GR_DRAW_OP_TEST_DEFINE(NonAAFillRectOp) {
const SkRect* lr = random->nextBool() ? &localRect : nullptr;
const SkMatrix* lm = random->nextBool() ? &localMatrix : nullptr;
if (viewMatrix.hasPerspective() || (lm && lm->hasPerspective())) {
- return NonAAFillRectPerspectiveOp::Make(std::move(paint), viewMatrix, rect, lr, lm, aaType,
- stencil);
+ return NonAAFillRectPerspectiveOp::Make(context, std::move(paint), viewMatrix, rect,
+ lr, lm, aaType, stencil);
} else {
- return NonAAFillRectOp::Make(std::move(paint), viewMatrix, rect, lr, lm, aaType, stencil);
+ return NonAAFillRectOp::Make(context, std::move(paint), viewMatrix, rect,
+ lr, lm, aaType, stencil);
}
}