mirror of
https://github.com/lvgl/lvgl.git
synced 2026-08-17 18:22:42 +08:00
refactor(draw_buf): add inline tag for draw buffer flag functions (#9229)
Signed-off-by: rongyichang <rongyichang@xiaomi.com> Co-authored-by: Neo Xu <neo.xu1990@gmail.com>
This commit is contained in:
+2
-19
@@ -305,8 +305,7 @@ lv_draw_buf_t * lv_draw_buf_dup_ex(const lv_draw_buf_handlers_t * handlers, cons
|
||||
return NULL;
|
||||
}
|
||||
|
||||
new_buf->header.flags = draw_buf->header.flags;
|
||||
new_buf->header.flags |= LV_IMAGE_FLAGS_MODIFIABLE | LV_IMAGE_FLAGS_ALLOCATED;
|
||||
lv_draw_buf_set_flag(new_buf, draw_buf->header.flags | LV_IMAGE_FLAGS_MODIFIABLE | LV_IMAGE_FLAGS_ALLOCATED);
|
||||
|
||||
/*Choose the smaller size to copy*/
|
||||
uint32_t size = LV_MIN(draw_buf->data_size, new_buf->data_size);
|
||||
@@ -349,8 +348,7 @@ void lv_draw_buf_destroy(lv_draw_buf_t * draw_buf)
|
||||
LV_ASSERT_NULL(draw_buf);
|
||||
if(draw_buf == NULL) return;
|
||||
LV_PROFILER_DRAW_BEGIN;
|
||||
|
||||
if(draw_buf->header.flags & LV_IMAGE_FLAGS_ALLOCATED) {
|
||||
if(lv_draw_buf_has_flag(draw_buf, LV_IMAGE_FLAGS_ALLOCATED)) {
|
||||
LV_ASSERT_NULL(draw_buf->handlers);
|
||||
|
||||
const lv_draw_buf_handlers_t * handlers = draw_buf->handlers;
|
||||
@@ -514,21 +512,6 @@ void lv_draw_buf_set_palette(lv_draw_buf_t * draw_buf, uint8_t index, lv_color32
|
||||
palette[index] = color;
|
||||
}
|
||||
|
||||
bool lv_draw_buf_has_flag(const lv_draw_buf_t * draw_buf, lv_image_flags_t flag)
|
||||
{
|
||||
return draw_buf->header.flags & flag;
|
||||
}
|
||||
|
||||
void lv_draw_buf_set_flag(lv_draw_buf_t * draw_buf, lv_image_flags_t flag)
|
||||
{
|
||||
draw_buf->header.flags |= flag;
|
||||
}
|
||||
|
||||
void lv_draw_buf_clear_flag(lv_draw_buf_t * draw_buf, lv_image_flags_t flag)
|
||||
{
|
||||
draw_buf->header.flags &= ~flag;
|
||||
}
|
||||
|
||||
lv_result_t lv_draw_buf_from_image(lv_draw_buf_t * buf, const lv_image_dsc_t * img)
|
||||
{
|
||||
const lv_result_t res = lv_draw_buf_init(buf, img->header.w, img->header.h, img->header.cf, img->header.stride,
|
||||
|
||||
+29
-3
@@ -314,11 +314,37 @@ lv_result_t lv_draw_buf_adjust_stride(lv_draw_buf_t * src, uint32_t stride);
|
||||
*/
|
||||
lv_result_t lv_draw_buf_premultiply(lv_draw_buf_t * draw_buf);
|
||||
|
||||
bool lv_draw_buf_has_flag(const lv_draw_buf_t * draw_buf, lv_image_flags_t flag);
|
||||
|
||||
void lv_draw_buf_set_flag(lv_draw_buf_t * draw_buf, lv_image_flags_t flag);
|
||||
/**
|
||||
* Check if a draw buffer has a given flag.
|
||||
* @param draw_buf pointer to a draw buffer
|
||||
* @param flag the flag to check
|
||||
* @return true: the flag is set, false: the flag is not set
|
||||
*/
|
||||
static inline bool lv_draw_buf_has_flag(const lv_draw_buf_t * draw_buf, lv_image_flags_t flag)
|
||||
{
|
||||
return draw_buf->header.flags & flag;
|
||||
}
|
||||
|
||||
void lv_draw_buf_clear_flag(lv_draw_buf_t * draw_buf, lv_image_flags_t flag);
|
||||
/**
|
||||
* Set a flag to a draw buffer.
|
||||
* @param draw_buf pointer to a draw buffer
|
||||
* @param flag the flag to set
|
||||
*/
|
||||
static inline void lv_draw_buf_set_flag(lv_draw_buf_t * draw_buf, lv_image_flags_t flag)
|
||||
{
|
||||
draw_buf->header.flags |= flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear a flag from a draw buffer.
|
||||
* @param draw_buf pointer to a draw buffer
|
||||
* @param flag the flag to clear
|
||||
*/
|
||||
static inline void lv_draw_buf_clear_flag(lv_draw_buf_t * draw_buf, lv_image_flags_t flag)
|
||||
{
|
||||
draw_buf->header.flags &= ~flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* As of now, draw buf share same definition as `lv_image_dsc_t`.
|
||||
|
||||
@@ -218,7 +218,7 @@ static lv_result_t decoder_open_variable(lv_image_decoder_t * decoder, lv_image_
|
||||
if(dsc->args.premultiply) {
|
||||
/* pre-multiply palette */
|
||||
image_color32_pre_mul((lv_color32_t *)dest, palette_size);
|
||||
draw_buf->header.flags |= LV_IMAGE_FLAGS_PREMULTIPLIED;
|
||||
lv_draw_buf_set_flag(draw_buf, LV_IMAGE_FLAGS_PREMULTIPLIED);
|
||||
}
|
||||
|
||||
/* move to index image map */
|
||||
@@ -298,7 +298,7 @@ static lv_result_t decoder_open_file(lv_image_decoder_t * decoder, lv_image_deco
|
||||
if(dsc->args.premultiply) {
|
||||
/* pre-multiply palette */
|
||||
image_color32_pre_mul((lv_color32_t *)dest, palette_size);
|
||||
draw_buf->header.flags |= LV_IMAGE_FLAGS_PREMULTIPLIED;
|
||||
lv_draw_buf_set_flag(draw_buf, LV_IMAGE_FLAGS_PREMULTIPLIED);
|
||||
}
|
||||
|
||||
src_temp = lv_malloc(src_stride);
|
||||
|
||||
Reference in New Issue
Block a user