aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/makecolorspace.cpp
diff options
context:
space:
mode:
authorGravatar Matt Sarett <msarett@google.com>2017-05-04 12:40:30 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-04 12:40:41 +0000
commitb59a9da7eba4ea5f3101b87deae3d67395c58a7e (patch)
treee7a147109af134bcfadfb454ed8df71213e9fa27 /gm/makecolorspace.cpp
parent64dbb89efc9daba9f62b4a385354a77aaa54861e (diff)
Revert "Add SkImage::makeColorSpace() with correct transfer fn behavior"
This reverts commit 9ad0531a18f854e5a2c8034880140dd6cd3ea3c1. Reason for revert: Does not handle transfer fn behavior. Original change's description: > Add SkImage::makeColorSpace() with correct transfer fn behavior > > Completes implementation for lazy and raster images. gpu is > still a TODO. > > Bug: skia:6553 > Change-Id: I04eea5c4fb53c50c0406c2e6b6778b0e21fd85f8 > Reviewed-on: https://skia-review.googlesource.com/14403 > Commit-Queue: Matt Sarett <msarett@google.com> > Reviewed-by: Mike Reed <reed@google.com> > TBR=mtklein@google.com,msarett@google.com,brianosman@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I3830321aea7d0dc5ab38a40f3318bb53a41df383 Reviewed-on: https://skia-review.googlesource.com/15306 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'gm/makecolorspace.cpp')
-rw-r--r--gm/makecolorspace.cpp90
1 files changed, 0 insertions, 90 deletions
diff --git a/gm/makecolorspace.cpp b/gm/makecolorspace.cpp
deleted file mode 100644
index af0b3d4b19..0000000000
--- a/gm/makecolorspace.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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 "Resources.h"
-#include "SkCodec.h"
-#include "SkColorSpace_Base.h"
-#include "SkImage.h"
-#include "SkImagePriv.h"
-
-sk_sp<SkImage> make_raster_image(const char* path, SkTransferFunctionBehavior behavior) {
- SkString resourcePath = GetResourcePath(path);
- sk_sp<SkData> resourceData = SkData::MakeFromFileName(resourcePath.c_str());
- std::unique_ptr<SkCodec> codec(SkCodec::NewFromData(resourceData));
-
- SkBitmap bitmap;
- bitmap.allocPixels(codec->getInfo());
-
- SkCodec::Options opts;
- opts.fPremulBehavior = behavior;
- codec->getPixels(codec->getInfo(), bitmap.getPixels(), bitmap.rowBytes(), &opts,
- nullptr, nullptr);
- 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);
-
- // Assign an sRGB color space on the xformed image, so we can see the effects of the xform
- // when we draw.
- sk_sp<SkColorSpace> srgb = SkColorSpace::MakeSRGB();
- if (colorSpace->gammaIsLinear()) {
- srgb = SkColorSpace::MakeSRGBLinear();
- }
- return SkImageMakeRasterCopyAndAssignColorSpace(xform.get(), srgb.get());
-}
-
-class MakeCSGM : public skiagm::GM {
-public:
- MakeCSGM() {}
-
-protected:
- SkString onShortName() override {
- return SkString("makecolorspace");
- }
-
- SkISize onISize() override {
- return SkISize::Make(128*3, 128*4);
- }
-
- 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 = as_CSB(wideGamut)->makeLinearGamma();
-
- // Lazy images
- sk_sp<SkImage> opaqueImage = GetResourceAsImage("mandrill_128.png");
- sk_sp<SkImage> premulImage = GetResourceAsImage("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(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->translate(0.0f, 256.0f);
-
- // Raster images
- opaqueImage = make_raster_image("mandrill_128.png", behavior);
- premulImage = make_raster_image("color_wheel.png", behavior);
- 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(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);
- }
-
-private:
- typedef skiagm::GM INHERITED;
-};
-
-DEF_GM(return new MakeCSGM;)