mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-14 06:42:58 +08:00
feat(dma2d): add support for ARGB1555 color on top of RGB565 format (#7555)
Signed-off-by: Felipe Neves <felipe@lvgl.io>
This commit is contained in:
parent
4e52b15508
commit
5563787cac
@ -292,4 +292,8 @@ If ``LV_USE_DRAW_DMA2D_INTERRUPT`` is enabled then you are required to call
|
|||||||
:cpp:expr:`lv_draw_dma2d_transfer_complete_interrupt_handler` whenever the DMA2D
|
:cpp:expr:`lv_draw_dma2d_transfer_complete_interrupt_handler` whenever the DMA2D
|
||||||
"transfer complete" global interrupt is received.
|
"transfer complete" global interrupt is received.
|
||||||
|
|
||||||
|
DMA2D also makes possible to mix layers that have color format on
|
||||||
|
:c:macro:`LV_COLOR_FORMAT_ARGB1555` on top of :c:macro:`LV_COLOR_FORMAT_RGB565`
|
||||||
|
layers.
|
||||||
|
|
||||||
If your STM device has a NeoChrom GPU, you can use the :ref:`Nema GFX renderer <nema_gfx>` instead.
|
If your STM device has a NeoChrom GPU, you can use the :ref:`Nema GFX renderer <nema_gfx>` instead.
|
||||||
|
@ -103,6 +103,10 @@ partial buffers in parallel with other LVGL tasks, whether or not OS is
|
|||||||
enabled. If the display is not partial, then there is no need to enable this
|
enabled. If the display is not partial, then there is no need to enable this
|
||||||
option.
|
option.
|
||||||
|
|
||||||
|
Additionally it is possible to mix layers that have color format on
|
||||||
|
:c:macro:`LV_COLOR_FORMAT_ARGB1555` on top of :c:macro:`LV_COLOR_FORMAT_RGB565`
|
||||||
|
layers using the DMA2D.
|
||||||
|
|
||||||
It must not be enabled at the same time as :c:macro:`LV_USE_DRAW_DMA2D`.
|
It must not be enabled at the same time as :c:macro:`LV_USE_DRAW_DMA2D`.
|
||||||
See the :ref:`DMA2D support <dma2d>`.
|
See the :ref:`DMA2D support <dma2d>`.
|
||||||
|
|
||||||
|
@ -131,6 +131,8 @@ lv_draw_dma2d_output_cf_t lv_draw_dma2d_cf_to_dma2d_output_cf(lv_color_format_t
|
|||||||
return LV_DRAW_DMA2D_OUTPUT_CF_RGB888;
|
return LV_DRAW_DMA2D_OUTPUT_CF_RGB888;
|
||||||
case LV_COLOR_FORMAT_RGB565:
|
case LV_COLOR_FORMAT_RGB565:
|
||||||
return LV_DRAW_DMA2D_OUTPUT_CF_RGB565;
|
return LV_DRAW_DMA2D_OUTPUT_CF_RGB565;
|
||||||
|
case LV_COLOR_FORMAT_ARGB1555:
|
||||||
|
return LV_DRAW_DMA2D_OUTPUT_CF_ARGB1555;
|
||||||
default:
|
default:
|
||||||
LV_ASSERT_MSG(false, "unsupported output color format");
|
LV_ASSERT_MSG(false, "unsupported output color format");
|
||||||
}
|
}
|
||||||
@ -310,7 +312,8 @@ static int32_t evaluate_cb(lv_draw_unit_t * draw_unit, lv_draw_task_t * task)
|
|||||||
&& (dsc->header.cf == LV_COLOR_FORMAT_ARGB8888
|
&& (dsc->header.cf == LV_COLOR_FORMAT_ARGB8888
|
||||||
|| dsc->header.cf == LV_COLOR_FORMAT_XRGB8888
|
|| dsc->header.cf == LV_COLOR_FORMAT_XRGB8888
|
||||||
|| dsc->header.cf == LV_COLOR_FORMAT_RGB888
|
|| dsc->header.cf == LV_COLOR_FORMAT_RGB888
|
||||||
|| dsc->header.cf == LV_COLOR_FORMAT_RGB565)
|
|| dsc->header.cf == LV_COLOR_FORMAT_RGB565
|
||||||
|
|| dsc->header.cf == LV_COLOR_FORMAT_ARGB1555)
|
||||||
&& (dsc->base.layer->color_format == LV_COLOR_FORMAT_ARGB8888
|
&& (dsc->base.layer->color_format == LV_COLOR_FORMAT_ARGB8888
|
||||||
|| dsc->base.layer->color_format == LV_COLOR_FORMAT_XRGB8888
|
|| dsc->base.layer->color_format == LV_COLOR_FORMAT_XRGB8888
|
||||||
|| dsc->base.layer->color_format == LV_COLOR_FORMAT_RGB888
|
|| dsc->base.layer->color_format == LV_COLOR_FORMAT_RGB888
|
||||||
|
Loading…
x
Reference in New Issue
Block a user