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:
@@ -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);
|
||||
}
|
||||
|
||||
/**********************
|
||||
|
||||
Reference in New Issue
Block a user