aboutsummaryrefslogtreecommitdiffhomepage
path: root/dm
diff options
context:
space:
mode:
Diffstat (limited to 'dm')
-rw-r--r--dm/DM.cpp20
-rw-r--r--dm/DMSrcSink.cpp32
-rw-r--r--dm/DMSrcSink.h3
3 files changed, 4 insertions, 51 deletions
diff --git a/dm/DM.cpp b/dm/DM.cpp
index d3d12393a6..4b51030557 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -14,7 +14,6 @@
#include "SkCodec.h"
#include "SkColorPriv.h"
#include "SkColorSpace.h"
-#include "SkColorSpacePriv.h"
#include "SkCommonFlags.h"
#include "SkCommonFlagsConfig.h"
#include "SkCommonFlagsPathRenderer.h"
@@ -896,26 +895,9 @@ static sk_sp<SkColorSpace> adobe_rgb() {
SkColorSpace::kAdobeRGB_Gamut);
}
-static sk_sp<SkColorSpace> rgb_to_gbr() {
- float gbr[9];
- gbr[0] = gSRGB_toXYZD50[1];
- gbr[1] = gSRGB_toXYZD50[2];
- gbr[2] = gSRGB_toXYZD50[0];
- gbr[3] = gSRGB_toXYZD50[4];
- gbr[4] = gSRGB_toXYZD50[5];
- gbr[5] = gSRGB_toXYZD50[3];
- gbr[6] = gSRGB_toXYZD50[7];
- gbr[7] = gSRGB_toXYZD50[8];
- gbr[8] = gSRGB_toXYZD50[6];
- SkMatrix44 toXYZD50(SkMatrix44::kUninitialized_Constructor);
- toXYZD50.set3x3RowMajorf(gbr);
- return SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma, toXYZD50);
-}
-
static Sink* create_via(const SkString& tag, Sink* wrapped) {
#define VIA(t, via, ...) if (tag.equals(t)) { return new via(__VA_ARGS__); }
- VIA("adobe", ViaCSXform, wrapped, adobe_rgb(), false);
- VIA("gbr", ViaCSXform, wrapped, rgb_to_gbr(), true);
+ VIA("adobe", ViaCSXform, wrapped, adobe_rgb());
VIA("lite", ViaLite, wrapped);
VIA("pipe", ViaPipe, wrapped);
VIA("twice", ViaTwice, wrapped);
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index 14d5552789..4f5cd43af8 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -1842,41 +1842,13 @@ Error ViaLite::draw(const Src& src, SkBitmap* bitmap, SkWStream* stream, SkStrin
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-ViaCSXform::ViaCSXform(Sink* sink, sk_sp<SkColorSpace> cs, bool colorSpin)
- : Via(sink)
- , fCS(std::move(cs))
- , fColorSpin(colorSpin) {}
+ViaCSXform::ViaCSXform(Sink* sink, sk_sp<SkColorSpace> cs) : Via(sink), fCS(std::move(cs)) {}
Error ViaCSXform::draw(const Src& src, SkBitmap* bitmap, SkWStream* stream, SkString* log) const {
return draw_to_canvas(fSink.get(), bitmap, stream, log, src.size(),
[&](SkCanvas* canvas) -> Error {
auto proxy = SkCreateColorSpaceXformCanvas(canvas, fCS);
- Error err = src.draw(proxy.get());
- if (!err.isEmpty()) {
- return err;
- }
-
- // Undo the color spin, so we can look at the pixels in Gold.
- if (fColorSpin) {
- SkBitmap pixels;
- pixels.allocPixels(canvas->imageInfo());
- canvas->readPixels(&pixels, 0, 0);
- for (int y = 0; y < pixels.height(); y++) {
- for (int x = 0; x < pixels.width(); x++) {
- uint32_t pixel = *pixels.getAddr32(x, y);
- uint8_t r = SkGetPackedR32(pixel);
- uint8_t g = SkGetPackedG32(pixel);
- uint8_t b = SkGetPackedB32(pixel);
- uint8_t a = SkGetPackedA32(pixel);
- *pixels.getAddr32(x, y) =
- SkSwizzle_RGBA_to_PMColor(b << 0 | r << 8 | g << 16 | a << 24);
- }
- }
-
- canvas->writePixels(pixels, 0, 0);
- }
-
- return "";
+ return src.draw(proxy.get());
});
}
diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h
index b6e1b5955c..c973e3b393 100644
--- a/dm/DMSrcSink.h
+++ b/dm/DMSrcSink.h
@@ -496,11 +496,10 @@ public:
class ViaCSXform : public Via {
public:
- explicit ViaCSXform(Sink*, sk_sp<SkColorSpace>, bool colorSpin);
+ explicit ViaCSXform(Sink*, sk_sp<SkColorSpace>);
Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override;
private:
sk_sp<SkColorSpace> fCS;
- bool fColorSpin;
};
} // namespace DM