mirror of
https://github.com/stasenso/rp_pico_display_engine.git
synced 2026-06-26 21:32:41 +03:00
display: refine public display API header
This commit is contained in:
+19
-19
@@ -10,7 +10,7 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
=== Compile-time configuration
|
=== Конфигурация времени компиляции
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -26,24 +26,24 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
=== Modes
|
=== Режимы
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* SAFE:
|
* SAFE:
|
||||||
* - swap управляется engine
|
* - сменой буферов управляет движок
|
||||||
* - нет tearing при 2 буферах
|
* - нет разрывов кадра при 2 буферах
|
||||||
* - возможны блокировки
|
* - возможны блокировки
|
||||||
*/
|
*/
|
||||||
DISPLAY_MODE_SAFE = 0,
|
DISPLAY_MODE_SAFE = 0,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* RAW:
|
* RAW:
|
||||||
* - swap управляется пользователем
|
* - сменой буферов управляет пользователь
|
||||||
* - engine не блокирует
|
* - движок не блокирует
|
||||||
* - tearing возможен
|
* - возможны разрывы кадра
|
||||||
*/
|
*/
|
||||||
DISPLAY_MODE_RAW
|
DISPLAY_MODE_RAW
|
||||||
|
|
||||||
@@ -51,14 +51,14 @@ typedef enum
|
|||||||
|
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
=== Callback
|
=== Колбэк
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
typedef void (*display_frame_done_cb_t)(void);
|
typedef void (*display_frame_done_cb_t)(void);
|
||||||
|
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
=== Configuration
|
=== Конфигурация
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
@@ -85,24 +85,24 @@ typedef struct
|
|||||||
|
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
=== Lifecycle
|
=== Жизненный цикл
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Инициализация display engine.
|
* Инициализация движка дисплея.
|
||||||
* Выделяет буферы и инициализирует HW.
|
* Выделяет буферы и инициализирует HW.
|
||||||
*/
|
*/
|
||||||
void display_init(const display_config_t* cfg);
|
void display_init(const display_config_t* cfg);
|
||||||
|
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
=== Buffer access
|
=== Доступ к буферам
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Буфер для рисования.
|
* Буфер для рисования.
|
||||||
*
|
*
|
||||||
* SAFE + 1 buffer:
|
* SAFE + 1 буфер:
|
||||||
* может блокировать пока DMA активен.
|
* может блокировать пока DMA активен.
|
||||||
*
|
*
|
||||||
* RAW:
|
* RAW:
|
||||||
@@ -118,11 +118,11 @@ uint16_t* display_get_scanout_buffer(void);
|
|||||||
|
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
=== Buffer control (RAW mode only)
|
=== Управление буферами (только режим RAW)
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Явная смена ролей draw/scanout.
|
* Явная смена ролей буферов рисования и вывода.
|
||||||
*
|
*
|
||||||
* Возвращает false если:
|
* Возвращает false если:
|
||||||
* - не RAW режим
|
* - не RAW режим
|
||||||
@@ -133,11 +133,11 @@ bool display_swap_buffers(void);
|
|||||||
|
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
=== Frame control
|
=== Управление кадром
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Запуск передачи текущего scanout буфера.
|
* Запуск передачи текущего буфера вывода.
|
||||||
*
|
*
|
||||||
* Возвращает false если DMA активен.
|
* Возвращает false если DMA активен.
|
||||||
*/
|
*/
|
||||||
@@ -164,11 +164,11 @@ void display_poll(void);
|
|||||||
|
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
=== IRQ hook
|
=== Хук IRQ
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Должен вызываться из реального DMA IRQ handler.
|
* Должен вызываться из реального обработчика DMA IRQ.
|
||||||
*/
|
*/
|
||||||
void display_dma_irq_handler(void);
|
void display_dma_irq_handler(void);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user