Revert "Revert "Add GM to test SkToSRGBColorFilter""
This reverts commita1fc47169a
. Reason for revert: serialization fixed Original change's description: > Revert "Add GM to test SkToSRGBColorFilter" > > This reverts commitfa3ed03720
. > > Reason for revert: GM is failing on a lot of bots > > Original change's description: > > Add GM to test SkToSRGBColorFilter > > > > Bug: skia: > > Change-Id: If342ad5503d1b427f2d04ce15b75f0f7fa2706c1 > > Reviewed-on: https://skia-review.googlesource.com/26426 > > Reviewed-by: Mike Klein <mtklein@google.com> > > Commit-Queue: Brian Osman <brianosman@google.com> > > TBR=djsollen@google.com,mtklein@google.com,brianosman@google.com > > Change-Id: I92fe179ead6d115b32b3a9533b8ee0e10bb3ee43 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/26522 > Reviewed-by: Kevin Lubick <kjlubick@google.com> > Commit-Queue: Kevin Lubick <kjlubick@google.com> TBR=djsollen@google.com,mtklein@google.com,kjlubick@google.com,brianosman@google.com Change-Id: Id4db253a149ff978456ecfe55c8e551e325c98ac No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/26511 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
This commit is contained in:
parent
205c69d489
commit
fa78ece52e
57
gm/srgb_color_filter.cpp
Normal file
57
gm/srgb_color_filter.cpp
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright 2017 Google Inc.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include "gm.h"
|
||||
|
||||
#include "SkPM4fPriv.h"
|
||||
#include "SkToSRGBColorFilter.h"
|
||||
|
||||
DEF_SIMPLE_GM_BG(srgb_color_filter, canvas, 130, 130, SK_ColorBLACK) {
|
||||
// Src bitmap with some colors that we're going to interpret as being in a few different spaces
|
||||
SkBitmap bmp;
|
||||
bmp.allocN32Pixels(3, 2);
|
||||
SkPMColor* pixels = reinterpret_cast<SkPMColor*>(bmp.getPixels());
|
||||
pixels[0] = SkPackARGB32(0xFF, 0xA0, 0x00, 0x00);
|
||||
pixels[1] = SkPackARGB32(0xFF, 0x00, 0xA0, 0x00);
|
||||
pixels[2] = SkPackARGB32(0xFF, 0x00, 0x00, 0xA0);
|
||||
pixels[3] = SkPackARGB32(0xFF, 0x00, 0xA0, 0xA0);
|
||||
pixels[4] = SkPackARGB32(0xFF, 0xA0, 0x00, 0xA0);
|
||||
pixels[5] = SkPackARGB32(0xFF, 0xA0, 0xA0, 0x00);
|
||||
|
||||
// Reference image
|
||||
canvas->drawBitmapRect(bmp, SkRect::MakeXYWH(10, 10, 50, 50), nullptr);
|
||||
|
||||
auto srgb = SkColorSpace::MakeSRGB();
|
||||
auto rec2020 = SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma,
|
||||
SkColorSpace::kRec2020_Gamut);
|
||||
|
||||
// NarrowGamut RGB (an artifically smaller than sRGB gamut)
|
||||
SkColorSpacePrimaries narrowPrimaries = {
|
||||
0.54f, 0.33f, // Rx, Ry
|
||||
0.33f, 0.50f, // Gx, Gy
|
||||
0.25f, 0.20f, // Bx, By
|
||||
0.3127f, 0.3290f, // Wx, Wy
|
||||
};
|
||||
SkMatrix44 narrowGamutRGBMatrix(SkMatrix44::kUninitialized_Constructor);
|
||||
narrowPrimaries.toXYZD50(&narrowGamutRGBMatrix);
|
||||
auto narrow = SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma,
|
||||
narrowGamutRGBMatrix);
|
||||
|
||||
SkPaint paint;
|
||||
|
||||
// Transforming sRGB -> sRGB should do nothing. Top two squares should look identical.
|
||||
paint.setColorFilter(SkToSRGBColorFilter::Make(srgb));
|
||||
canvas->drawBitmapRect(bmp, SkRect::MakeXYWH(70, 10, 50, 50), &paint);
|
||||
|
||||
// Rec2020 -> sRGB should produce more vivid colors.
|
||||
paint.setColorFilter(SkToSRGBColorFilter::Make(rec2020));
|
||||
canvas->drawBitmapRect(bmp, SkRect::MakeXYWH(10, 70, 50, 50), &paint);
|
||||
|
||||
// Narrow -> sRGB should produce more muted colors.
|
||||
paint.setColorFilter(SkToSRGBColorFilter::Make(narrow));
|
||||
canvas->drawBitmapRect(bmp, SkRect::MakeXYWH(70, 70, 50, 50), &paint);
|
||||
}
|
@ -277,6 +277,7 @@ gm_sources = [
|
||||
"$_gm/spritebitmap.cpp",
|
||||
"$_gm/srcmode.cpp",
|
||||
"$_gm/srgb.cpp",
|
||||
"$_gm/srgb_color_filter.cpp",
|
||||
"$_gm/stlouisarch.cpp",
|
||||
"$_gm/stringart.cpp",
|
||||
"$_gm/stroke_rect_shader.cpp",
|
||||
|
@ -54,7 +54,11 @@ void SkToSRGBColorFilter::onAppendStages(SkRasterPipeline* p,
|
||||
}
|
||||
|
||||
sk_sp<SkColorFilter> SkToSRGBColorFilter::Make(sk_sp<SkColorSpace> srcColorSpace) {
|
||||
return sk_sp<SkColorFilter>(new SkToSRGBColorFilter(std::move(srcColorSpace)));
|
||||
if (srcColorSpace->isSRGB()) {
|
||||
return nullptr;
|
||||
} else {
|
||||
return sk_sp<SkColorFilter>(new SkToSRGBColorFilter(std::move(srcColorSpace)));
|
||||
}
|
||||
}
|
||||
|
||||
SkToSRGBColorFilter::SkToSRGBColorFilter(sk_sp<SkColorSpace> srcColorSpace)
|
||||
|
Loading…
Reference in New Issue
Block a user