summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2015-07-27 17:23:52 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-27 17:23:52 +0000
commit4604c1dc67f634e1fac37f623f5b093615d49f0f (patch)
treefa11cc4c3d87e9299efcf3356852dcb77aaed8f9
parentfef1b28917df9a23b28ec5e5e7f83097b8574550 (diff)
parent6260b22501996d2e7a0323b493ae6c4badb93c28 (diff)
downloadframeworks_base-4604c1dc67f634e1fac37f623f5b093615d49f0f.zip
frameworks_base-4604c1dc67f634e1fac37f623f5b093615d49f0f.tar.gz
frameworks_base-4604c1dc67f634e1fac37f623f5b093615d49f0f.tar.bz2
Merge "Fix bitmap get/set pixels for ALPHA_8" into mnc-dev
-rwxr-xr-xcore/jni/android/graphics/Bitmap.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index 0d80a7f..670d3c0 100755
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -475,6 +475,14 @@ static void FromColor_D4444_Raw(void* dst, const SkColor src[], int width,
}
}
+static void FromColor_DA8(void* dst, const SkColor src[], int width, int x, int y) {
+ uint8_t* d = (uint8_t*)dst;
+
+ for (int stop = x + width; x < stop; x++) {
+ *d++ = SkColorGetA(*src++);
+ }
+}
+
// can return NULL
static FromColorProc ChooseFromColorProc(const SkBitmap& bitmap) {
switch (bitmap.colorType()) {
@@ -485,6 +493,8 @@ static FromColorProc ChooseFromColorProc(const SkBitmap& bitmap) {
FromColor_D4444_Raw;
case kRGB_565_SkColorType:
return FromColor_D565;
+ case kAlpha_8_SkColorType:
+ return FromColor_DA8;
default:
break;
}
@@ -632,6 +642,15 @@ static void ToColor_SI8_Opaque(SkColor dst[], const void* src, int width,
} while (--width != 0);
}
+static void ToColor_SA8(SkColor dst[], const void* src, int width, SkColorTable*) {
+ SkASSERT(width > 0);
+ const uint8_t* s = (const uint8_t*)src;
+ do {
+ uint8_t c = *s++;
+ *dst++ = SkColorSetARGB(c, c, c, c);
+ } while (--width != 0);
+}
+
// can return NULL
static ToColorProc ChooseToColorProc(const SkBitmap& src) {
switch (src.colorType()) {
@@ -673,6 +692,8 @@ static ToColorProc ChooseToColorProc(const SkBitmap& src) {
default:
return NULL;
}
+ case kAlpha_8_SkColorType:
+ return ToColor_SA8;
default:
break;
}