Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(567)

Unified Diff: gm/gradients.cpp

Issue 1400813006: Remove SK_SUPPORT_LEGACY_GRADIENT_DITHERING from Skia proper (Closed) Base URL: https://chromium.googlesource.com/skia.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | gm/gradients_2pt_conical.cpp » ('j') | gyp/skia_for_android_framework_defines.gypi » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gm/gradients.cpp
diff --git a/gm/gradients.cpp b/gm/gradients.cpp
index ee6380c7ca3f79a96a0f0d3c18e5ffdebc30fa45..b0a8a5ad89198325b61d3283b589c4df464f1876 100644
--- a/gm/gradients.cpp
+++ b/gm/gradients.cpp
@@ -100,14 +100,14 @@ static const GradMaker gGradMakers[] = {
class GradientsGM : public GM {
public:
- GradientsGM() {
+ GradientsGM(bool dither) : fDither(dither) {
this->setBGColor(sk_tool_utils::color_to_565(0xFFDDDDDD));
}
protected:
SkString onShortName() {
- return SkString("gradients");
+ return SkString(fDither ? "gradients" : "gradients_nodither");
}
virtual SkISize onISize() { return SkISize::Make(840, 815); }
@@ -122,6 +122,7 @@ protected:
SkRect r = { 0, 0, SkIntToScalar(100), SkIntToScalar(100) };
SkPaint paint;
paint.setAntiAlias(true);
+ paint.setDither(fDither);
canvas->translate(SkIntToScalar(20), SkIntToScalar(20));
for (size_t i = 0; i < SK_ARRAY_COUNT(gGradData); i++) {
@@ -146,23 +147,28 @@ protected:
}
}
+protected:
+ bool fDither;
+
private:
typedef GM INHERITED;
};
-DEF_GM( return new GradientsGM; )
+DEF_GM( return new GradientsGM(true); )
+DEF_GM( return new GradientsGM(false); )
// Based on the original gradient slide, but with perspective applied to the
// gradient shaders' local matrices
class GradientsLocalPerspectiveGM : public GM {
public:
- GradientsLocalPerspectiveGM() {
+ GradientsLocalPerspectiveGM(bool dither) : fDither(dither) {
this->setBGColor(sk_tool_utils::color_to_565(0xFFDDDDDD));
}
protected:
SkString onShortName() {
- return SkString("gradients_local_perspective");
+ return SkString(fDither ? "gradients_local_perspective" :
+ "gradients_local_perspective_nodither");
}
virtual SkISize onISize() { return SkISize::Make(840, 815); }
@@ -177,6 +183,7 @@ protected:
SkRect r = { 0, 0, SkIntToScalar(100), SkIntToScalar(100) };
SkPaint paint;
paint.setAntiAlias(true);
+ paint.setDither(fDither);
canvas->translate(SkIntToScalar(20), SkIntToScalar(20));
for (size_t i = 0; i < SK_ARRAY_COUNT(gGradData); i++) {
@@ -201,16 +208,23 @@ protected:
}
private:
+ bool fDither;
+
typedef GM INHERITED;
};
-DEF_GM( return new GradientsLocalPerspectiveGM; )
+DEF_GM( return new GradientsLocalPerspectiveGM(true); )
+DEF_GM( return new GradientsLocalPerspectiveGM(false); )
// Based on the original gradient slide, but with perspective applied to
// the view matrix
class GradientsViewPerspectiveGM : public GradientsGM {
+public:
+ GradientsViewPerspectiveGM(bool dither) : INHERITED(dither) { }
+
protected:
SkString onShortName() {
- return SkString("gradients_view_perspective");
+ return SkString(fDither ? "gradients_view_perspective" :
+ "gradients_view_perspective_nodither");
}
virtual SkISize onISize() { return SkISize::Make(840, 500); }
@@ -227,7 +241,8 @@ protected:
private:
typedef GradientsGM INHERITED;
};
-DEF_GM( return new GradientsViewPerspectiveGM; )
+DEF_GM( return new GradientsViewPerspectiveGM(true); )
+DEF_GM( return new GradientsViewPerspectiveGM(false); )
/*
Inspired by this <canvas> javascript, where we need to detect that we are not
@@ -247,11 +262,11 @@ DEF_GM( return new GradientsViewPerspectiveGM; )
*/
class GradientsDegenrate2PointGM : public GM {
public:
- GradientsDegenrate2PointGM() {}
+ GradientsDegenrate2PointGM(bool dither) : fDither(dither) {}
protected:
SkString onShortName() {
- return SkString("gradients_degenerate_2pt");
+ return SkString(fDither ? "gradients_degenerate_2pt" : "gradients_degenerate_2pt_nodither");
}
virtual SkISize onISize() { return SkISize::Make(320, 320); }
@@ -275,23 +290,29 @@ protected:
pos, SK_ARRAY_COUNT(pos),
SkShader::kClamp_TileMode);
SkPaint paint;
+ paint.setDither(fDither);
paint.setShader(s)->unref();
canvas->drawPaint(paint);
}
private:
+ bool fDither;
+
typedef GM INHERITED;
};
-DEF_GM( return new GradientsDegenrate2PointGM; )
+DEF_GM( return new GradientsDegenrate2PointGM(true); )
+DEF_GM( return new GradientsDegenrate2PointGM(false); )
/// Tests correctness of *optimized* codepaths in gradients.
class ClampedGradientsGM : public GM {
public:
- ClampedGradientsGM() {}
+ ClampedGradientsGM(bool dither) : fDither(dither) {}
protected:
- SkString onShortName() { return SkString("clamped_gradients"); }
+ SkString onShortName() {
+ return SkString(fDither ? "clamped_gradients" : "clamped_gradients_nodither");
+ }
virtual SkISize onISize() { return SkISize::Make(640, 510); }
@@ -304,6 +325,7 @@ protected:
SkRect r = { 0, 0, SkIntToScalar(100), SkIntToScalar(300) };
SkPaint paint;
+ paint.setDither(fDither);
paint.setAntiAlias(true);
SkPoint center;
@@ -319,9 +341,12 @@ protected:
}
private:
+ bool fDither;
+
typedef GM INHERITED;
};
-DEF_GM( return new ClampedGradientsGM; )
+DEF_GM( return new ClampedGradientsGM(true); )
+DEF_GM( return new ClampedGradientsGM(false); )
/// Checks quality of large radial gradients, which may display
/// some banding.
@@ -368,11 +393,14 @@ DEF_GM( return new RadialGradientGM; )
class RadialGradient2GM : public GM {
public:
- RadialGradient2GM() {}
+ RadialGradient2GM(bool dither) : fDither(dither) {}
protected:
- SkString onShortName() override { return SkString("radial_gradient2"); }
+ SkString onShortName() override {
+ return SkString(fDither ? "radial_gradient2" : "radial_gradient2_nodither");
+ }
+
SkISize onISize() override { return SkISize::Make(800, 400); }
void drawBG(SkCanvas* canvas) {
canvas->drawColor(0xFF000000);
@@ -414,8 +442,11 @@ protected:
SkShader::kClamp_TileMode,
flags[i], nullptr));
paint1.setShader(sweep);
+ paint1.setDither(fDither);
paint2.setShader(radial1);
+ paint2.setDither(fDither);
paint3.setShader(radial2);
+ paint3.setDither(fDither);
canvas->drawCircle(cx, cy, radius, paint1);
canvas->drawCircle(cx, cy, radius, paint3);
@@ -426,16 +457,22 @@ protected:
}
private:
+ bool fDither;
+
typedef GM INHERITED;
};
-DEF_GM( return new RadialGradient2GM; )
+DEF_GM( return new RadialGradient2GM(true); )
+DEF_GM( return new RadialGradient2GM(false); )
// Shallow radial (shows banding on raster)
class RadialGradient3GM : public GM {
- SkAutoTUnref<SkShader> fShader;
+public:
+ RadialGradient3GM(bool dither) : fDither(dither) { }
protected:
- SkString onShortName() override { return SkString("radial_gradient3"); }
+ SkString onShortName() override {
+ return SkString(fDither ? "radial_gradient3" : "radial_gradient3_nodither");
+ }
SkISize onISize() override { return SkISize::Make(500, 500); }
@@ -452,19 +489,27 @@ protected:
void onDraw(SkCanvas* canvas) override {
SkPaint paint;
paint.setShader(fShader);
+ paint.setDither(fDither);
canvas->drawRect(SkRect::MakeWH(500, 500), paint);
}
private:
+ SkAutoTUnref<SkShader> fShader;
+ bool fDither;
+
typedef GM INHERITED;
};
-DEF_GM( return new RadialGradient3GM; )
+DEF_GM( return new RadialGradient3GM(true); )
+DEF_GM( return new RadialGradient3GM(false); )
class RadialGradient4GM : public GM {
- SkAutoTUnref<SkShader> fShader;
+public:
+ RadialGradient4GM(bool dither) : fDither(dither) { }
protected:
- SkString onShortName() override { return SkString("radial_gradient4"); }
+ SkString onShortName() override {
+ return SkString(fDither ? "radial_gradient4" : "radial_gradient4_nodither");
+ }
SkISize onISize() override { return SkISize::Make(500, 500); }
@@ -481,20 +526,29 @@ protected:
void onDraw(SkCanvas* canvas) override {
SkPaint paint;
paint.setAntiAlias(true);
+ paint.setDither(fDither);
paint.setShader(fShader);
canvas->drawRect(SkRect::MakeWH(500, 500), paint);
}
private:
+ SkAutoTUnref<SkShader> fShader;
+ bool fDither;
+
typedef GM INHERITED;
};
-DEF_GM( return new RadialGradient4GM; )
+DEF_GM( return new RadialGradient4GM(true); )
+DEF_GM( return new RadialGradient4GM(false); )
class LinearGradientGM : public GM {
- SkAutoTUnref<SkShader> fShader[100];
+public:
+ LinearGradientGM(bool dither) : fDither(dither) { }
protected:
- SkString onShortName() override { return SkString("linear_gradient"); }
+ SkString onShortName() override {
+ return SkString(fDither ? "linear_gradient" : "linear_gradient_nodither");
+ }
+
const SkScalar kWidthBump = 30.f;
const SkScalar kHeight = 5.f;
const SkScalar kMinWidth = 540.f;
@@ -521,6 +575,7 @@ protected:
void onDraw(SkCanvas* canvas) override {
SkPaint paint;
paint.setAntiAlias(true);
+ paint.setDither(fDither);
for (int index = 0; index < (int) SK_ARRAY_COUNT(fShader); ++index) {
paint.setShader(fShader[index]);
canvas->drawRect(SkRect::MakeLTRB(0, index * kHeight, kMinWidth + index * kWidthBump,
@@ -529,8 +584,12 @@ protected:
}
private:
+ SkAutoTUnref<SkShader> fShader[100];
+ bool fDither;
+
typedef GM INHERITED;
};
-DEF_GM( return new LinearGradientGM; )
+DEF_GM( return new LinearGradientGM(true); )
+DEF_GM( return new LinearGradientGM(false); )
}
« no previous file with comments | « no previous file | gm/gradients_2pt_conical.cpp » ('j') | gyp/skia_for_android_framework_defines.gypi » ('J')

Powered by Google App Engine
This is Rietveld 408576698