lv_draw_unit_t is only used within rgb_panel sample.
 
Symbols
loading...
Files
loading...
SummarySyntaxReferences

Fields

Field
Declared as
Description
The target_layer on which drawing should happen.
const lv_area_t *
int32_t (*)(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
Called to try to assign a draw task to itself. `lv_draw_get_next_available_task` can be used to get an independent draw task. A draw task should be assign only if the draw unit can draw it too.
int32_t (*)(lv_draw_unit_t * draw_unit, lv_draw_task_t * task)
int32_t (*)(lv_draw_unit_t * draw_unit)
Called to signal the unit to complete all tasks in order to return their ready status. This callback can be implemented in case of asynchronous task processing. Below is an example to show the difference between synchronous and asynchronous: Synchronous: LVGL thread DRAW thread HW task1 --> submit --> Receive task1 wait_for_finish() state = READY <-- Complete task1 task2 --> submit --> Receive task2 wait_for_finish() task2->state = READY <-- Complete task2 task3 --> submit --> Receive task3 wait_for_finish() state = READY <-- Complete task3 task4 --> submit --> Receive task4 wait_for_finish() state = READY <-- Complete task4 NO MORE TASKS Asynchronous: LVGL thread DRAW thread HW is IDLE task1 --> queue task1 submit --> Receive task1 task2 --> queue task2 is BUSY (with task1) task3 --> queue task3 still BUSY (with task1) task4 --> queue task4 becomes IDLE state = READY <-- Complete task1 submit --> Receive task2, task3, task4 NO MORE TASKS wait_for_finish_cb() wait_for_finish() <-- Complete task2, task3, task4 state = READY <-- state = READY <-- state = READY <--.
int32_t (*)(lv_draw_unit_t * draw_unit)
Called to delete draw unit.

References

from examples