summaryrefslogtreecommitdiffstats
path: root/minui
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2009-10-09 01:32:58 +0200
committerDoug Zongker <dougz@android.com>2009-10-09 01:32:58 +0200
commitd93a25459cdefba940f254b4c5f54fd7d9cdaf11 (patch)
tree70d5c1658606d754a81140d917bb8bb35a6e1450 /minui
parentMerge change I1c8ca2e4 into eclair (diff)
downloadandroid_bootable_recovery-d93a25459cdefba940f254b4c5f54fd7d9cdaf11.tar
android_bootable_recovery-d93a25459cdefba940f254b4c5f54fd7d9cdaf11.tar.gz
android_bootable_recovery-d93a25459cdefba940f254b4c5f54fd7d9cdaf11.tar.bz2
android_bootable_recovery-d93a25459cdefba940f254b4c5f54fd7d9cdaf11.tar.lz
android_bootable_recovery-d93a25459cdefba940f254b4c5f54fd7d9cdaf11.tar.xz
android_bootable_recovery-d93a25459cdefba940f254b4c5f54fd7d9cdaf11.tar.zst
android_bootable_recovery-d93a25459cdefba940f254b4c5f54fd7d9cdaf11.zip
Diffstat (limited to '')
-rw-r--r--minui/resources.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/minui/resources.c b/minui/resources.c
index 7ecfeefce..3d2c727fb 100644
--- a/minui/resources.c
+++ b/minui/resources.c
@@ -97,9 +97,10 @@ int res_create_surface(const char* name, gr_surface* pSurface) {
int color_type = info_ptr->color_type;
int bit_depth = info_ptr->bit_depth;
int channels = info_ptr->channels;
- if (bit_depth != 8 || (channels != 3 && channels != 4) ||
- (color_type != PNG_COLOR_TYPE_RGB &&
- color_type != PNG_COLOR_TYPE_RGBA)) {
+ if (!(bit_depth == 8 &&
+ ((channels == 3 && color_type == PNG_COLOR_TYPE_RGB) ||
+ (channels == 4 && color_type == PNG_COLOR_TYPE_RGBA) ||
+ (channels == 1 && color_type == PNG_COLOR_TYPE_PALETTE)))) {
return -7;
goto exit;
}
@@ -118,6 +119,10 @@ int res_create_surface(const char* name, gr_surface* pSurface) {
surface->format = (channels == 3) ?
GGL_PIXEL_FORMAT_RGBX_8888 : GGL_PIXEL_FORMAT_RGBA_8888;
+ if (color_type == PNG_COLOR_TYPE_PALETTE) {
+ png_set_palette_to_rgb(png_ptr);
+ }
+
int y;
if (channels == 3) {
for (y = 0; y < height; ++y) {