OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/gfx/android/java_bitmap.h" | 5 #include "ui/gfx/android/java_bitmap.h" |
6 | 6 |
7 #include <android/bitmap.h> | 7 #include <android/bitmap.h> |
8 | 8 |
9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 int height, | 62 int height, |
63 SkBitmap::Config bitmap_config) { | 63 SkBitmap::Config bitmap_config) { |
64 DCHECK_GT(width, 0); | 64 DCHECK_GT(width, 0); |
65 DCHECK_GT(height, 0); | 65 DCHECK_GT(height, 0); |
66 int java_bitmap_config = SkBitmapConfigToBitmapFormat(bitmap_config); | 66 int java_bitmap_config = SkBitmapConfigToBitmapFormat(bitmap_config); |
67 return Java_BitmapHelper_createBitmap( | 67 return Java_BitmapHelper_createBitmap( |
68 AttachCurrentThread(), width, height, java_bitmap_config); | 68 AttachCurrentThread(), width, height, java_bitmap_config); |
69 } | 69 } |
70 | 70 |
71 ScopedJavaLocalRef<jobject> CreateJavaBitmapFromAndroidResource( | 71 ScopedJavaLocalRef<jobject> CreateJavaBitmapFromAndroidResource( |
| 72 int resource_id) { |
| 73 JNIEnv* env = AttachCurrentThread(); |
| 74 return Java_BitmapHelper_decodeDrawableResourceAGB_I(env, resource_id); |
| 75 } |
| 76 |
| 77 ScopedJavaLocalRef<jobject> CreateJavaBitmapFromAndroidResource( |
| 78 const char* name) { |
| 79 DCHECK(name); |
| 80 JNIEnv* env = AttachCurrentThread(); |
| 81 ScopedJavaLocalRef<jstring> jname(ConvertUTF8ToJavaString(env, name)); |
| 82 return Java_BitmapHelper_decodeDrawableResourceAGB_JLS(env, jname.obj()); |
| 83 } |
| 84 |
| 85 ScopedJavaLocalRef<jobject> CreateJavaBitmapFromAndroidResource( |
72 const char* name, | 86 const char* name, |
73 gfx::Size size) { | 87 gfx::Size size) { |
74 DCHECK(name); | 88 DCHECK(name); |
75 DCHECK(!size.IsEmpty()); | 89 DCHECK(!size.IsEmpty()); |
76 JNIEnv* env = AttachCurrentThread(); | 90 JNIEnv* env = AttachCurrentThread(); |
77 ScopedJavaLocalRef<jstring> jname(ConvertUTF8ToJavaString(env, name)); | 91 ScopedJavaLocalRef<jstring> jname(ConvertUTF8ToJavaString(env, name)); |
78 return Java_BitmapHelper_decodeDrawableResource( | 92 return Java_BitmapHelper_decodeAndDownsampleDrawableResource( |
79 env, jname.obj(), size.width(), size.height()); | 93 env, jname.obj(), size.width(), size.height()); |
80 } | 94 } |
81 | 95 |
82 ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) { | 96 ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) { |
83 DCHECK(skbitmap); | 97 DCHECK(skbitmap); |
84 DCHECK(!skbitmap->isNull()); | 98 DCHECK(!skbitmap->isNull()); |
85 SkBitmap::Config bitmap_config = skbitmap->config(); | 99 SkBitmap::Config bitmap_config = skbitmap->config(); |
86 DCHECK((bitmap_config == SkBitmap::kRGB_565_Config) || | 100 DCHECK((bitmap_config == SkBitmap::kRGB_565_Config) || |
87 (bitmap_config == SkBitmap::kARGB_8888_Config)); | 101 (bitmap_config == SkBitmap::kARGB_8888_Config)); |
88 ScopedJavaLocalRef<jobject> jbitmap = CreateJavaBitmap( | 102 ScopedJavaLocalRef<jobject> jbitmap = CreateJavaBitmap( |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 return SkBitmap::kARGB_8888_Config; | 146 return SkBitmap::kARGB_8888_Config; |
133 case BITMAP_FORMAT_RGB_565: | 147 case BITMAP_FORMAT_RGB_565: |
134 return SkBitmap::kRGB_565_Config; | 148 return SkBitmap::kRGB_565_Config; |
135 case BITMAP_FORMAT_NO_CONFIG: | 149 case BITMAP_FORMAT_NO_CONFIG: |
136 default: | 150 default: |
137 return SkBitmap::kNo_Config; | 151 return SkBitmap::kNo_Config; |
138 } | 152 } |
139 } | 153 } |
140 | 154 |
141 } // namespace gfx | 155 } // namespace gfx |
OLD | NEW |