Open liliao007 opened 4 years ago
修改以下部分代码还是无法支持ARGB8888:
diff --git a/src/lcd/gen.sh b/src/lcd/gen.sh index 1653746..24f7867 100755 --- a/src/lcd/gen.sh +++ b/src/lcd/gen.sh @@ -12,11 +12,11 @@ function gen() { }
if [ "$1" == "" ]; then
diff --git a/src/blend/gen.sh b/src/blend/gen.sh index d6a5494..dcc1b08 100755 --- a/src/blend/gen.sh +++ b/src/blend/gen.sh @@ -27,7 +27,7 @@ function gen_rotate_fill() {
diff --git a/awtk-port/fb_info.h b/awtk-port/fb_info.h index deaf62d..5553881 100755 --- a/awtk-port/fb_info.h +++ b/awtk-port/fb_info.h @@ -116,6 +116,18 @@ static inline bool_t fb_is_rgba8888(fb_info_t* fb) { } }
+static inline bool_t fb_is_argb8888(fb_info_t* fb) {
diff --git a/awtk-port/lcd_linux_fb.c b/awtk-port/lcd_linux_fb.c old mode 100644 new mode 100755 index 1cac9bb..fdf30a0 --- a/awtk-port/lcd_linux_fb.c +++ b/awtk-port/lcd_linux_fb.c @@ -86,6 +86,8 @@ static lcd_t lcd_linux_create_flushable(fb_info_t fb) { lcd = lcd_mem_bgra8888_create_double_fb(w, h, online_fb, fb->fbmem1); } else if (fb_is_rgba8888(fb)) { lcd = lcd_mem_rgba8888_create_double_fb(w, h, online_fb, fb->fbmem1);
参考这个:https://github.com/zlgopen/awtk-linux-fb/blob/master/awtk-port/lcd_mem_others.c
offline framebuffer用rgba8888,在flush函数中转换成argb8888即可。
修改以下部分代码还是无法支持ARGB8888:
diff --git a/src/lcd/gen.sh b/src/lcd/gen.sh index 1653746..24f7867 100755 --- a/src/lcd/gen.sh +++ b/src/lcd/gen.sh @@ -12,11 +12,11 @@ function gen() { }
if [ "$1" == "" ]; then
diff --git a/src/blend/gen.sh b/src/blend/gen.sh index d6a5494..dcc1b08 100755 --- a/src/blend/gen.sh +++ b/src/blend/gen.sh @@ -27,7 +27,7 @@ function gen_rotate_fill() {
supported formats: rgb565 bgr565 rgb888 bgr888 rgba8888 abgr8888 bgra8888 argb8888
if [ "$1" == "" ]; then
diff --git a/awtk-port/fb_info.h b/awtk-port/fb_info.h index deaf62d..5553881 100755 --- a/awtk-port/fb_info.h +++ b/awtk-port/fb_info.h @@ -116,6 +116,18 @@ static inline bool_t fb_is_rgba8888(fb_info_t* fb) { } }
+static inline bool_t fb_is_argb8888(fb_info_t* fb) {
ifndef FBIO_WAITFORVSYNC
define FBIO_WAITFORVSYNC _IOW('F', 0x20, u_int32_t)
endif /FBIO_WAITFORVSYNC/
diff --git a/awtk-port/lcd_linux_fb.c b/awtk-port/lcd_linux_fb.c old mode 100644 new mode 100755 index 1cac9bb..fdf30a0 --- a/awtk-port/lcd_linux_fb.c +++ b/awtk-port/lcd_linux_fb.c @@ -86,6 +86,8 @@ static lcd_t lcd_linux_create_flushable(fb_info_t fb) { lcd = lcd_mem_bgra8888_create_double_fb(w, h, online_fb, fb->fbmem1); } else if (fb_is_rgba8888(fb)) { lcd = lcd_mem_rgba8888_create_double_fb(w, h, online_fb, fb->fbmem1);
} else { assert(!"not supported framebuffer format."); } @@ -157,6 +159,8 @@ static lcd_t lcd_linux_create_swappable(fb_info_t fb) { lcd = lcd_mem_bgra8888_create_single_fb(w, h, fbmem); } else if (fb_is_rgba8888(fb)) { lcd = lcd_mem_rgba8888_create_single_fb(w, h, fbmem);