Merge "Fix Droid and animation color in recovery mode"
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user