aboutsummaryrefslogtreecommitdiff
path: root/gm
diff options
context:
space:
mode:
authorMike Klein <mtklein@google.com>2018-09-20 14:10:33 -0400
committerSkia Commit-Bot <skia-commit-bot@chromium.org>2018-09-20 18:36:21 +0000
commit983886e573a7472fc8ab8156454bc49cba4c4d23 (patch)
tree7ade8beac4f07e6a4c677a21259a17aac320b310 /gm
parent0f1bb9209779436e6de0165abeb05774aa60f041 (diff)
downloadskqp-983886e573a7472fc8ab8156454bc49cba4c4d23.tar.gz
add interp-in-premul case to GM
Change-Id: I9811c76c3db38d5ab49ba0312e433aa46744df05 Reviewed-on: https://skia-review.googlesource.com/155781 Commit-Queue: Mike Klein <mtklein@google.com> Commit-Queue: Brian Osman <brianosman@google.com> Auto-Submit: Mike Klein <mtklein@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
Diffstat (limited to 'gm')
-rw-r--r--gm/p3.cpp33
1 files changed, 31 insertions, 2 deletions
diff --git a/gm/p3.cpp b/gm/p3.cpp
index 1e3674c314..838033859d 100644
--- a/gm/p3.cpp
+++ b/gm/p3.cpp
@@ -141,7 +141,7 @@ static void compare_pixel(const char* label,
}
}
-DEF_SIMPLE_GM(p3, canvas, 450, 800) {
+DEF_SIMPLE_GM(p3, canvas, 450, 1000) {
auto p3 = SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma,
SkColorSpace::kDCIP3_D65_Gamut);
@@ -208,7 +208,7 @@ DEF_SIMPLE_GM(p3, canvas, 450, 800) {
canvas->translate(0,80);
- // Draw a gradient from P3 red to P3 green, and check the corners.
+ // Draw a gradient from P3 red to P3 green interpolating in unpremul, and check the corners.
{
SkPoint points[] = {{10.5,10.5}, {69.5,69.5}};
@@ -234,6 +234,35 @@ DEF_SIMPLE_GM(p3, canvas, 450, 800) {
canvas->translate(0,80);
+ // Draw a gradient from P3 red to P3 green interpolating in premul, and check the corners.
+ {
+
+ SkPoint points[] = {{10.5,10.5}, {69.5,69.5}};
+ SkColor4f colors[] = {{1,0,0,1}, {0,1,0,1}};
+
+ SkPaint paint;
+ paint.setShader(
+ SkGradientShader::MakeLinear(points, colors, p3,
+ nullptr, SK_ARRAY_COUNT(colors),
+ SkShader::kClamp_TileMode,
+ SkGradientShader::kInterpolateColorsInPremul_Flag,
+ nullptr/*local matrix*/));
+ canvas->drawRect({10,10,70,70}, paint);
+ canvas->save();
+ compare_pixel("gradient P3 red",
+ canvas, 10,10,
+ {1,0,0,1}, p3.get());
+
+ canvas->translate(180, 0);
+
+ compare_pixel("gradient P3 green",
+ canvas, 69,69,
+ {0,1,0,1}, p3.get());
+ canvas->restore();
+ }
+
+ canvas->translate(0,80);
+
// Draw an A8 image with a P3 red, scaled and not, as a shader or bitmap.
{
uint8_t mask[256];