| Index: src/effects/SkLerpXfermode.cpp
|
| diff --git a/src/effects/SkLerpXfermode.cpp b/src/effects/SkLerpXfermode.cpp
|
| deleted file mode 100644
|
| index a069e8b367a0d67fd201ca7e1db96065bd7958b1..0000000000000000000000000000000000000000
|
| --- a/src/effects/SkLerpXfermode.cpp
|
| +++ /dev/null
|
| @@ -1,118 +0,0 @@
|
| -/*
|
| - * Copyright 2013 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#include "SkLerpXfermode.h"
|
| -#include "SkColorPriv.h"
|
| -#include "SkReadBuffer.h"
|
| -#include "SkWriteBuffer.h"
|
| -#include "SkString.h"
|
| -#include "SkValue.h"
|
| -#include "SkValueKeys.h"
|
| -
|
| -SkXfermode* SkLerpXfermode::Create(SkScalar scale) {
|
| - int scale256 = SkScalarRoundToInt(scale * 256);
|
| - if (scale256 >= 256) {
|
| - return SkXfermode::Create(SkXfermode::kSrc_Mode);
|
| - } else if (scale256 <= 0) {
|
| - return SkXfermode::Create(SkXfermode::kDst_Mode);
|
| - }
|
| - return new SkLerpXfermode(scale256);
|
| -}
|
| -
|
| -SkLerpXfermode::SkLerpXfermode(unsigned scale256) : fScale256(scale256) {}
|
| -
|
| -void SkLerpXfermode::flatten(SkWriteBuffer& buffer) const {
|
| - buffer.writeUInt(fScale256);
|
| -}
|
| -
|
| -SkFlattenable* SkLerpXfermode::CreateProc(SkReadBuffer& buffer) {
|
| - return new SkLerpXfermode(buffer.readUInt());
|
| -}
|
| -
|
| -void SkLerpXfermode::xfer32(SkPMColor dst[], const SkPMColor src[], int count,
|
| - const SkAlpha aa[]) const {
|
| - const int scale = fScale256;
|
| -
|
| - if (aa) {
|
| - for (int i = 0; i < count; ++i) {
|
| - unsigned a = aa[i];
|
| - if (a) {
|
| - SkPMColor dstC = dst[i];
|
| - SkPMColor resC = SkFastFourByteInterp256(src[i], dstC, scale);
|
| - if (a < 255) {
|
| - resC = SkFastFourByteInterp256(resC, dstC, a + (a >> 7));
|
| - }
|
| - dst[i] = resC;
|
| - }
|
| - }
|
| - } else {
|
| - for (int i = 0; i < count; ++i) {
|
| - dst[i] = SkFastFourByteInterp256(src[i], dst[i], scale);
|
| - }
|
| - }
|
| -}
|
| -
|
| -void SkLerpXfermode::xfer16(uint16_t dst[], const SkPMColor src[], int count,
|
| - const SkAlpha aa[]) const {
|
| - const int scale = fScale256;
|
| -
|
| - if (aa) {
|
| - for (int i = 0; i < count; ++i) {
|
| - unsigned a = aa[i];
|
| - if (a) {
|
| - SkPMColor dstC = SkPixel16ToPixel32(dst[i]);
|
| - SkPMColor resC = SkFastFourByteInterp256(src[i], dstC, scale);
|
| - if (a < 255) {
|
| - resC = SkFastFourByteInterp256(resC, dstC, a + (a >> 7));
|
| - }
|
| - dst[i] = SkPixel32ToPixel16(resC);
|
| - }
|
| - }
|
| - } else {
|
| - for (int i = 0; i < count; ++i) {
|
| - SkPMColor dstC = SkPixel16ToPixel32(dst[i]);
|
| - SkPMColor resC = SkFastFourByteInterp256(src[i], dstC, scale);
|
| - dst[i] = SkPixel32ToPixel16(resC);
|
| - }
|
| - }
|
| -}
|
| -
|
| -void SkLerpXfermode::xferA8(SkAlpha dst[], const SkPMColor src[], int count,
|
| - const SkAlpha aa[]) const {
|
| - const int scale = fScale256;
|
| -
|
| - if (aa) {
|
| - for (int i = 0; i < count; ++i) {
|
| - unsigned a = aa[i];
|
| - if (a) {
|
| - unsigned dstA = dst[i];
|
| - unsigned resA = SkAlphaBlend(SkGetPackedA32(src[i]), dstA, scale);
|
| - if (a < 255) {
|
| - resA = SkAlphaBlend(resA, dstA, a + (a >> 7));
|
| - }
|
| - dst[i] = resA;
|
| - }
|
| - }
|
| - } else {
|
| - for (int i = 0; i < count; ++i) {
|
| - dst[i] = SkAlphaBlend(SkGetPackedA32(src[i]), dst[i], scale);
|
| - }
|
| - }
|
| -}
|
| -
|
| -#ifndef SK_IGNORE_TO_STRING
|
| -void SkLerpXfermode::toString(SkString* str) const {
|
| - str->printf("SkLerpXfermode: scale: %g", fScale256 / 256.0);
|
| -}
|
| -#endif
|
| -
|
| -SkValue SkLerpXfermode::asValue() const {
|
| - auto value = SkValue::Object(SkValue::LerpXfermode);
|
| - value.set(SkValueKeys::LerpXfermode::kScale,
|
| - SkValue::FromF32(fScale256 / 256.0f));
|
| - return value;
|
| -}
|
|
|