diff --git a/legacy/evas/src/lib/engines/common/evas_convert_main.c b/legacy/evas/src/lib/engines/common/evas_convert_main.c index 5e4057ef6d..ce89facbf5 100644 --- a/legacy/evas/src/lib/engines/common/evas_convert_main.c +++ b/legacy/evas/src/lib/engines/common/evas_convert_main.c @@ -432,6 +432,20 @@ evas_common_convert_func_get(DATA8 *dest, int w, int h, int depth, DATA32 rmask, } if (depth == 24) { +#ifdef BUILD_CONVERT_24_RGB_888 + if ((rmask == 0x00ff0000) && (gmask == 0x0000ff00) && (bmask == 0x000000ff)) + { + if (rotation == 0) + return evas_common_convert_rgba_to_24bpp_rgb_888; + } +#endif +#ifdef BUILD_CONVERT_24_BGR_888 + if ((rmask == 0x000000ff) && (gmask == 0x0000ff00) && (bmask == 0x00ff0000)) + { + if (rotation == 0) + return evas_common_convert_rgba_to_24bpp_bgr_888; + } +#endif } printf("depth = %i mode = %i\n", depth, pal_mode); if (depth == 8) diff --git a/legacy/evas/src/lib/engines/common/evas_convert_rgb_24.c b/legacy/evas/src/lib/engines/common/evas_convert_rgb_24.c index 91da9c0c85..c14fcf249b 100644 --- a/legacy/evas/src/lib/engines/common/evas_convert_rgb_24.c +++ b/legacy/evas/src/lib/engines/common/evas_convert_rgb_24.c @@ -1,8 +1,37 @@ #include "evas_common.h" #ifdef BUILD_CONVERT_24_RGB_888 -void evas_common_convert_rgba_to_24bpp_rgb_888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +void +evas_common_convert_rgba_to_24bpp_rgb_888(DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA8 *dst_ptr; + int x, y; + + dst_ptr = (DATA8 *)dst; + + for (y = 0; y < h; y++) + { + for (x = 0; x < w; x++) + { + dst_ptr[0] = R_VAL(src_ptr); + dst_ptr[1] = G_VAL(src_ptr); + dst_ptr[2] = B_VAL(src_ptr); + src_ptr++; + dst_ptr+=3; + } + src_ptr += src_jump; + dst_ptr += (dst_jump * 3); + } + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} #endif #ifdef BUILD_CONVERT_24_BGR_888 -void evas_common_convert_rgba_to_24bpp_bgr_888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +void +evas_common_convert_rgba_to_24bpp_bgr_888(DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ +} #endif diff --git a/legacy/evas/src/lib/engines/fb/evas_fb_main.c b/legacy/evas/src/lib/engines/fb/evas_fb_main.c index 6c582cf64d..2dd45d8bf3 100644 --- a/legacy/evas/src/lib/engines/fb/evas_fb_main.c +++ b/legacy/evas/src/lib/engines/fb/evas_fb_main.c @@ -529,7 +529,7 @@ fb_postinit(FB_Mode *mode) } mode->mem_offset = (unsigned)(fb_fix.smem_start) & (~PAGE_MASK); mode->mem = (unsigned char *)mmap(NULL, fb_fix.smem_len + mode->mem_offset, - PROT_WRITE, MAP_SHARED, fb, 0); + PROT_WRITE | PROT_READ, MAP_SHARED, fb, 0); if ((int)mode->mem == -1) { perror("mmap"); diff --git a/legacy/evas/src/lib/engines/fb/evas_outbuf.c b/legacy/evas/src/lib/engines/fb/evas_outbuf.c index fd1cdb7d5f..afba2968d4 100644 --- a/legacy/evas/src/lib/engines/fb/evas_outbuf.c +++ b/legacy/evas/src/lib/engines/fb/evas_outbuf.c @@ -118,8 +118,8 @@ evas_fb_outbuf_fb_setup_fb(int w, int h, int rot, Outbuf_Depth depth, int vt_no, return NULL; } } - if (buf->priv.fb.fb->fb_var.bits_per_pixel < 24) - buf->priv.back_buf = evas_common_image_create(buf->w, buf->h); +// if (buf->priv.fb.fb->fb_var.bits_per_pixel < 24) +// buf->priv.back_buf = evas_common_image_create(buf->w, buf->h); return buf; }