mirror of
https://github.com/stasenso/rp_pico_display_engine.git
synced 2026-10-26 01:23:33 +03:00
display: simplify safe buffer contract and update Thermometr example
This commit is contained in:
+26
-3
@@ -286,14 +286,14 @@ void display_init(const display_config_t* cfg)
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
|
||||
uint16_t* display_get_draw_buffer(void)
|
||||
uint16_t* display_try_acquire_draw_buffer(void)
|
||||
{
|
||||
if (ctx.mode == DISPLAY_MODE_SAFE &&
|
||||
ctx.buffer_count == 1)
|
||||
{
|
||||
while (ctx.dma_busy)
|
||||
if (ctx.dma_busy)
|
||||
{
|
||||
/* активное ожидание */
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,6 +301,29 @@ uint16_t* display_get_draw_buffer(void)
|
||||
}
|
||||
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
|
||||
uint16_t* display_acquire_draw_buffer_blocking(void)
|
||||
{
|
||||
uint16_t* buf = NULL;
|
||||
|
||||
while (buf == NULL)
|
||||
{
|
||||
buf = display_try_acquire_draw_buffer();
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
|
||||
uint16_t* display_get_draw_buffer(void)
|
||||
{
|
||||
return display_try_acquire_draw_buffer();
|
||||
}
|
||||
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
|
||||
uint16_t* display_get_scanout_buffer(void)
|
||||
|
||||
Reference in New Issue
Block a user