diff options
Diffstat (limited to 'gm/makecolorspace.cpp')
-rw-r--r-- | gm/makecolorspace.cpp | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/gm/makecolorspace.cpp b/gm/makecolorspace.cpp index cd957c3281..ec04b74180 100644 --- a/gm/makecolorspace.cpp +++ b/gm/makecolorspace.cpp @@ -11,22 +11,19 @@ #include "SkImage.h" #include "SkImagePriv.h" -sk_sp<SkImage> make_raster_image(const char* path, SkTransferFunctionBehavior behavior) { +sk_sp<SkImage> make_raster_image(const char* path) { sk_sp<SkData> resourceData = GetResourceAsData(path); std::unique_ptr<SkCodec> codec = SkCodec::MakeFromData(resourceData); SkBitmap bitmap; bitmap.allocPixels(codec->getInfo()); - SkCodec::Options opts; - opts.fPremulBehavior = behavior; - codec->getPixels(codec->getInfo(), bitmap.getPixels(), bitmap.rowBytes(), &opts); + codec->getPixels(codec->getInfo(), bitmap.getPixels(), bitmap.rowBytes()); return SkImage::MakeFromBitmap(bitmap); } -sk_sp<SkImage> make_color_space(sk_sp<SkImage> orig, sk_sp<SkColorSpace> colorSpace, - SkTransferFunctionBehavior behavior) { - sk_sp<SkImage> xform = orig->makeColorSpace(colorSpace, behavior); +sk_sp<SkImage> make_color_space(sk_sp<SkImage> orig, sk_sp<SkColorSpace> colorSpace) { + sk_sp<SkImage> xform = orig->makeColorSpace(colorSpace); // Assign an sRGB color space on the xformed image, so we can see the effects of the xform // when we draw. @@ -51,9 +48,6 @@ protected: } void onDraw(SkCanvas* canvas) override { - SkTransferFunctionBehavior behavior = canvas->imageInfo().colorSpace() ? - SkTransferFunctionBehavior::kRespect : SkTransferFunctionBehavior::kIgnore; - sk_sp<SkColorSpace> wideGamut = SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma, SkColorSpace::kAdobeRGB_Gamut); sk_sp<SkColorSpace> wideGamutLinear = wideGamut->makeLinearGamma(); @@ -62,22 +56,22 @@ protected: sk_sp<SkImage> opaqueImage = GetResourceAsImage("images/mandrill_128.png"); sk_sp<SkImage> premulImage = GetResourceAsImage("images/color_wheel.png"); canvas->drawImage(opaqueImage, 0.0f, 0.0f); - canvas->drawImage(make_color_space(opaqueImage, wideGamut, behavior), 128.0f, 0.0f); - canvas->drawImage(make_color_space(opaqueImage, wideGamutLinear, behavior), 256.0f, 0.0f); + canvas->drawImage(make_color_space(opaqueImage, wideGamut), 128.0f, 0.0f); + canvas->drawImage(make_color_space(opaqueImage, wideGamutLinear), 256.0f, 0.0f); canvas->drawImage(premulImage, 0.0f, 128.0f); - canvas->drawImage(make_color_space(premulImage, wideGamut, behavior), 128.0f, 128.0f); - canvas->drawImage(make_color_space(premulImage, wideGamutLinear, behavior), 256.0f, 128.0f); + canvas->drawImage(make_color_space(premulImage, wideGamut), 128.0f, 128.0f); + canvas->drawImage(make_color_space(premulImage, wideGamutLinear), 256.0f, 128.0f); canvas->translate(0.0f, 256.0f); // Raster images - opaqueImage = make_raster_image("images/mandrill_128.png", behavior); - premulImage = make_raster_image("images/color_wheel.png", behavior); + opaqueImage = make_raster_image("images/mandrill_128.png"); + premulImage = make_raster_image("images/color_wheel.png"); canvas->drawImage(opaqueImage, 0.0f, 0.0f); - canvas->drawImage(make_color_space(opaqueImage, wideGamut, behavior), 128.0f, 0.0f); - canvas->drawImage(make_color_space(opaqueImage, wideGamutLinear, behavior), 256.0f, 0.0f); + canvas->drawImage(make_color_space(opaqueImage, wideGamut), 128.0f, 0.0f); + canvas->drawImage(make_color_space(opaqueImage, wideGamutLinear), 256.0f, 0.0f); canvas->drawImage(premulImage, 0.0f, 128.0f); - canvas->drawImage(make_color_space(premulImage, wideGamut, behavior), 128.0f, 128.0f); - canvas->drawImage(make_color_space(premulImage, wideGamutLinear, behavior), 256.0f, 128.0f); + canvas->drawImage(make_color_space(premulImage, wideGamut), 128.0f, 128.0f); + canvas->drawImage(make_color_space(premulImage, wideGamutLinear), 256.0f, 128.0f); } private: |