diff --git a/src/draw/lv_draw_buf.c b/src/draw/lv_draw_buf.c index 06e67ed25..a6dc29bb1 100644 --- a/src/draw/lv_draw_buf.c +++ b/src/draw/lv_draw_buf.c @@ -83,6 +83,16 @@ lv_draw_buf_handlers_t * lv_draw_buf_get_handlers(void) return &default_handlers; } +lv_draw_buf_handlers_t * lv_draw_buf_get_font_handlers(void) +{ + return &font_draw_buf_handlers; +} + +lv_draw_buf_handlers_t * lv_draw_buf_get_image_handlers(void) +{ + return &image_cache_draw_buf_handlers; +} + uint32_t lv_draw_buf_width_to_stride(uint32_t w, lv_color_format_t color_format) { return lv_draw_buf_width_to_stride_ex(&default_handlers, w, color_format); diff --git a/src/draw/lv_draw_buf.h b/src/draw/lv_draw_buf.h index f491aa97a..22b09de0a 100644 --- a/src/draw/lv_draw_buf.h +++ b/src/draw/lv_draw_buf.h @@ -129,6 +129,9 @@ void lv_draw_buf_handlers_init(lv_draw_buf_handlers_t * handlers, * @return pointer to the struct of handlers */ lv_draw_buf_handlers_t * lv_draw_buf_get_handlers(void); +lv_draw_buf_handlers_t * lv_draw_buf_get_font_handlers(void); +lv_draw_buf_handlers_t * lv_draw_buf_get_image_handlers(void); + /** * Align the address of a buffer. The buffer needs to be large enough for the real data after alignment diff --git a/src/draw/nxp/vglite/lv_draw_buf_vglite.c b/src/draw/nxp/vglite/lv_draw_buf_vglite.c index ae9b59a5e..588e1f84c 100644 --- a/src/draw/nxp/vglite/lv_draw_buf_vglite.c +++ b/src/draw/nxp/vglite/lv_draw_buf_vglite.c @@ -51,8 +51,12 @@ static void _invalidate_cache(const lv_draw_buf_t * draw_buf, const lv_area_t * void lv_draw_buf_vglite_init_handlers(void) { lv_draw_buf_handlers_t * handlers = lv_draw_buf_get_handlers(); + lv_draw_buf_handlers_t * font_handlers = lv_draw_buf_get_font_handlers(); + lv_draw_buf_handlers_t * image_handlers = lv_draw_buf_get_image_handlers(); handlers->invalidate_cache_cb = _invalidate_cache; + font_handlers->invalidate_cache_cb = _invalidate_cache; + image_handlers->invalidate_cache_cb = _invalidate_cache; } /**********************