refact(layer): use draw_buf to replace raw pointers (#5254)

Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com>
Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com>
Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
Co-authored-by: Xu Xingliang <xuxingliang@xiaomi.com>
This commit is contained in:
_VIFEXTech
2024-01-14 20:47:20 +08:00
committed by GitHub
parent 4dd7773e25
commit 8701dece65
14 changed files with 98 additions and 118 deletions

View File

@@ -45,24 +45,18 @@ void lv_draw_vg_lite_layer(lv_draw_unit_t * draw_unit, const lv_draw_image_dsc_t
/*It can happen that nothing was draw on a layer and therefore its buffer is not allocated.
*In this case just return. */
if(layer->buf == NULL)
if(layer->draw_buf == NULL)
return;
lv_image_dsc_t img_dsc;
lv_memzero(&img_dsc, sizeof(lv_image_dsc_t));
img_dsc.header.w = lv_area_get_width(&layer->buf_area);
img_dsc.header.h = lv_area_get_height(&layer->buf_area);
img_dsc.header.cf = layer->color_format;
img_dsc.data = layer->buf;
/* The GPU output is premultiplied RGB */
img_dsc.header.flags = LV_IMAGE_FLAGS_PREMULTIPLIED;
/* The GPU output should already be premultiplied RGB */
if((layer->draw_buf->header.flags & LV_IMAGE_FLAGS_PREMULTIPLIED) == 0) {
LV_LOG_WARN("GPU output is not premultiplied RGB.");
layer->draw_buf->header.flags |= LV_IMAGE_FLAGS_PREMULTIPLIED;
}
lv_draw_image_dsc_t new_draw_dsc = *draw_dsc;
new_draw_dsc.src = &img_dsc;
new_draw_dsc.src = layer->draw_buf;
lv_draw_vg_lite_img(draw_unit, &new_draw_dsc, coords);
lv_image_cache_drop(&img_dsc);
}
/**********************