diff options
author | Mike Reed <reed@google.com> | 2014-07-08 19:16:14 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-07-07 19:25:01 +0000 |
commit | 24b45fee5d59bed2d005fb07d129f67bfb16b97a (patch) | |
tree | 30beac0ddda9964b8a4a04cf2b02a5e5dd21761a /core/jni/android/graphics/Graphics.cpp | |
parent | 684b8ce8de45ccec5034bef14a4cb353fc63c31c (diff) | |
parent | 1103b3255945d2eb2fa9c191e84e2270b343cca9 (diff) | |
download | frameworks_base-24b45fee5d59bed2d005fb07d129f67bfb16b97a.zip frameworks_base-24b45fee5d59bed2d005fb07d129f67bfb16b97a.tar.gz frameworks_base-24b45fee5d59bed2d005fb07d129f67bfb16b97a.tar.bz2 |
Merge "SkBitmap::Config is deprecated, use SkColorType"
Diffstat (limited to 'core/jni/android/graphics/Graphics.cpp')
-rw-r--r-- | core/jni/android/graphics/Graphics.cpp | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp index 7a186a2..9177696 100644 --- a/core/jni/android/graphics/Graphics.cpp +++ b/core/jni/android/graphics/Graphics.cpp @@ -291,6 +291,54 @@ void GraphicsJNI::point_to_jpointf(const SkPoint& r, JNIEnv* env, jobject obj) env->SetFloatField(obj, gPointF_yFieldID, SkScalarToFloat(r.fY)); } +// This enum must keep these int values, to match the int values +// in the java Bitmap.Config enum. +enum LegacyBitmapConfig { + kNo_LegacyBitmapConfig = 0, + kA8_LegacyBitmapConfig = 1, + kIndex8_LegacyBitmapConfig = 2, + kRGB_565_LegacyBitmapConfig = 3, + kARGB_4444_LegacyBitmapConfig = 4, + kARGB_8888_LegacyBitmapConfig = 5, + + kLastEnum_LegacyBitmapConfig = kARGB_8888_LegacyBitmapConfig +}; + +jint GraphicsJNI::colorTypeToLegacyBitmapConfig(SkColorType colorType) { + switch (colorType) { + case kN32_SkColorType: + return kARGB_8888_LegacyBitmapConfig; + case kARGB_4444_SkColorType: + return kARGB_4444_LegacyBitmapConfig; + case kRGB_565_SkColorType: + return kRGB_565_LegacyBitmapConfig; + case kIndex_8_SkColorType: + return kIndex8_LegacyBitmapConfig; + case kAlpha_8_SkColorType: + return kA8_LegacyBitmapConfig; + case kUnknown_SkColorType: + default: + break; + } + return kNo_LegacyBitmapConfig; +} + +SkColorType GraphicsJNI::legacyBitmapConfigToColorType(jint legacyConfig) { + const uint8_t gConfig2ColorType[] = { + kUnknown_SkColorType, + kAlpha_8_SkColorType, + kIndex_8_SkColorType, + kRGB_565_SkColorType, + kARGB_4444_SkColorType, + kN32_SkColorType + }; + + if (legacyConfig < 0 || legacyConfig > kLastEnum_LegacyBitmapConfig) { + legacyConfig = kNo_LegacyBitmapConfig; + } + return static_cast<SkColorType>(gConfig2ColorType[legacyConfig]); +} + SkBitmap* GraphicsJNI::getNativeBitmap(JNIEnv* env, jobject bitmap) { SkASSERT(env); SkASSERT(bitmap); @@ -308,10 +356,7 @@ SkColorType GraphicsJNI::getNativeBitmapColorType(JNIEnv* env, jobject jconfig) } SkASSERT(env->IsInstanceOf(jconfig, gBitmapConfig_class)); int c = env->GetIntField(jconfig, gBitmapConfig_nativeInstanceID); - if (c < 0 || c >= SkBitmap::kConfigCount) { - c = kUnknown_SkColorType; - } - return SkBitmapConfigToColorType(static_cast<SkBitmap::Config>(c)); + return legacyBitmapConfigToColorType(c); } SkCanvas* GraphicsJNI::getNativeCanvas(JNIEnv* env, jobject canvas) { |