Add support for RGBA_8888 pixel format
Change-Id: I56c6e55409e56d5574221bc2e39d31756549caad
diff --git a/minui/Android.mk b/minui/Android.mk
index 7d8e3a7..d21f130 100644
--- a/minui/Android.mk
+++ b/minui/Android.mk
@@ -41,6 +41,9 @@
# ordinary characters in this context). Strip double-quotes from the
# value so that either will work.
+ifeq ($(subst ",,$(TARGET_RECOVERY_PIXEL_FORMAT)),RGBA_8888)
+ LOCAL_CFLAGS += -DRECOVERY_RGBA
+endif
ifeq ($(subst ",,$(TARGET_RECOVERY_PIXEL_FORMAT)),RGBX_8888)
LOCAL_CFLAGS += -DRECOVERY_RGBX
endif
@@ -107,6 +110,9 @@
# ordinary characters in this context). Strip double-quotes from the
# value so that either will work.
+ifeq ($(subst ",,$(TARGET_RECOVERY_PIXEL_FORMAT)),RGBA_8888)
+ LOCAL_CFLAGS += -DRECOVERY_RGBA
+endif
ifeq ($(subst ",,$(TARGET_RECOVERY_PIXEL_FORMAT)),RGBX_8888)
LOCAL_CFLAGS += -DRECOVERY_RGBX
endif
diff --git a/minui/graphics.c b/minui/graphics.c
index cce02a9..580af29 100644
--- a/minui/graphics.c
+++ b/minui/graphics.c
@@ -42,6 +42,9 @@
#if defined(RECOVERY_BGRA)
#define PIXEL_FORMAT GGL_PIXEL_FORMAT_BGRA_8888
#define PIXEL_SIZE 4
+#elif defined(RECOVERY_RGBA)
+#define PIXEL_FORMAT GGL_PIXEL_FORMAT_RGBA_8888
+#define PIXEL_SIZE 4
#elif defined(RECOVERY_RGBX)
#define PIXEL_FORMAT GGL_PIXEL_FORMAT_RGBX_8888
#define PIXEL_SIZE 4
@@ -111,6 +114,15 @@
vi.blue.length = 8;
vi.transp.offset = 0;
vi.transp.length = 8;
+ } else if (PIXEL_FORMAT == GGL_PIXEL_FORMAT_RGBA_8888) {
+ vi.red.offset = 0;
+ vi.red.length = 8;
+ vi.green.offset = 8;
+ vi.green.length = 8;
+ vi.blue.offset = 16;
+ vi.blue.length = 8;
+ vi.transp.offset = 24;
+ vi.transp.length = 8;
} else if (PIXEL_FORMAT == GGL_PIXEL_FORMAT_RGBX_8888) {
vi.red.offset = 24;
vi.red.length = 8;
diff --git a/minui/graphics_overlay.c b/minui/graphics_overlay.c
index d793b57..c42e9c1 100644
--- a/minui/graphics_overlay.c
+++ b/minui/graphics_overlay.c
@@ -72,6 +72,8 @@
int format = MDP_RGB_565;
#if defined(RECOVERY_BGRA)
format = MDP_BGRA_8888;
+#elif defined(RECOVERY_RGBA)
+ format = MDP_RGBA_8888;
#elif defined(RECOVERY_RGBX)
format = MDP_RGBA_8888;
#endif
diff --git a/minuitwrp/Android.mk b/minuitwrp/Android.mk
index 76b4024..56fe200 100644
--- a/minuitwrp/Android.mk
+++ b/minuitwrp/Android.mk
@@ -62,6 +62,9 @@
LOCAL_CFLAGS += -D_EVENT_LOGGING
endif
+ifeq ($(subst ",,$(TARGET_RECOVERY_PIXEL_FORMAT)),RGBA_8888)
+ LOCAL_CFLAGS += -DRECOVERY_RGBA
+endif
ifeq ($(subst ",,$(TARGET_RECOVERY_PIXEL_FORMAT)),RGBX_8888)
LOCAL_CFLAGS += -DRECOVERY_RGBX
endif
diff --git a/minuitwrp/graphics.c b/minuitwrp/graphics.c
index 04c41fb..4b4e5c6 100644
--- a/minuitwrp/graphics.c
+++ b/minuitwrp/graphics.c
@@ -43,6 +43,10 @@
#define PIXEL_FORMAT GGL_PIXEL_FORMAT_BGRA_8888
#define PIXEL_SIZE 4
#endif
+#ifdef RECOVERY_RGBA
+#define PIXEL_FORMAT GGL_PIXEL_FORMAT_RGBA_8888
+#define PIXEL_SIZE 4
+#endif
#ifdef RECOVERY_RGBX
#define PIXEL_FORMAT GGL_PIXEL_FORMAT_RGBX_8888
#define PIXEL_SIZE 4
@@ -198,6 +202,17 @@
vi.blue.length = 8;
vi.transp.offset = 0;
vi.transp.length = 8;
+ } else if (PIXEL_FORMAT == GGL_PIXEL_FORMAT_RGBA_8888) {
+ fprintf(stderr, "Pixel format: RGBA_8888\n");
+ if (PIXEL_SIZE != 4) fprintf(stderr, "E: Pixel Size mismatch!\n");
+ vi.red.offset = 0;
+ vi.red.length = 8;
+ vi.green.offset = 8;
+ vi.green.length = 8;
+ vi.blue.offset = 16;
+ vi.blue.length = 8;
+ vi.transp.offset = 24;
+ vi.transp.length = 8;
} else if (PIXEL_FORMAT == GGL_PIXEL_FORMAT_RGBX_8888) {
fprintf(stderr, "Pixel format: RGBX_8888\n");
if (PIXEL_SIZE != 4) fprintf(stderr, "E: Pixel Size mismatch!\n");
diff --git a/minuitwrp/graphics_overlay.c b/minuitwrp/graphics_overlay.c
index 80e64d7..723ffa2 100644
--- a/minuitwrp/graphics_overlay.c
+++ b/minuitwrp/graphics_overlay.c
@@ -75,6 +75,8 @@
int format = MDP_RGB_565;
#if defined(RECOVERY_BGRA)
format = MDP_BGRA_8888;
+#elif defined(RECOVERY_RGBA)
+ format = MDP_RGBA_8888;
#elif defined(RECOVERY_RGBX)
format = MDP_RGBA_8888;
#endif