#pragma once #include #include #ifdef __cplusplus extern "C" { #endif typedef struct { uint16_t color; uint16_t count; } lcd_direct_rle_run_t; typedef struct { const lcd_direct_rle_run_t *runs; uint32_t run_count; const char *path; } lcd_direct_image_t; typedef struct { const lcd_direct_rle_run_t *runs; uint32_t run_count; const char *path; uint16_t width; uint16_t height; } lcd_direct_icon_t; typedef struct { uint16_t icon_id; uint16_t x; uint16_t y; } lcd_direct_icon_draw_t; #define LCD_DIRECT_NO_ICON 0xFFFFU #define LCD_DIRECT_DEFAULT_ICON_COUNT 5U const lcd_direct_image_t *lcd_direct_default_image(void); const lcd_direct_image_t *lcd_direct_asset_frame(const char *asset_dir, uint8_t frame_index); const lcd_direct_icon_t *lcd_direct_icon(uint16_t icon_id); const lcd_direct_icon_draw_t *lcd_direct_default_icon_sequence(size_t *out_count); #ifdef __cplusplus } #endif