feat(sdl): handle the tick internally and automatically

This commit is contained in:
Gabor Kiss-Vamosi
2023-03-08 10:15:58 +01:00
parent 0107879924
commit 5e75754095
3 changed files with 23 additions and 4 deletions

View File

@@ -23,7 +23,7 @@
COLOR SETTINGS
*====================*/
/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/
/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 24 (RGB888), 32 (ARGB8888)*/
#define LV_COLOR_DEPTH 16
#define LV_COLOR_CHROMA_KEY lv_color_hex(0x00ff00)
@@ -36,7 +36,7 @@
#define LV_USE_BUILTIN_MALLOC 1
#if LV_USE_BUILTIN_MALLOC
/*Size of the memory available for `lv_malloc()` in bytes (>= 2kB)*/
#define LV_MEM_SIZE (128U * 1024U) /*[bytes]*/
#define LV_MEM_SIZE (48U * 1024U) /*[bytes]*/
/*Size of the memory expand for `lv_malloc()` in bytes*/
#define LV_MEM_POOL_EXPAND_SIZE 0

View File

@@ -11,6 +11,7 @@
#include <stdbool.h>
#include "../../core/lv_refr.h"
#define SDL_MAIN_HANDLED /*To fix SDL's "undefined reference to WinMain" issue*/
#include LV_SDL_INCLUDE_PATH
/*********************
@@ -47,6 +48,7 @@ void _lv_sdl_mouse_handler(SDL_Event * event);
void _lv_sdl_mousewheel_handler(SDL_Event * event);
void _lv_sdl_keyboard_handler(SDL_Event * event);
static void res_chg_event_cb(lv_event_t * e);
static int tick_thread(void * ptr);
/**********************
* STATIC VARIABLES
@@ -68,6 +70,8 @@ lv_disp_t * lv_sdl_window_create(lv_coord_t hor_res, lv_coord_t ver_res)
SDL_Init(SDL_INIT_VIDEO);
SDL_StartTextInput();
event_handler_timer = lv_timer_create(sdl_event_handler, 5, NULL);
SDL_CreateThread(tick_thread, "LVGL thread", NULL);
inited = true;
}
@@ -295,4 +299,19 @@ static void res_chg_event_cb(lv_event_t * e)
texture_resize(disp);
}
static int tick_thread(void * ptr)
{
LV_UNUSED(ptr);
static uint32_t tick_prev = 0;
while(1) {
uint32_t tick_now = SDL_GetTicks();
lv_tick_inc(tick_now - tick_prev);
tick_prev = tick_now;
SDL_Delay(5);
}
return 0;
}
#endif /*LV_USE_SDL*/

View File

@@ -61,7 +61,7 @@
COLOR SETTINGS
*====================*/
/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/
/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 24 (RGB888), 32 (ARGB8888)*/
#ifndef LV_COLOR_DEPTH
#ifdef CONFIG_LV_COLOR_DEPTH
#define LV_COLOR_DEPTH CONFIG_LV_COLOR_DEPTH
@@ -100,7 +100,7 @@
#ifdef CONFIG_LV_MEM_SIZE
#define LV_MEM_SIZE CONFIG_LV_MEM_SIZE
#else
#define LV_MEM_SIZE (128U * 1024U) /*[bytes]*/
#define LV_MEM_SIZE (48U * 1024U) /*[bytes]*/
#endif
#endif