Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(559)

Side by Side Diff: ui/gfx/android/java_bitmap.cc

Issue 798783002: [Android] Support ALPHA_8 UI resources (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/android/java/src/org/chromium/ui/resources/system/SystemResourceLoader.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 SkAutoLockPixels src_lock(*skbitmap); 79 SkAutoLockPixels src_lock(*skbitmap);
80 JavaBitmap dst_lock(jbitmap.obj()); 80 JavaBitmap dst_lock(jbitmap.obj());
81 void* src_pixels = skbitmap->getPixels(); 81 void* src_pixels = skbitmap->getPixels();
82 void* dst_pixels = dst_lock.pixels(); 82 void* dst_pixels = dst_lock.pixels();
83 memcpy(dst_pixels, src_pixels, skbitmap->getSize()); 83 memcpy(dst_pixels, src_pixels, skbitmap->getSize());
84 84
85 return jbitmap; 85 return jbitmap;
86 } 86 }
87 87
88 SkBitmap CreateSkBitmapFromJavaBitmap(const JavaBitmap& jbitmap) { 88 SkBitmap CreateSkBitmapFromJavaBitmap(const JavaBitmap& jbitmap) {
89 // TODO(jdduke): Convert to DCHECK's when sufficient data has been capture for 89 DCHECK(!jbitmap.size().IsEmpty());
90 // crbug.com/341406. 90 DCHECK_GT(jbitmap.stride(), 0U);
91 CHECK_EQ(jbitmap.format(), ANDROID_BITMAP_FORMAT_RGBA_8888); 91 DCHECK(jbitmap.pixels());
92 CHECK(!jbitmap.size().IsEmpty());
93 CHECK_GT(jbitmap.stride(), 0U);
94 CHECK(jbitmap.pixels());
95 92
96 gfx::Size src_size = jbitmap.size(); 93 gfx::Size src_size = jbitmap.size();
97 94
98 SkBitmap skbitmap; 95 SkBitmap skbitmap;
99 skbitmap.allocPixels(SkImageInfo::MakeN32Premul(src_size.width(), 96 switch (jbitmap.format()) {
100 src_size.height()), 97 case ANDROID_BITMAP_FORMAT_RGBA_8888:
101 jbitmap.stride()); 98 skbitmap.allocPixels(SkImageInfo::MakeN32Premul(src_size.width(),
99 src_size.height()),
100 jbitmap.stride());
101 break;
102 case ANDROID_BITMAP_FORMAT_A_8:
103 skbitmap.allocPixels(SkImageInfo::MakeA8(src_size.width(),
104 src_size.height()),
105 jbitmap.stride());
106 break;
107 default:
108 CHECK(false) << "Invalid Java bitmap format: " << jbitmap.format();
109 break;
110 }
102 const void* src_pixels = jbitmap.pixels(); 111 const void* src_pixels = jbitmap.pixels();
103 void* dst_pixels = skbitmap.getPixels(); 112 void* dst_pixels = skbitmap.getPixels();
104 memcpy(dst_pixels, src_pixels, skbitmap.getSize()); 113 memcpy(dst_pixels, src_pixels, skbitmap.getSize());
105 114
106 return skbitmap; 115 return skbitmap;
107 } 116 }
108 117
109 SkColorType ConvertToSkiaColorType(jobject bitmap_config) { 118 SkColorType ConvertToSkiaColorType(jobject bitmap_config) {
110 int jbitmap_config = Java_BitmapHelper_getBitmapFormatForConfig( 119 int jbitmap_config = Java_BitmapHelper_getBitmapFormatForConfig(
111 AttachCurrentThread(), bitmap_config); 120 AttachCurrentThread(), bitmap_config);
112 switch (jbitmap_config) { 121 switch (jbitmap_config) {
113 case BITMAP_FORMAT_ALPHA_8: 122 case BITMAP_FORMAT_ALPHA_8:
114 return kAlpha_8_SkColorType; 123 return kAlpha_8_SkColorType;
115 case BITMAP_FORMAT_ARGB_4444: 124 case BITMAP_FORMAT_ARGB_4444:
116 return kARGB_4444_SkColorType; 125 return kARGB_4444_SkColorType;
117 case BITMAP_FORMAT_ARGB_8888: 126 case BITMAP_FORMAT_ARGB_8888:
118 return kN32_SkColorType; 127 return kN32_SkColorType;
119 case BITMAP_FORMAT_RGB_565: 128 case BITMAP_FORMAT_RGB_565:
120 return kRGB_565_SkColorType; 129 return kRGB_565_SkColorType;
121 case BITMAP_FORMAT_NO_CONFIG: 130 case BITMAP_FORMAT_NO_CONFIG:
122 default: 131 default:
123 return kUnknown_SkColorType; 132 return kUnknown_SkColorType;
124 } 133 }
125 } 134 }
126 135
127 } // namespace gfx 136 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/android/java/src/org/chromium/ui/resources/system/SystemResourceLoader.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698