Merge "Fix Droid and animation color in recovery mode"

This commit is contained in:
Elliott Hughes
2015-02-12 06:21:28 +00:00
committed by Gerrit Code Review
5 changed files with 25 additions and 14 deletions

View File

@@ -16,6 +16,9 @@ LOCAL_MODULE := libminui
# ordinary characters in this context). Strip double-quotes from the
# value so that either will work.
ifeq ($(subst ",,$(TARGET_RECOVERY_PIXEL_FORMAT)),ABGR_8888)
LOCAL_CFLAGS += -DRECOVERY_ABGR
endif
ifeq ($(subst ",,$(TARGET_RECOVERY_PIXEL_FORMAT)),RGBX_8888)
LOCAL_CFLAGS += -DRECOVERY_RGBX
endif

View File

@@ -161,10 +161,17 @@ void gr_texticon(int x, int y, GRSurface* icon) {
void gr_color(unsigned char r, unsigned char g, unsigned char b, unsigned char a)
{
#if defined(RECOVERY_ABGR) || defined(RECOVERY_BGRA)
gr_current_r = b;
gr_current_g = g;
gr_current_b = r;
gr_current_a = a;
#else
gr_current_r = r;
gr_current_g = g;
gr_current_b = b;
gr_current_a = a;
#endif
}
void gr_clear()

View File

@@ -142,7 +142,9 @@ static gr_surface adf_init(minui_backend *backend)
ssize_t n_dev_ids, i;
gr_surface ret;
#if defined(RECOVERY_BGRA)
#if defined(RECOVERY_ABGR)
pdata->format = DRM_FORMAT_ABGR8888;
#elif defined(RECOVERY_BGRA)
pdata->format = DRM_FORMAT_BGRA8888;
#elif defined(RECOVERY_RGBX)
pdata->format = DRM_FORMAT_RGBX8888;

View File

@@ -187,21 +187,8 @@ static gr_surface fbdev_flip(minui_backend* backend __unused) {
set_displayed_framebuffer(1-displayed_buffer);
} else {
// Copy from the in-memory surface to the framebuffer.
#if defined(RECOVERY_BGRA)
unsigned int idx;
unsigned char* ucfb_vaddr = (unsigned char*)gr_framebuffer[0].data;
unsigned char* ucbuffer_vaddr = (unsigned char*)gr_draw->data;
for (idx = 0 ; idx < (gr_draw->height * gr_draw->row_bytes); idx += 4) {
ucfb_vaddr[idx ] = ucbuffer_vaddr[idx + 2];
ucfb_vaddr[idx + 1] = ucbuffer_vaddr[idx + 1];
ucfb_vaddr[idx + 2] = ucbuffer_vaddr[idx ];
ucfb_vaddr[idx + 3] = ucbuffer_vaddr[idx + 3];
}
#else
memcpy(gr_framebuffer[0].data, gr_draw->data,
gr_draw->height * gr_draw->row_bytes);
#endif
}
return gr_draw;
}

View File

@@ -216,6 +216,10 @@ int res_create_display_surface(const char* name, gr_surface* pSurface) {
goto exit;
}
#if defined(RECOVERY_ABGR) || defined(RECOVERY_BGRA)
png_set_bgr(png_ptr);
#endif
unsigned char* p_row = malloc(width * 4);
unsigned int y;
for (y = 0; y < height; ++y) {
@@ -279,6 +283,10 @@ int res_create_multi_display_surface(const char* name, int* frames, gr_surface**
}
}
#if defined(RECOVERY_ABGR) || defined(RECOVERY_BGRA)
png_set_bgr(png_ptr);
#endif
unsigned char* p_row = malloc(width * 4);
unsigned int y;
for (y = 0; y < height; ++y) {
@@ -334,6 +342,10 @@ int res_create_alpha_surface(const char* name, gr_surface* pSurface) {
surface->row_bytes = width;
surface->pixel_bytes = 1;
#if defined(RECOVERY_ABGR) || defined(RECOVERY_BGRA)
png_set_bgr(png_ptr);
#endif
unsigned char* p_row;
unsigned int y;
for (y = 0; y < height; ++y) {