在lv_draw_sw_init_ctx 的函数中,官方是有个比较标准的实现方式: voidmy_draw_ctx_init(lv_disp_drv_t*drv,lv_draw_ctx_t*draw_ctx){/*Initialize the parent type first */lv_draw_sw_init_ctx(drv,draw_ctx);/*Change some callbacks*/my_draw_ctx_t*my_draw_ctx=(my_draw_ctx_t*)draw_ctx...
LVGL version v9.0.1-dev What happened? On Renesas EK-RA8D1 setting LV_USE_DRAW_SW_ASM to LV_DRAW_SW_ASM_HELIUM is twice as slow as pure SW rendering. See the results here. Note the pages at the bottom for CPU usage and render time charts...
回溯分析发现是 lv_draw_sw_letter() 内部通过 lv_font_get_glyph_dsc() 获取: C++ voidlv_draw_sw_letter(lv_draw_ctx_t* draw_ctx,constlv_draw_label_dsc_t* dsc,constlv_point_t* pos_p,uint32_tletter){lv_font_glyph_dsc_tg;boolg_ret =lv_font_get_glyph_dsc(dsc->font, &g, letter...
由于我们的编译器不支持PRIX32这个常量的定义,需要修改lvglsrcdrawswlv_draw_sw_letter.c文件,将其中一句log注释掉: 也可以把这句改为: LV_LOG_WARN("lv_draw_letter: glyph dsc. not found for U+X%", letter); 复制代码 3、修改内存相关选项 LVGL默认是使用基于TLSF 的内存管理算法,不过它开的缓冲区对...
feat(draw/sw): added support for LV_COLOR_FORMAT_L8 (#5800) 10个月前 .typos.toml chore: minor docs and other updates 6个月前 CMakeLists.txt feat(CI): Windows MSVC and GCC build (#6015) 10个月前 CMakePresets.json optinally install demos and libs as well (#5387) ...
lv_conf.h,配置文件。 移植过来后大概的目录结构 然后建了个 lvgl 文件夹一股脑塞进去。记得要配置 CMake(Keil 的话就是配置 IncludePaths,这里用 Keil 好像有点痛苦的),而且都要一个一个加进去,因为里面的 #include 路径都挺,呃,一堆上级目录符号,如果不想每个都改的话不如把所有目录都加进 CMake,这样就...
上面的 dest_buf 局部变量来自 draw_ctx->buf 变量,代码和 call stack 对应上了。 call stack 再回溯一步,转到函数 lv_draw_sw_blend() ,它的两个入口参数 draw_ctx 和 dsc 都看不到内容了,但是局部变量 blend_area 能看到,blend_area.x2 = 0xEF = 239 屏幕的最右边,blend_area.y2 = 0x09 = 9...
#define LV_DRAW_SW_SUPPORT_RGB565A8 1 #define LV_DRAW_SW_SUPPORT_RGB888 1 #define LV_DRAW_SW_SUPPORT_XRGB8888 1 #define LV_DRAW_SW_SUPPORT_ARGB8888 1 #define LV_DRAW_SW_SUPPORT_L8 1 #define LV_DRAW_SW_SUPPORT_AL88 1 #define LV_DRAW_SW_SUPPORT_A8 1 #define LV_DRAW_SW_SUPPORT...
修改LV_FONT_MONTSERRAT_22 为1: 10.3、示例3 #include "../../lv_examples.h" //TODO #if LV_USE_ROLLER && LV_DRAW_SW_COMPLEX && LV_BUILD_EXAMPLES && 0 static void mask_event_cb(lv_event_t * e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t * obj = lv_event_...
I found that the code always gets stuck at lv_event_send(obj, LV_EVENT_DRAW_MAIN, draw_ctx), and ultimately, it gets stuck at lv_draw_sw_rect. The call process of lv_draw_sw_rect is as follows:The program stuck in vg_lite_finish() in the functi...