| Index: src/core/SkBlitter_PM4f.cpp
|
| diff --git a/src/core/SkBlitter_PM4f.cpp b/src/core/SkBlitter_PM4f.cpp
|
| index 820d72cc2e6da8dee07754cd3ab032af6b019565..bf332c59859372e0430b5f2419b6207554470425 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);
|
| }
|
| @@ -374,31 +374,26 @@ struct State32 : State4f {
|
| }
|
| };
|
|
|
| -struct State64 : State4f {
|
| +struct StateF16 : 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)
|
| + StateF16(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::LCDF16Proc 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::GetLCDF16Proc(flags | oneOrManyFlag);
|
| }
|
|
|
| static DstType* WritableAddr(const SkPixmap& device, int x, int y) {
|
| @@ -434,8 +429,8 @@ SkBlitter* SkBlitter_ARGB32_Create(const SkPixmap& device, const SkPaint& paint,
|
| return create<State32>(device, paint, shaderContext, allocator);
|
| }
|
|
|
| -SkBlitter* SkBlitter_ARGB64_Create(const SkPixmap& device, const SkPaint& paint,
|
| - SkShader::Context* shaderContext,
|
| - SkTBlitterAllocator* allocator) {
|
| - return create<State64>(device, paint, shaderContext, allocator);
|
| +SkBlitter* SkBlitter_F16_Create(const SkPixmap& device, const SkPaint& paint,
|
| + SkShader::Context* shaderContext,
|
| + SkTBlitterAllocator* allocator) {
|
| + return create<StateF16>(device, paint, shaderContext, allocator);
|
| }
|
|
|