feat(cache): new cache framework (#5049)
Co-authored-by: _VIFEXTech <vifextech@foxmail.com>
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
#include "../../display/lv_display.h"
|
||||
#include "../../draw/sw/lv_draw_sw.h"
|
||||
#include "../../stdlib/lv_string.h"
|
||||
|
||||
#include "../../misc/cache/lv_cache.h"
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
@@ -79,12 +79,11 @@ void lv_canvas_set_buffer(lv_obj_t * obj, void * buf, int32_t w, int32_t h, lv_c
|
||||
|
||||
const void * src = lv_image_get_src(obj);
|
||||
if(src) {
|
||||
lv_cache_lock();
|
||||
lv_cache_invalidate_by_src(src, LV_CACHE_SRC_TYPE_POINTER);
|
||||
lv_cache_unlock();
|
||||
lv_image_cache_drop(src);
|
||||
}
|
||||
|
||||
lv_image_set_src(obj, canvas->draw_buf);
|
||||
lv_image_cache_drop(canvas->draw_buf);
|
||||
}
|
||||
|
||||
void lv_canvas_set_draw_buf(lv_obj_t * obj, lv_draw_buf_t * draw_buf)
|
||||
@@ -97,12 +96,11 @@ void lv_canvas_set_draw_buf(lv_obj_t * obj, lv_draw_buf_t * draw_buf)
|
||||
|
||||
const void * src = lv_image_get_src(obj);
|
||||
if(src) {
|
||||
lv_cache_lock();
|
||||
lv_cache_invalidate_by_src(src, LV_CACHE_SRC_TYPE_POINTER);
|
||||
lv_cache_unlock();
|
||||
lv_image_cache_drop(src);
|
||||
}
|
||||
|
||||
lv_image_set_src(obj, draw_buf);
|
||||
lv_image_cache_drop(draw_buf);
|
||||
}
|
||||
|
||||
void lv_canvas_set_px(lv_obj_t * obj, int32_t x, int32_t y, lv_color_t color, lv_opa_t opa)
|
||||
@@ -385,9 +383,7 @@ static void lv_canvas_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
|
||||
lv_canvas_t * canvas = (lv_canvas_t *)obj;
|
||||
if(canvas->draw_buf == NULL) return;
|
||||
|
||||
lv_cache_lock();
|
||||
lv_cache_invalidate_by_src(canvas->draw_buf, LV_CACHE_SRC_TYPE_POINTER);
|
||||
lv_cache_unlock();
|
||||
lv_image_cache_drop(&canvas->draw_buf);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user