Index: src/codec/SkMaskSwizzler.cpp |
diff --git a/src/codec/SkMaskSwizzler.cpp b/src/codec/SkMaskSwizzler.cpp |
index e5facc1f0c7a70283d4518fbe9b4d725314372d9..01502cbd4ab875ac3ca24e26a61ff85288556423 100644 |
--- a/src/codec/SkMaskSwizzler.cpp |
+++ b/src/codec/SkMaskSwizzler.cpp |
@@ -9,7 +9,7 @@ |
#include "SkColorPriv.h" |
#include "SkMaskSwizzler.h" |
-static SkSwizzler::ResultAlpha swizzle_mask16_to_n32_opaque( |
+static void swizzle_mask16_to_n32_opaque( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
@@ -24,54 +24,47 @@ static SkSwizzler::ResultAlpha swizzle_mask16_to_n32_opaque( |
dstPtr[i] = SkPackARGB32NoCheck(0xFF, red, green, blue); |
srcPtr += sampleX; |
} |
- return SkSwizzler::kOpaque_ResultAlpha; |
} |
-static SkSwizzler::ResultAlpha swizzle_mask16_to_n32_unpremul( |
+static void swizzle_mask16_to_n32_unpremul( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
// Use the masks to decode to the destination |
uint16_t* srcPtr = ((uint16_t*) srcRow) + startX; |
SkPMColor* dstPtr = (SkPMColor*) dstRow; |
- INIT_RESULT_ALPHA; |
for (int i = 0; i < width; i++) { |
uint16_t p = srcPtr[0]; |
uint8_t red = masks->getRed(p); |
uint8_t green = masks->getGreen(p); |
uint8_t blue = masks->getBlue(p); |
uint8_t alpha = masks->getAlpha(p); |
- UPDATE_RESULT_ALPHA(alpha); |
dstPtr[i] = SkPackARGB32NoCheck(alpha, red, green, blue); |
srcPtr += sampleX; |
} |
- return COMPUTE_RESULT_ALPHA; |
} |
-static SkSwizzler::ResultAlpha swizzle_mask16_to_n32_premul( |
+static void swizzle_mask16_to_n32_premul( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
// Use the masks to decode to the destination |
uint16_t* srcPtr = ((uint16_t*) srcRow) + startX; |
SkPMColor* dstPtr = (SkPMColor*) dstRow; |
- INIT_RESULT_ALPHA; |
for (int i = 0; i < width; i++) { |
uint16_t p = srcPtr[0]; |
uint8_t red = masks->getRed(p); |
uint8_t green = masks->getGreen(p); |
uint8_t blue = masks->getBlue(p); |
uint8_t alpha = masks->getAlpha(p); |
- UPDATE_RESULT_ALPHA(alpha); |
dstPtr[i] = SkPreMultiplyARGB(alpha, red, green, blue); |
srcPtr += sampleX; |
} |
- return COMPUTE_RESULT_ALPHA; |
} |
// TODO (msarett): We have promoted a two byte per pixel image to 8888, only to |
// convert it back to 565. Instead, we should swizzle to 565 directly. |
-static SkSwizzler::ResultAlpha swizzle_mask16_to_565( |
+static void swizzle_mask16_to_565( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
@@ -86,10 +79,9 @@ static SkSwizzler::ResultAlpha swizzle_mask16_to_565( |
dstPtr[i] = SkPack888ToRGB16(red, green, blue); |
srcPtr += sampleX; |
} |
- return SkSwizzler::kOpaque_ResultAlpha; |
} |
-static SkSwizzler::ResultAlpha swizzle_mask24_to_n32_opaque( |
+static void swizzle_mask24_to_n32_opaque( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
@@ -104,52 +96,45 @@ static SkSwizzler::ResultAlpha swizzle_mask24_to_n32_opaque( |
dstPtr[i] = SkPackARGB32NoCheck(0xFF, red, green, blue); |
srcRow += 3 * sampleX; |
} |
- return SkSwizzler::kOpaque_ResultAlpha; |
} |
-static SkSwizzler::ResultAlpha swizzle_mask24_to_n32_unpremul( |
+static void swizzle_mask24_to_n32_unpremul( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
// Use the masks to decode to the destination |
srcRow += 3 * startX; |
SkPMColor* dstPtr = (SkPMColor*) dstRow; |
- INIT_RESULT_ALPHA; |
for (int i = 0; i < width; i++) { |
uint32_t p = srcRow[0] | (srcRow[1] << 8) | srcRow[2] << 16; |
uint8_t red = masks->getRed(p); |
uint8_t green = masks->getGreen(p); |
uint8_t blue = masks->getBlue(p); |
uint8_t alpha = masks->getAlpha(p); |
- UPDATE_RESULT_ALPHA(alpha); |
dstPtr[i] = SkPackARGB32NoCheck(alpha, red, green, blue); |
srcRow += 3 * sampleX; |
} |
- return COMPUTE_RESULT_ALPHA; |
} |
-static SkSwizzler::ResultAlpha swizzle_mask24_to_n32_premul( |
+static void swizzle_mask24_to_n32_premul( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
// Use the masks to decode to the destination |
srcRow += 3 * startX; |
SkPMColor* dstPtr = (SkPMColor*) dstRow; |
- INIT_RESULT_ALPHA; |
for (int i = 0; i < width; i++) { |
uint32_t p = srcRow[0] | (srcRow[1] << 8) | srcRow[2] << 16; |
uint8_t red = masks->getRed(p); |
uint8_t green = masks->getGreen(p); |
uint8_t blue = masks->getBlue(p); |
uint8_t alpha = masks->getAlpha(p); |
- UPDATE_RESULT_ALPHA(alpha); |
dstPtr[i] = SkPreMultiplyARGB(alpha, red, green, blue); |
srcRow += 3 * sampleX; |
} |
- return COMPUTE_RESULT_ALPHA; |
} |
-static SkSwizzler::ResultAlpha swizzle_mask24_to_565( |
+static void swizzle_mask24_to_565( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
@@ -164,10 +149,9 @@ static SkSwizzler::ResultAlpha swizzle_mask24_to_565( |
dstPtr[i] = SkPack888ToRGB16(red, green, blue); |
srcRow += 3 * sampleX; |
} |
- return SkSwizzler::kOpaque_ResultAlpha; |
} |
-static SkSwizzler::ResultAlpha swizzle_mask32_to_n32_opaque( |
+static void swizzle_mask32_to_n32_opaque( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
@@ -182,52 +166,45 @@ static SkSwizzler::ResultAlpha swizzle_mask32_to_n32_opaque( |
dstPtr[i] = SkPackARGB32NoCheck(0xFF, red, green, blue); |
srcPtr += sampleX; |
} |
- return SkSwizzler::kOpaque_ResultAlpha; |
} |
-static SkSwizzler::ResultAlpha swizzle_mask32_to_n32_unpremul( |
+static void swizzle_mask32_to_n32_unpremul( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
// Use the masks to decode to the destination |
uint32_t* srcPtr = ((uint32_t*) srcRow) + startX; |
SkPMColor* dstPtr = (SkPMColor*) dstRow; |
- INIT_RESULT_ALPHA; |
for (int i = 0; i < width; i++) { |
uint32_t p = srcPtr[0]; |
uint8_t red = masks->getRed(p); |
uint8_t green = masks->getGreen(p); |
uint8_t blue = masks->getBlue(p); |
uint8_t alpha = masks->getAlpha(p); |
- UPDATE_RESULT_ALPHA(alpha); |
dstPtr[i] = SkPackARGB32NoCheck(alpha, red, green, blue); |
srcPtr += sampleX; |
} |
- return COMPUTE_RESULT_ALPHA; |
} |
-static SkSwizzler::ResultAlpha swizzle_mask32_to_n32_premul( |
+static void swizzle_mask32_to_n32_premul( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
// Use the masks to decode to the destination |
uint32_t* srcPtr = ((uint32_t*) srcRow) + startX; |
SkPMColor* dstPtr = (SkPMColor*) dstRow; |
- INIT_RESULT_ALPHA; |
for (int i = 0; i < width; i++) { |
uint32_t p = srcPtr[0]; |
uint8_t red = masks->getRed(p); |
uint8_t green = masks->getGreen(p); |
uint8_t blue = masks->getBlue(p); |
uint8_t alpha = masks->getAlpha(p); |
- UPDATE_RESULT_ALPHA(alpha); |
dstPtr[i] = SkPreMultiplyARGB(alpha, red, green, blue); |
srcPtr += sampleX; |
} |
- return COMPUTE_RESULT_ALPHA; |
} |
-static SkSwizzler::ResultAlpha swizzle_mask32_to_565( |
+static void swizzle_mask32_to_565( |
void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks, |
uint32_t startX, uint32_t sampleX) { |
// Use the masks to decode to the destination |
@@ -241,7 +218,6 @@ static SkSwizzler::ResultAlpha swizzle_mask32_to_565( |
dstPtr[i] = SkPack888ToRGB16(red, green, blue); |
srcPtr += sampleX; |
} |
- return SkSwizzler::kOpaque_ResultAlpha; |
} |
/* |
@@ -394,7 +370,7 @@ int SkMaskSwizzler::onSetSampleX(int sampleX) { |
* Swizzle the specified row |
* |
*/ |
-SkSwizzler::ResultAlpha SkMaskSwizzler::swizzle(void* dst, const uint8_t* SK_RESTRICT src) { |
+void SkMaskSwizzler::swizzle(void* dst, const uint8_t* SK_RESTRICT src) { |
SkASSERT(nullptr != dst && nullptr != src); |
- return fRowProc(dst, src, fDstWidth, fMasks, fX0, fSampleX); |
+ fRowProc(dst, src, fDstWidth, fMasks, fX0, fSampleX); |
} |