aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2016-12-08 10:35:19 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-12-08 16:27:44 +0000
commit9f549358b3ac9f61e78b194e39d6ac6eb322e35e (patch)
tree870b370b9985b1863abf4b1df0cce6d6f6ad5ac5 /gm
parent978ccebd8af61417ecdb6d45a31cc68657eee752 (diff)
Remove antialiasing control from GrPaint.
This adds an additional param (of new enum type GrAA) to draws that can antialias and a new enum GrAAType to indicate the AA technique (none, fragment shader computed coverage, msaa). Some GMs change due to this: 1) In some places we weren't disabling MSAA when the draw was supposed to be unantialiased. 2) Some bounding rect draws that use GrFragmentProcessors were unnecessarily turning on antialiasing, by disabling it a very small number of pixel LSBs change. Change-Id: I7d8d8793dda70bcd373d09055beb9949c1a8a4d0 Reviewed-on: https://skia-review.googlesource.com/5608 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'gm')
-rw-r--r--gm/beziereffects.cpp9
-rw-r--r--gm/bigrrectaaeffect.cpp3
-rw-r--r--gm/constcolorprocessor.cpp3
-rw-r--r--gm/convexpolyeffect.cpp6
-rw-r--r--gm/rrects.cpp4
-rw-r--r--gm/texdata.cpp4
-rw-r--r--gm/texturedomaineffect.cpp3
-rw-r--r--gm/windowrectangles.cpp9
-rw-r--r--gm/yuvtorgbeffect.cpp6
9 files changed, 29 insertions, 18 deletions
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp
index f924ee070a..9a1990b383 100644
--- a/gm/beziereffects.cpp
+++ b/gm/beziereffects.cpp
@@ -195,7 +195,8 @@ protected:
sk_sp<GrDrawOp> batch = sk_make_sp<BezierCubicOrConicTestBatch>(
gp, bounds, color, klmEqs, klmSigns[c]);
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint, GrAAType::kNone,
+ batch.get());
}
++col;
if (numCols == col) {
@@ -327,7 +328,8 @@ protected:
sk_sp<GrDrawOp> batch(
new BezierCubicOrConicTestBatch(gp, bounds, color, klmEqs, 1.f));
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint, GrAAType::kNone,
+ batch.get());
}
++col;
if (numCols == col) {
@@ -538,7 +540,8 @@ protected:
sk_sp<GrDrawOp> batch(new BezierQuadTestBatch(gp, bounds, color, DevToUV));
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint, GrAAType::kNone,
+ batch.get());
}
++col;
if (numCols == col) {
diff --git a/gm/bigrrectaaeffect.cpp b/gm/bigrrectaaeffect.cpp
index b114f49fa4..9750d90197 100644
--- a/gm/bigrrectaaeffect.cpp
+++ b/gm/bigrrectaaeffect.cpp
@@ -90,7 +90,8 @@ protected:
sk_sp<GrDrawOp> batch(
GrRectBatchFactory::CreateNonAAFill(0xff000000, SkMatrix::I(), bounds,
nullptr, nullptr));
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint, GrAAType::kNone,
+ batch.get());
}
canvas->restore();
x = x + fTestOffsetX;
diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp
index d70674279c..67b2b33e19 100644
--- a/gm/constcolorprocessor.cpp
+++ b/gm/constcolorprocessor.cpp
@@ -112,7 +112,8 @@ protected:
sk_sp<GrDrawOp> batch(
GrRectBatchFactory::CreateNonAAFill(grPaint.getColor(), viewMatrix,
renderRect, nullptr, nullptr));
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint, GrAAType::kNone,
+ batch.get());
// Draw labels for the input to the processor and the processor to the right of
// the test rect. The input label appears above the processor label.
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp
index 7a8c5b292a..c7a5d0c7f1 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -185,7 +185,8 @@ protected:
sk_sp<GrDrawOp> batch(new PolyBoundsBatch(p.getBounds(), 0xff000000));
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint, GrAAType::kNone,
+ batch.get());
x += SkScalarCeilToScalar(path->getBounds().width() + kDX);
}
@@ -224,7 +225,8 @@ protected:
sk_sp<GrDrawOp> batch(new PolyBoundsBatch(rect, 0xff000000));
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint, GrAAType::kNone,
+ batch.get());
x += SkScalarCeilToScalar(rect.width() + kDX);
}
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index 268e449319..a3b31d55ca 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -118,7 +118,9 @@ protected:
sk_sp<GrDrawOp> batch(
GrRectBatchFactory::CreateNonAAFill(0xff000000, SkMatrix::I(),
bounds, nullptr, nullptr));
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint,
+ GrAAType::kNone,
+ batch.get());
} else {
drew = false;
}
diff --git a/gm/texdata.cpp b/gm/texdata.cpp
index 4a74468ac5..574dfad2be 100644
--- a/gm/texdata.cpp
+++ b/gm/texdata.cpp
@@ -102,7 +102,7 @@ DEF_SIMPLE_GM_BG(texdata, canvas, 2 * S, 2 * S, SK_ColorBLACK) {
tm.postIDiv(2*S, 2*S);
paint.addColorTextureProcessor(texture, nullptr, tm);
- renderTargetContext->drawRect(clip, paint, vm, SkRect::MakeWH(2*S, 2*S));
+ renderTargetContext->drawRect(clip, paint, GrAA::kNo, vm, SkRect::MakeWH(2*S, 2*S));
// now update the lower right of the texture in first pass
// or upper right in second pass
@@ -116,7 +116,7 @@ DEF_SIMPLE_GM_BG(texdata, canvas, 2 * S, 2 * S, SK_ColorBLACK) {
texture->writePixels(S, (i ? 0 : S), S, S,
texture->config(), gTextureData.get(),
4 * stride);
- renderTargetContext->drawRect(clip, paint, vm, SkRect::MakeWH(2*S, 2*S));
+ renderTargetContext->drawRect(clip, paint, GrAA::kNo, vm, SkRect::MakeWH(2*S, 2*S));
}
}
#endif
diff --git a/gm/texturedomaineffect.cpp b/gm/texturedomaineffect.cpp
index e51a9065be..5ce6017815 100644
--- a/gm/texturedomaineffect.cpp
+++ b/gm/texturedomaineffect.cpp
@@ -130,7 +130,8 @@ protected:
sk_sp<GrDrawOp> batch(
GrRectBatchFactory::CreateNonAAFill(GrColor_WHITE, viewMatrix,
renderRect, nullptr, nullptr));
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint, GrAAType::kNone,
+ batch.get());
x += renderRect.width() + kTestPad;
}
y += renderRect.height() + kTestPad;
diff --git a/gm/windowrectangles.cpp b/gm/windowrectangles.cpp
index 3949b3f41c..94da20b7f1 100644
--- a/gm/windowrectangles.cpp
+++ b/gm/windowrectangles.cpp
@@ -141,7 +141,7 @@ private:
class MaskOnlyClipBase : public GrClip {
private:
bool quickContains(const SkRect&) const final { return false; }
- bool isRRect(const SkRect& rtBounds, SkRRect* rr, bool* aa) const final { return false; }
+ bool isRRect(const SkRect& rtBounds, SkRRect* rr, GrAA*) const final { return false; }
void getConservativeBounds(int width, int height, SkIRect* rect, bool* iior) const final {
rect->set(0, 0, width, height);
if (iior) {
@@ -190,7 +190,6 @@ void WindowRectanglesMaskGM::onCoverClipStack(const SkClipStack& stack, SkCanvas
const GrReducedClip reducedClip(stack, SkRect::Make(kCoverRect), kNumWindows);
GrPaint paint;
- paint.setAntiAlias(true);
if (!rtc->isStencilBufferMultisampled()) {
paint.setColor4f(GrColor4f(0, 0.25f, 1, 1));
this->visualizeAlphaMask(ctx, rtc, reducedClip, paint);
@@ -217,7 +216,7 @@ void WindowRectanglesMaskGM::visualizeAlphaMask(GrContext* ctx, GrRenderTargetCo
this->stencilCheckerboard(maskRTC.get(), true);
maskRTC->clear(nullptr, GrColorPackA4(0xff), true);
maskRTC->priv().drawAndStencilRect(StencilOnlyClip(), &GrUserStencilSettings::kUnused,
- SkRegion::kDifference_Op, false, false, SkMatrix::I(),
+ SkRegion::kDifference_Op, false, GrAA::kNo, SkMatrix::I(),
SkRect::MakeIWH(maskRTC->width(), maskRTC->height()));
reducedClip.drawAlphaClipMask(maskRTC.get());
sk_sp<GrTexture> mask(maskRTC->asTexture());
@@ -229,7 +228,7 @@ void WindowRectanglesMaskGM::visualizeAlphaMask(GrContext* ctx, GrRenderTargetCo
// inside window rectangles or outside the scissor should still have the initial checkerboard
// intact. (This verifies we didn't spend any time modifying those pixels in the mask.)
AlphaOnlyClip clip(mask.get(), x, y);
- rtc->drawRect(clip, paint, SkMatrix::I(),
+ rtc->drawRect(clip, paint, GrAA::kYes, SkMatrix::I(),
SkRect::Make(SkIRect::MakeXYWH(x, y, mask->width(), mask->height())));
}
@@ -268,7 +267,7 @@ void WindowRectanglesMaskGM::stencilCheckerboard(GrRenderTargetContext* rtc, boo
for (int x = (y & 1) == flip ? 0 : kMaskCheckerSize;
x < kLayerRect.width(); x += 2 * kMaskCheckerSize) {
SkIRect checker = SkIRect::MakeXYWH(x, y, kMaskCheckerSize, kMaskCheckerSize);
- rtc->priv().stencilRect(GrNoClip(), &kSetClip, false, SkMatrix::I(),
+ rtc->priv().stencilRect(GrNoClip(), &kSetClip, GrAAType::kNone, SkMatrix::I(),
SkRect::Make(checker));
}
}
diff --git a/gm/yuvtorgbeffect.cpp b/gm/yuvtorgbeffect.cpp
index 6b90dad9cc..fb0bcf3cfa 100644
--- a/gm/yuvtorgbeffect.cpp
+++ b/gm/yuvtorgbeffect.cpp
@@ -129,7 +129,8 @@ protected:
sk_sp<GrDrawOp> batch(
GrRectBatchFactory::CreateNonAAFill(GrColor_WHITE, viewMatrix,
renderRect, nullptr, nullptr));
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint, GrAAType::kNone,
+ batch.get());
}
x += renderRect.width() + kTestPad;
}
@@ -244,7 +245,8 @@ protected:
grPaint.addColorFragmentProcessor(fp);
sk_sp<GrDrawOp> batch(GrRectBatchFactory::CreateNonAAFill(
GrColor_WHITE, viewMatrix, renderRect, nullptr, nullptr));
- renderTargetContext->priv().testingOnly_drawBatch(grPaint, batch.get());
+ renderTargetContext->priv().testingOnly_drawBatch(grPaint, GrAAType::kNone,
+ batch.get());
}
}
}