| Index: src/core/SkBlitter_PM4f.cpp
|
| diff --git a/src/core/SkBlitter_PM4f.cpp b/src/core/SkBlitter_PM4f.cpp
|
| index 820d72cc2e6da8dee07754cd3ab032af6b019565..323df76736c4f1d7eacc293086ff98b335e1342b 100644
|
| --- a/src/core/SkBlitter_PM4f.cpp
|
| +++ b/src/core/SkBlitter_PM4f.cpp
|
| @@ -363,8 +363,8 @@ struct State32 : State4f {
|
|
|
| SkXfermode::LCD32Proc getLCDProc(uint32_t oneOrManyFlag) const {
|
| uint32_t flags = fFlags & 1;
|
| - if (!(fFlags & SkXfermode::kDstIsSRGB_D32Flag)) {
|
| - flags |= SkXfermode::kDstIsLinearInt_LCDFlag;
|
| + if (fFlags & SkXfermode::kDstIsSRGB_D32Flag) {
|
| + flags |= SkXfermode::kDstIsSRGB_LCDFlag;
|
| }
|
| return SkXfermode::GetLCD32Proc(flags | oneOrManyFlag);
|
| }
|
| @@ -377,28 +377,23 @@ struct State32 : State4f {
|
| struct State64 : State4f {
|
| typedef uint64_t DstType;
|
|
|
| - SkXfermode::D64Proc fProc1;
|
| - SkXfermode::D64Proc fProcN;
|
| + SkXfermode::F16Proc fProc1;
|
| + SkXfermode::F16Proc fProcN;
|
|
|
| State64(const SkImageInfo& info, const SkPaint& paint, const SkShader::Context* shaderContext)
|
| : State4f(info, paint, shaderContext)
|
| {
|
| if (is_opaque(paint, shaderContext)) {
|
| - fFlags |= SkXfermode::kSrcIsOpaque_D64Flag;
|
| + fFlags |= SkXfermode::kSrcIsOpaque_F16Flag;
|
| }
|
| - if (kRGBA_F16_SkColorType == info.colorType()) {
|
| - fFlags |= SkXfermode::kDstIsFloat16_D64Flag;
|
| - }
|
| - fProc1 = SkXfermode::GetD64Proc(fXfer, fFlags | SkXfermode::kSrcIsSingle_D64Flag);
|
| - fProcN = SkXfermode::GetD64Proc(fXfer, fFlags);
|
| + SkASSERT(kRGBA_F16_SkColorType == info.colorType());
|
| + fProc1 = SkXfermode::GetF16Proc(fXfer, fFlags | SkXfermode::kSrcIsSingle_F16Flag);
|
| + fProcN = SkXfermode::GetF16Proc(fXfer, fFlags);
|
| }
|
|
|
| - SkXfermode::LCD64Proc getLCDProc(uint32_t oneOrManyFlag) const {
|
| + SkXfermode::LCF16Proc getLCDProc(uint32_t oneOrManyFlag) const {
|
| uint32_t flags = fFlags & 1;
|
| - if (!(fFlags & SkXfermode::kDstIsFloat16_D64Flag)) {
|
| - flags |= SkXfermode::kDstIsLinearInt_LCDFlag;
|
| - }
|
| - return SkXfermode::GetLCD64Proc(flags | oneOrManyFlag);
|
| + return SkXfermode::GetLCF16Proc(flags | oneOrManyFlag);
|
| }
|
|
|
| static DstType* WritableAddr(const SkPixmap& device, int x, int y) {
|
|
|