android_mnit: standardize gray PNG files as RGB to please OpenGL ES 1.0
[nit.git] / lib / mnit_android / android_assets.nit
index 20704b6..89f29a3 100644 (file)
@@ -166,13 +166,14 @@ redef class Opengles1Image
 
                png_get_IHDR(   png_ptr, info_ptr, &width, &height,
                                                &depth, &color_type, NULL, NULL, NULL);
-               if (color_type == PNG_COLOR_TYPE_RGBA)
-                       has_alpha = 1;
-               else if (color_type == PNG_COLOR_TYPE_RGB)
-                       has_alpha = 0;
-               else {
-                       LOGW("unknown color_type");
-                       goto close_png_ptr;
+               has_alpha = color_type & PNG_COLOR_MASK_ALPHA;
+
+               // If we get gray and alpha only, standardize the format of the pixels.
+               // GA is not supported by OpenGL ES 1.
+               if (!(color_type & PNG_COLOR_MASK_COLOR)) {
+                       png_set_gray_to_rgb(png_ptr);
+                       png_set_palette_to_rgb(png_ptr);
+                       png_read_update_info(png_ptr, info_ptr);
                }
 
                LOGW("w: %i, h: %i", width, height);