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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
51 return BITMAP_FORMAT_ARGB_8888; | 51 return BITMAP_FORMAT_ARGB_8888; |
52 case SkBitmap::kRGB_565_Config: | 52 case SkBitmap::kRGB_565_Config: |
53 return BITMAP_FORMAT_RGB_565; | 53 return BITMAP_FORMAT_RGB_565; |
54 case SkBitmap::kNo_Config: | 54 case SkBitmap::kNo_Config: |
55 default: | 55 default: |
56 NOTREACHED(); | 56 NOTREACHED(); |
57 return BITMAP_FORMAT_NO_CONFIG; | 57 return BITMAP_FORMAT_NO_CONFIG; |
58 } | 58 } |
59 } | 59 } |
60 | 60 |
61 ScopedJavaLocalRef<jobject> CreateJavaBitmap(int width, | 61 ScopedJavaLocalRef<jobject> CreateJavaBitmap(int width, |
msw
2014/07/08 01:11:29
Doesn't this need to be updated like the declarati
reed1
2014/07/08 13:01:57
Done.
| |
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 const char* name, | 72 const char* name, |
73 gfx::Size size) { | 73 gfx::Size size) { |
74 DCHECK(name); | 74 DCHECK(name); |
75 DCHECK(!size.IsEmpty()); | 75 DCHECK(!size.IsEmpty()); |
76 JNIEnv* env = AttachCurrentThread(); | 76 JNIEnv* env = AttachCurrentThread(); |
77 ScopedJavaLocalRef<jstring> jname(ConvertUTF8ToJavaString(env, name)); | 77 ScopedJavaLocalRef<jstring> jname(ConvertUTF8ToJavaString(env, name)); |
78 return Java_BitmapHelper_decodeDrawableResource( | 78 return Java_BitmapHelper_decodeDrawableResource( |
79 env, jname.obj(), size.width(), size.height()); | 79 env, jname.obj(), size.width(), size.height()); |
80 } | 80 } |
81 | 81 |
82 ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) { | 82 ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) { |
83 DCHECK(skbitmap); | 83 DCHECK(skbitmap); |
84 DCHECK(!skbitmap->isNull()); | 84 DCHECK(!skbitmap->isNull()); |
85 SkBitmap::Config bitmap_config = skbitmap->config(); | 85 SkBitmap::Config bitmap_config = skbitmap->config(); |
86 DCHECK((bitmap_config == SkBitmap::kRGB_565_Config) || | 86 DCHECK((bitmap_config == SkBitmap::kRGB_565_Config) || |
87 (bitmap_config == SkBitmap::kARGB_8888_Config)); | 87 (bitmap_config == SkBitmap::kARGB_8888_Config)); |
88 ScopedJavaLocalRef<jobject> jbitmap = CreateJavaBitmap( | 88 ScopedJavaLocalRef<jobject> jbitmap = CreateJavaBitmap( |
msw
2014/07/08 01:11:29
Doesn't this call need to be updated?
reed1
2014/07/08 13:01:57
Done.
| |
89 skbitmap->width(), skbitmap->height(), bitmap_config); | 89 skbitmap->width(), skbitmap->height(), bitmap_config); |
90 SkAutoLockPixels src_lock(*skbitmap); | 90 SkAutoLockPixels src_lock(*skbitmap); |
91 JavaBitmap dst_lock(jbitmap.obj()); | 91 JavaBitmap dst_lock(jbitmap.obj()); |
92 void* src_pixels = skbitmap->getPixels(); | 92 void* src_pixels = skbitmap->getPixels(); |
93 void* dst_pixels = dst_lock.pixels(); | 93 void* dst_pixels = dst_lock.pixels(); |
94 memcpy(dst_pixels, src_pixels, skbitmap->getSize()); | 94 memcpy(dst_pixels, src_pixels, skbitmap->getSize()); |
95 | 95 |
96 return jbitmap; | 96 return jbitmap; |
97 } | 97 } |
98 | 98 |
(...skipping 14 matching lines...) Expand all Loading... | |
113 LOG(FATAL) << " Failed to allocate bitmap of size " << src_size.width() | 113 LOG(FATAL) << " Failed to allocate bitmap of size " << src_size.width() |
114 << "x" << src_size.height() << " stride=" << jbitmap.stride(); | 114 << "x" << src_size.height() << " stride=" << jbitmap.stride(); |
115 } | 115 } |
116 const void* src_pixels = jbitmap.pixels(); | 116 const void* src_pixels = jbitmap.pixels(); |
117 void* dst_pixels = skbitmap.getPixels(); | 117 void* dst_pixels = skbitmap.getPixels(); |
118 memcpy(dst_pixels, src_pixels, skbitmap.getSize()); | 118 memcpy(dst_pixels, src_pixels, skbitmap.getSize()); |
119 | 119 |
120 return skbitmap; | 120 return skbitmap; |
121 } | 121 } |
122 | 122 |
123 SkBitmap::Config ConvertToSkiaConfig(jobject bitmap_config) { | 123 SkColorType ConvertToSkiaColorType(jobject bitmap_config) { |
124 int jbitmap_config = Java_BitmapHelper_getBitmapFormatForConfig( | 124 int jbitmap_config = Java_BitmapHelper_getBitmapFormatForConfig( |
125 AttachCurrentThread(), bitmap_config); | 125 AttachCurrentThread(), bitmap_config); |
126 switch (jbitmap_config) { | 126 switch (jbitmap_config) { |
127 case BITMAP_FORMAT_ALPHA_8: | 127 case BITMAP_FORMAT_ALPHA_8: |
128 return SkBitmap::kA8_Config; | 128 return kAlpha_8_SkColorType; |
129 case BITMAP_FORMAT_ARGB_4444: | 129 case BITMAP_FORMAT_ARGB_4444: |
130 return SkBitmap::kARGB_4444_Config; | 130 return kARGB_4444_SkColorType; |
131 case BITMAP_FORMAT_ARGB_8888: | 131 case BITMAP_FORMAT_ARGB_8888: |
132 return SkBitmap::kARGB_8888_Config; | 132 return kN32_SkColorType; |
133 case BITMAP_FORMAT_RGB_565: | 133 case BITMAP_FORMAT_RGB_565: |
134 return SkBitmap::kRGB_565_Config; | 134 return kRGB_565_SkColorType; |
135 case BITMAP_FORMAT_NO_CONFIG: | 135 case BITMAP_FORMAT_NO_CONFIG: |
136 default: | 136 default: |
137 return SkBitmap::kNo_Config; | 137 return kUnknown_SkColorType; |
138 } | 138 } |
139 } | 139 } |
140 | 140 |
141 } // namespace gfx | 141 } // namespace gfx |
OLD | NEW |