aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/SkBitmapProcShader.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-06-08 20:26:41 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-06-09 00:48:50 +0000
commit43e498e7e7ca6f93bb57f76e8346244ed807255e (patch)
tree4ac538afa966b3d6f4ad39d6d703c5f3f6dd7fe7 /src/shaders/SkBitmapProcShader.cpp
parentfee2b4ed0ff3776064c327c73f4f66b20727a1c1 (diff)
specialize D32 proc for legacy src
lots of dead-code removal Bug: skia: Change-Id: I23ea25eb38855b4776e97fa8ff777d9744baab1d Reviewed-on: https://skia-review.googlesource.com/19147 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/shaders/SkBitmapProcShader.cpp')
-rw-r--r--src/shaders/SkBitmapProcShader.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/shaders/SkBitmapProcShader.cpp b/src/shaders/SkBitmapProcShader.cpp
index 5410447d6d..91697e2f1b 100644
--- a/src/shaders/SkBitmapProcShader.cpp
+++ b/src/shaders/SkBitmapProcShader.cpp
@@ -10,6 +10,7 @@
#include "SkArenaAlloc.h"
#include "SkBitmapProcState.h"
#include "SkBitmapProvider.h"
+#include "SkPM4fPriv.h"
#include "SkXfermodePriv.h"
static bool only_scale_and_translate(const SkMatrix& matrix) {
@@ -120,11 +121,6 @@ public:
info->fPaintColor,
info->fPixmap,
fAllocator);
-
- // To implement the old shadeSpan entry-point, we need to efficiently convert our native
- // floats into SkPMColor. The SkXfermode::D32Procs do exactly that.
- //
- fSrcModeProc = SkXfermode::GetD32Proc(SkBlendMode::kSrc, 0);
}
void shadeSpan4f(int x, int y, SkPM4f dstC[], int count) override {
@@ -138,7 +134,10 @@ public:
while (count > 0) {
const int n = SkTMin(count, N);
fShaderPipeline->shadeSpan4f(x, y, tmp, n);
- fSrcModeProc(SkBlendMode::kSrc, dstC, tmp, n, nullptr);
+ // now convert to SkPMColor
+ for (int i = 0; i < n; ++i) {
+ dstC[i] = Sk4f_toL32(tmp[i].to4f_pmorder());
+ }
dstC += n;
x += n;
count -= n;
@@ -149,7 +148,6 @@ private:
// Store the allocator from the context creation incase we are asked to build a blitter.
SkArenaAlloc* fAllocator;
SkLinearBitmapPipeline* fShaderPipeline;
- SkXfermode::D32Proc fSrcModeProc;
SkPixmap fSrcPixmap;
float fAlpha;
SkMatrix::TypeMask fMatrixTypeMask;