| Index: src/core/SkXfer4f.cpp
|
| diff --git a/src/core/SkXfer4f.cpp b/src/core/SkXfer4f.cpp
|
| deleted file mode 100644
|
| index b177e49b18d972d6cd325096f9a7c4948604aa04..0000000000000000000000000000000000000000
|
| --- a/src/core/SkXfer4f.cpp
|
| +++ /dev/null
|
| @@ -1,134 +0,0 @@
|
| -/*
|
| - * Copyright 2016 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#include "SkXfer4f.h"
|
| -#include "SkPM4fPriv.h"
|
| -#include "SkUtils.h"
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////////////////////////
|
| -
|
| -void CLEAR_pm41p(uint32_t dst[], const SkPM4f& src, int count) {
|
| - sk_bzero(dst, count * sizeof(uint32_t));
|
| -}
|
| -
|
| -void CLEAR_pm4np(uint32_t dst[], const SkPM4f src[], int count) {
|
| - sk_bzero(dst, count * sizeof(uint32_t));
|
| -}
|
| -
|
| -//////////
|
| -
|
| -template <bool isSRGB> void SRC_pm41p(uint32_t dst[], const SkPM4f& src, int count) {
|
| - uint32_t res;
|
| - if (isSRGB) {
|
| - res = Sk4f_toS32(Sk4f::Load(src.fVec));
|
| - } else {
|
| - res = Sk4f_toL32(Sk4f::Load(src.fVec));
|
| - }
|
| - sk_memset32(dst, res, count);
|
| -}
|
| -
|
| -template <bool isSRGB> void SRC_pm4np(uint32_t dst[], const SkPM4f src[], int count) {
|
| - if (isSRGB) {
|
| - SkPM4f_s32_src_mode(dst, src, count);
|
| - } else {
|
| - SkPM4f_l32_src_mode(dst, src, count);
|
| - }
|
| -}
|
| -
|
| -//////////
|
| -
|
| -void DST_pm41p(uint32_t dst[], const SkPM4f& src, int count) {}
|
| -void DST_pm4np(uint32_t dst[], const SkPM4f src[], int count) {}
|
| -
|
| -//////////
|
| -
|
| -template <bool isSRGB> void SRCOVER_pm41p(uint32_t dst[], const SkPM4f& src, int count) {
|
| - SkASSERT(src.isUnit());
|
| - Sk4f s4 = Sk4f::Load(src.fVec);
|
| - Sk4f scale(1 - s4.kth<SkPM4f::A>());
|
| -
|
| - if (!isSRGB) {
|
| - s4 = s4 * Sk4f(255);
|
| - }
|
| -
|
| - for (int i = 0; i < count; ++i) {
|
| - if (isSRGB) {
|
| - Sk4f d4 = Sk4f_fromS32(dst[i]);
|
| - dst[i] = Sk4f_toS32(s4 + d4 * scale);
|
| - } else {
|
| - Sk4f d4 = to_4f(dst[i]);
|
| - dst[i] = to_4b(s4 + d4 * scale + Sk4f(0.5f));
|
| - }
|
| - }
|
| -}
|
| -
|
| -template <bool isSRGB> void SRCOVER_pm4np(uint32_t dst[], const SkPM4f src[], int count) {
|
| - if (isSRGB) {
|
| - SkPM4f_s32_srcover_mode(dst, src, count);
|
| - } else {
|
| - SkPM4f_l32_srcover_mode(dst, src, count);
|
| - }
|
| -}
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////////////////////////
|
| -
|
| -struct Pair {
|
| - SkPM4fXfer1Proc fProc1;
|
| - SkPM4fXferNProc fProcN;
|
| -};
|
| -
|
| -const Pair gClearPairs[] = {
|
| - { CLEAR_pm41p, CLEAR_pm4np },
|
| - { CLEAR_pm41p, CLEAR_pm4np },
|
| - { CLEAR_pm41p, CLEAR_pm4np },
|
| - { CLEAR_pm41p, CLEAR_pm4np },
|
| -};
|
| -
|
| -const Pair gSrcPairs[] = {
|
| - { SRC_pm41p<false>, SRC_pm4np<false> }, // linear [alpha ignored]
|
| - { SRC_pm41p<false>, SRC_pm4np<false> }, // linear [opaque ignored]
|
| - { SRC_pm41p<true>, SRC_pm4np<true> }, // srgb [alpha ignored]
|
| - { SRC_pm41p<true>, SRC_pm4np<true> }, // srgb [opaque ignored]
|
| -};
|
| -
|
| -const Pair gDstPairs[] = {
|
| - { DST_pm41p, DST_pm4np },
|
| - { DST_pm41p, DST_pm4np },
|
| - { DST_pm41p, DST_pm4np },
|
| - { DST_pm41p, DST_pm4np },
|
| -};
|
| -
|
| -const Pair gSrcOverPairs[] = {
|
| - { SRCOVER_pm41p<false>, SRCOVER_pm4np<false> }, // linear alpha
|
| - { SRC_pm41p<false>, SRC_pm4np<false> }, // linear opaque
|
| - { SRCOVER_pm41p<true>, SRCOVER_pm4np<true> }, // srgb alpha
|
| - { SRC_pm41p<true>, SRC_pm4np<true> }, // srgb opaque
|
| -};
|
| -
|
| -static const Pair* find_pair(SkXfermode::Mode mode, uint32_t flags) {
|
| - SkASSERT(0 == (flags & ~3));
|
| - const Pair* pairs = nullptr;
|
| -
|
| - switch (mode) {
|
| - case SkXfermode::kClear_Mode: pairs = gClearPairs;
|
| - case SkXfermode::kSrc_Mode: pairs = gSrcPairs; break;
|
| - case SkXfermode::kDst_Mode: pairs = gDstPairs;
|
| - case SkXfermode::kSrcOver_Mode: pairs = gSrcOverPairs; break;
|
| - default: return nullptr;
|
| - }
|
| - return &pairs[flags & 3];
|
| -}
|
| -
|
| -SkPM4fXfer1Proc SkPM4fXfer1ProcFactory(SkXfermode::Mode mode, uint32_t flags) {
|
| - const Pair* pair = find_pair(mode, flags);
|
| - return pair ? pair->fProc1 : nullptr;
|
| -}
|
| -
|
| -SkPM4fXferNProc SkPM4fXferNProcFactory(SkXfermode::Mode mode, uint32_t flags) {
|
| - const Pair* pair = find_pair(mode, flags);
|
| - return pair ? pair->fProcN : nullptr;
|
| -}
|
|
|