diff options
Diffstat (limited to 'src/core/SkRasterPipelineBlitter.cpp')
-rw-r--r-- | src/core/SkRasterPipelineBlitter.cpp | 27 |
1 files changed, 1 insertions, 26 deletions
diff --git a/src/core/SkRasterPipelineBlitter.cpp b/src/core/SkRasterPipelineBlitter.cpp index 3643637f0b..66a4a62734 100644 --- a/src/core/SkRasterPipelineBlitter.cpp +++ b/src/core/SkRasterPipelineBlitter.cpp @@ -12,7 +12,6 @@ #include "SkColor.h" #include "SkColorFilter.h" #include "SkColorSpaceXformer.h" -#include "SkColorSpaceXformSteps.h" #include "SkOpts.h" #include "SkPM4f.h" #include "SkPM4fPriv.h" @@ -86,36 +85,12 @@ private: typedef SkBlitter INHERITED; }; -static SkPM4f premul_in_dst_colorspace(SkColor color, SkColorSpace* dstCS) { - float rgba[4]; - swizzle_rb(SkNx_cast<float>(Sk4b::Load(&color)) * (1/255.0f)).store(rgba); - - // SkColors are always sRGB. - auto srcCS = SkColorSpace::MakeSRGB().get(); - - // If dstCS is null, no color space transformation is needed (and apply() will just premul). - if (!dstCS) { dstCS = srcCS; } - - SkColorSpaceXformSteps(srcCS, kUnpremul_SkAlphaType, dstCS) - .apply(rgba); - - return {{rgba[0], rgba[1], rgba[2], rgba[3]}}; -} - SkBlitter* SkCreateRasterPipelineBlitter(const SkPixmap& dst, const SkPaint& paint, const SkMatrix& ctm, SkArenaAlloc* alloc) { - // For legacy/SkColorSpaceXformCanvas to keep working, - // we need to sometimes still need to distinguish null dstCS from sRGB. -#if 0 - SkColorSpace* dstCS = dst.colorSpace() ? dst.colorSpace() - : SkColorSpace::MakeSRGB().get(); -#else SkColorSpace* dstCS = dst.colorSpace(); -#endif - SkPM4f paintColor = premul_in_dst_colorspace(paint.getColor(), dstCS); - + SkPM4f paintColor = SkPM4f_from_SkColor(paint.getColor(), dstCS); auto shader = as_SB(paint.getShader()); SkRasterPipeline_<256> shaderPipeline; |