From 62458a6778bc39eea5360301a67d192b3a263df1 Mon Sep 17 00:00:00 2001 From: Mike Klein Date: Thu, 1 Dec 2016 16:38:16 +0000 Subject: Revert "Added CMYK support for ICC profiles." This reverts commit 51c3fcd376c5c9972d9476b5532f6164375a38d1. Reason for revert: ASAN, MSAN both take issue with parse_and_load_gamma() Original change's description: > Added CMYK support for ICC profiles. > > Changed ICC parsing/SkGammas/SkColorLookUpTable to handle non-3-channel > inputs. Parsed CMYK A2B ICC profiles. Integrated this with SkJpegCodec > (the only file that supports CMYK) and SkColorSpaceXform_A2B to allow > parsing and color xforming of ICC CMYK images. > > BUG=skia: > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5197 > CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD > > > Change-Id: Id6619f63f04071f79cd2d84321857dfa269ad3aa > Reviewed-on: https://skia-review.googlesource.com/5197 > Commit-Queue: Mike Klein > Reviewed-by: Matt Sarett > Reviewed-by: Mike Klein > Reviewed-by: Leon Scroggins > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,scroggo@google.com,brianosman@google.com,raftias@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ib43fef00bc233c0b4fa47ed29040d69601def267 Reviewed-on: https://skia-review.googlesource.com/5423 Commit-Queue: Mike Klein Reviewed-by: Mike Klein --- src/opts/SkRasterPipeline_opts.h | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) (limited to 'src/opts/SkRasterPipeline_opts.h') diff --git a/src/opts/SkRasterPipeline_opts.h b/src/opts/SkRasterPipeline_opts.h index 66668bd6d9..ee8a9bf029 100644 --- a/src/opts/SkRasterPipeline_opts.h +++ b/src/opts/SkRasterPipeline_opts.h @@ -632,7 +632,6 @@ SI SkNf parametric(const SkNf& v, const SkColorSpaceTransferFn& p) { STAGE(parametric_r) { r = parametric(r, *(const SkColorSpaceTransferFn*)ctx); } STAGE(parametric_g) { g = parametric(g, *(const SkColorSpaceTransferFn*)ctx); } STAGE(parametric_b) { b = parametric(b, *(const SkColorSpaceTransferFn*)ctx); } -STAGE(parametric_a) { a = parametric(a, *(const SkColorSpaceTransferFn*)ctx); } SI SkNf table(const SkNf& v, const SkTableTransferFn& table) { float result[N]; @@ -644,29 +643,23 @@ SI SkNf table(const SkNf& v, const SkTableTransferFn& table) { STAGE(table_r) { r = table(r, *(const SkTableTransferFn*)ctx); } STAGE(table_g) { g = table(g, *(const SkTableTransferFn*)ctx); } STAGE(table_b) { b = table(b, *(const SkTableTransferFn*)ctx); } -STAGE(table_a) { a = table(a, *(const SkTableTransferFn*)ctx); } STAGE(color_lookup_table) { const SkColorLookUpTable* colorLUT = (const SkColorLookUpTable*)ctx; - SkASSERT(3 == colorLUT->inputChannels() || 4 == colorLUT->inputChannels()); - SkASSERT(3 == colorLUT->outputChannels()); + float rgb[3]; float result[3][N]; for (int i = 0; i < N; ++i) { - const float in[4] = { r[i], g[i], b[i], a[i] }; - float out[3]; - colorLUT->interp(out, in); - for (int j = 0; j < colorLUT->outputChannels(); ++j) { - result[j][i] = out[j]; - } + rgb[0] = r[i]; + rgb[1] = g[i]; + rgb[2] = b[i]; + colorLUT->interp3D(rgb, rgb); + result[0][i] = rgb[0]; + result[1][i] = rgb[1]; + result[2][i] = rgb[2]; } r = SkNf::Load(result[0]); g = SkNf::Load(result[1]); b = SkNf::Load(result[2]); - if (4 == colorLUT->inputChannels()) { - // we must set the pixel to opaque, as the alpha channel was used - // as input before this. - a = 1.f; - } } STAGE(lab_to_xyz) { -- cgit v1.2.3