Index: src/effects/SkTransparentShader.cpp |
diff --git a/src/effects/SkTransparentShader.cpp b/src/effects/SkTransparentShader.cpp |
deleted file mode 100644 |
index aab5a3d85c78fb7185fbb4bda42452857d04fe94..0000000000000000000000000000000000000000 |
--- a/src/effects/SkTransparentShader.cpp |
+++ /dev/null |
@@ -1,130 +0,0 @@ |
- |
-/* |
- * Copyright 2006 The Android Open Source Project |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
- |
-#include "SkTransparentShader.h" |
-#include "SkColorPriv.h" |
-#include "SkString.h" |
- |
-SkShader::Context* SkTransparentShader::onCreateContext(const ContextRec& rec, |
- void* storage) const { |
- return SkNEW_PLACEMENT_ARGS(storage, TransparentShaderContext, (*this, rec)); |
-} |
- |
-size_t SkTransparentShader::contextSize() const { |
- return sizeof(TransparentShaderContext); |
-} |
- |
-SkTransparentShader::TransparentShaderContext::TransparentShaderContext( |
- const SkTransparentShader& shader, const ContextRec& rec) |
- : INHERITED(shader, rec) |
- , fDevice(rec.fDevice) {} |
- |
-SkTransparentShader::TransparentShaderContext::~TransparentShaderContext() {} |
- |
-uint32_t SkTransparentShader::TransparentShaderContext::getFlags() const { |
- uint32_t flags = this->INHERITED::getFlags(); |
- |
- switch (fDevice->colorType()) { |
- case kRGB_565_SkColorType: |
- flags |= kHasSpan16_Flag; |
- if (this->getPaintAlpha() == 255) |
- flags |= kOpaqueAlpha_Flag; |
- break; |
- case kN32_SkColorType: |
- if (this->getPaintAlpha() == 255 && fDevice->isOpaque()) |
- flags |= kOpaqueAlpha_Flag; |
- break; |
- default: |
- break; |
- } |
- return flags; |
-} |
- |
-void SkTransparentShader::TransparentShaderContext::shadeSpan(int x, int y, SkPMColor span[], |
- int count) { |
- unsigned scale = SkAlpha255To256(this->getPaintAlpha()); |
- |
- switch (fDevice->colorType()) { |
- case kN32_SkColorType: |
- if (scale == 256) { |
- SkPMColor* src = fDevice->getAddr32(x, y); |
- if (src != span) { |
- memcpy(span, src, count * sizeof(SkPMColor)); |
- } |
- } else { |
- const SkPMColor* src = fDevice->getAddr32(x, y); |
- for (int i = count - 1; i >= 0; --i) { |
- span[i] = SkAlphaMulQ(src[i], scale); |
- } |
- } |
- break; |
- case kRGB_565_SkColorType: { |
- const uint16_t* src = fDevice->getAddr16(x, y); |
- if (scale == 256) { |
- for (int i = count - 1; i >= 0; --i) { |
- span[i] = SkPixel16ToPixel32(src[i]); |
- } |
- } else { |
- unsigned alpha = this->getPaintAlpha(); |
- for (int i = count - 1; i >= 0; --i) { |
- uint16_t c = src[i]; |
- unsigned r = SkPacked16ToR32(c); |
- unsigned g = SkPacked16ToG32(c); |
- unsigned b = SkPacked16ToB32(c); |
- |
- span[i] = SkPackARGB32( alpha, |
- SkAlphaMul(r, scale), |
- SkAlphaMul(g, scale), |
- SkAlphaMul(b, scale)); |
- } |
- } |
- break; |
- } |
- case kAlpha_8_SkColorType: { |
- const uint8_t* src = fDevice->getAddr8(x, y); |
- if (scale == 256) { |
- for (int i = count - 1; i >= 0; --i) { |
- span[i] = SkPackARGB32(src[i], 0, 0, 0); |
- } |
- } else { |
- for (int i = count - 1; i >= 0; --i) { |
- span[i] = SkPackARGB32(SkAlphaMul(src[i], scale), 0, 0, 0); |
- } |
- } |
- break; |
- } |
- default: |
- SkDEBUGFAIL("colorType not supported as a destination device"); |
- break; |
- } |
-} |
- |
-void SkTransparentShader::TransparentShaderContext::shadeSpan16(int x, int y, uint16_t span[], |
- int count) { |
- SkASSERT(fDevice->colorType() == kRGB_565_SkColorType); |
- |
- uint16_t* src = fDevice->getAddr16(x, y); |
- if (src != span) { |
- memcpy(span, src, count << 1); |
- } |
-} |
- |
-SkFlattenable* SkTransparentShader::CreateProc(SkReadBuffer& buffer) { |
- return SkNEW(SkTransparentShader); |
-} |
- |
-#ifndef SK_IGNORE_TO_STRING |
-void SkTransparentShader::toString(SkString* str) const { |
- str->append("SkTransparentShader: ("); |
- |
- this->INHERITED::toString(str); |
- |
- str->append(")"); |
-} |
-#endif |