Index: src/images/SkScaledBitmapSampler.cpp |
diff --git a/src/images/SkScaledBitmapSampler.cpp b/src/images/SkScaledBitmapSampler.cpp |
index ca41de9396fcad72822d96149d5a182394691416..021f86ba868c14204af1c9d0ce27017f30943244 100644 |
--- a/src/images/SkScaledBitmapSampler.cpp |
+++ b/src/images/SkScaledBitmapSampler.cpp |
@@ -289,6 +289,15 @@ static bool Sample_Index_DI(void* SK_RESTRICT dstRow, |
return false; |
} |
+// A8 |
+static bool Sample_Gray_DA8(void* SK_RESTRICT dstRow, |
+ const uint8_t* SK_RESTRICT src, |
+ int width, int deltaSrc, int, |
+ const SkPMColor[]) { |
+ memcpy(dstRow, src, width); |
+ return true; |
+} |
+ |
// 8888 Unpremul |
static bool Sample_Gray_D8888_Unpremul(void* SK_RESTRICT dstRow, |
@@ -396,6 +405,12 @@ bool SkScaledBitmapSampler::begin(SkBitmap* dst, SrcConfig sc, bool dither, |
NULL, NULL, |
Sample_Index_DI, Sample_Index_DI, |
NULL, NULL, |
+ // A8 |
+ Sample_Gray_DA8, Sample_Gray_DA8, |
+ NULL, NULL, |
+ NULL, NULL, |
+ NULL, NULL, |
+ NULL, NULL, |
// 8888 Unpremul (no dither distinction) |
Sample_Gray_D8888_Unpremul, Sample_Gray_D8888_Unpremul, |
Sample_RGBx_D8888, Sample_RGBx_D8888, |
@@ -405,7 +420,7 @@ bool SkScaledBitmapSampler::begin(SkBitmap* dst, SrcConfig sc, bool dither, |
}; |
// The jump between dst configs in the table |
static const int gProcDstConfigSpan = 10; |
- SK_COMPILE_ASSERT(SK_ARRAY_COUNT(gProcs) == 5 * gProcDstConfigSpan, |
+ SK_COMPILE_ASSERT(SK_ARRAY_COUNT(gProcs) == 6 * gProcDstConfigSpan, |
gProcs_has_the_wrong_number_of_entries); |
fCTable = ctable; |
@@ -456,6 +471,9 @@ bool SkScaledBitmapSampler::begin(SkBitmap* dst, SrcConfig sc, bool dither, |
case SkBitmap::kIndex8_Config: |
index += 3 * gProcDstConfigSpan; |
break; |
+ case SkBitmap::kA8_Config: |
+ index += 4 * gProcDstConfigSpan; |
+ break; |
default: |
return false; |
} |
@@ -464,7 +482,7 @@ bool SkScaledBitmapSampler::begin(SkBitmap* dst, SrcConfig sc, bool dither, |
if (dst->config() != SkBitmap::kARGB_8888_Config) { |
return false; |
} |
- index += 4 * gProcDstConfigSpan; |
+ index += 5 * gProcDstConfigSpan; |
} |
fRowProc = gProcs[index]; |