diff --git a/src/core/SkBitmapProcShader.h b/src/core/SkBitmapProcShader.h index 5f0b5eeffe..a4591c7355 100644 --- a/src/core/SkBitmapProcShader.h +++ b/src/core/SkBitmapProcShader.h @@ -56,7 +56,7 @@ private: typedef SkShader INHERITED; }; -enum {kSkBlitterContextSize = 3100}; +enum {kSkBlitterContextSize = 3200}; // Commonly used allocator. It currently is only used to allocate up to 3 objects. The total // bytes requested is calculated using one of our large shaders, its context size plus the size of diff --git a/src/core/SkLinearBitmapPipeline.cpp b/src/core/SkLinearBitmapPipeline.cpp index cfad6ec364..088e829345 100644 --- a/src/core/SkLinearBitmapPipeline.cpp +++ b/src/core/SkLinearBitmapPipeline.cpp @@ -567,62 +567,70 @@ private: using Blender = SkLinearBitmapPipeline::BlendProcessorInterface; -template class Sampler> -static void choose_specific_sampler( - Blender* next, - const SkPixmap& srcPixmap, - SkLinearBitmapPipeline::SampleStage* sampleStage) +template +static SkLinearBitmapPipeline::PixelAccessorInterface* choose_specific_accessor( + const SkPixmap& srcPixmap, SkLinearBitmapPipeline::Accessor* accessor) { if (srcPixmap.info().gammaCloseToSRGB()) { - using S = Sampler; - sampleStage->initStage(next, srcPixmap); + using PA = PixelAccessor; + accessor->init(srcPixmap); + return accessor->get(); } else { - using S = Sampler; - sampleStage->initStage(next, srcPixmap); + using PA = PixelAccessor; + accessor->init(srcPixmap); + return accessor->get(); } } -template