Remove more SkColorSpaceXform (and friends)
- gammaencodedpremul GM was just demonstrating something that we
understand well (and have much better testing for).
- readpixels GM was filled with workarounds for things that are no
longer true (unpremul images, clamped F16).
- Other uses can be switched to SkConvertPixels trivially.
- Remove SkColorSpaceXformPriv and SkColorLookUpTable, all unused.
- Remove SkColorSpaceXform_skcms.cpp, no longer referenced by clients.
Bug: skia:
Change-Id: I7298bb53aa61b49ad1398ebc504d35c119fd5cf4
Reviewed-on: https://skia-review.googlesource.com/157153
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
diff --git a/src/core/SkDraw_vertices.cpp b/src/core/SkDraw_vertices.cpp
index b9bc2e6..33fba60 100644
--- a/src/core/SkDraw_vertices.cpp
+++ b/src/core/SkDraw_vertices.cpp
@@ -8,6 +8,7 @@
#include "SkArenaAlloc.h"
#include "SkAutoBlitterChoose.h"
#include "SkComposeShader.h"
+#include "SkConvertPixels.h"
#include "SkDraw.h"
#include "SkNx.h"
#include "SkPM4f.h"
@@ -19,7 +20,6 @@
#include "SkArenaAlloc.h"
#include "SkCoreBlitters.h"
-#include "SkColorSpaceXform.h"
struct Matrix43 {
float fMat[12]; // column major
@@ -137,18 +137,13 @@
// - apply per-color alpha before interpolation (matches old version of vertices)
//
static SkPMColor4f* convert_colors(const SkColor src[], int count, SkColorSpace* deviceCS,
- SkArenaAlloc* alloc) {
+ SkArenaAlloc* alloc) {
SkPMColor4f* dst = alloc->makeArray<SkPMColor4f>(count);
- if (!deviceCS) {
- for (int i = 0; i < count; ++i) {
- dst[i] = SkColor4f::FromColor(src[i]).premul();
- }
- } else {
- auto srcCS = SkColorSpace::MakeSRGB();
- SkColorSpaceXform::Apply(deviceCS , SkColorSpaceXform::kRGBA_F32_ColorFormat, dst,
- srcCS.get(), SkColorSpaceXform::kBGRA_8888_ColorFormat, src,
- count, SkColorSpaceXform::kPremul_AlphaOp);
- }
+ SkImageInfo srcInfo = SkImageInfo::Make(count, 1, kBGRA_8888_SkColorType,
+ kUnpremul_SkAlphaType, SkColorSpace::MakeSRGB());
+ SkImageInfo dstInfo = SkImageInfo::Make(count, 1, kRGBA_F32_SkColorType,
+ kPremul_SkAlphaType, sk_ref_sp(deviceCS));
+ SkConvertPixels(dstInfo, dst, 0, srcInfo, src, 0);
return dst;
}