diff options
author | Mike Klein <mtklein@google.com> | 2018-09-20 14:10:33 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-09-20 18:36:21 +0000 |
commit | 983886e573a7472fc8ab8156454bc49cba4c4d23 (patch) | |
tree | 7ade8beac4f07e6a4c677a21259a17aac320b310 /gm | |
parent | 0f1bb9209779436e6de0165abeb05774aa60f041 (diff) | |
download | skqp-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.cpp | 33 |
1 files changed, 31 insertions, 2 deletions
@@ -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]; |