#ifdef USE_SDL_GPU #define SDL_MAIN_HANDLED /*To fix SDL's "undefined reference to WinMain" issue*/ #include #include "lvgl/lvgl.h" #include "lvgl/lv_conf.h" #include "lv_drivers/sdl/sdl_gpu.h" void hal_sdl_init(lv_coord_t hor_res, lv_coord_t ver_res, int rotated) { /* Use the 'monitor' driver which creates window on PC's monitor to simulate a display*/ monitor_init(); /* Tick init. * You have to call 'lv_tick_inc()' in periodically to inform LittelvGL about * how much time were elapsed Create an SDL thread to do this*/ SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_WARN); /*Create a display*/ static lv_disp_drv_t disp_drv; disp_drv.rotated = rotated; sdl_disp_drv_init(&disp_drv, hor_res, ver_res); lv_disp_t * disp = lv_disp_drv_register(&disp_drv); #if 0 lv_theme_t * th = lv_theme_default_init(disp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), LV_THEME_DEFAULT_DARK, LV_FONT_DEFAULT); lv_disp_set_theme(disp, th); lv_group_t * g = lv_group_create(); lv_group_set_default(g); /* Add the mouse as input device * Use the 'mouse' driver which reads the PC's mouse*/ //mouse_init(); static lv_indev_drv_t indev_drv_1; lv_indev_drv_init(&indev_drv_1); /*Basic initialization*/ indev_drv_1.type = LV_INDEV_TYPE_POINTER; /*This function will be called periodically (by the library) to get the mouse position and state*/ indev_drv_1.read_cb = sdl_mouse_read; lv_indev_t *mouse_indev = lv_indev_drv_register(&indev_drv_1); if (!mouse_indev) LV_LOG_WARN("Register indev failed"); //keyboard_init(); static lv_indev_drv_t indev_drv_2; lv_indev_drv_init(&indev_drv_2); /*Basic initialization*/ indev_drv_2.type = LV_INDEV_TYPE_KEYPAD; indev_drv_2.read_cb = sdl_keyboard_read; lv_indev_t *kb_indev = lv_indev_drv_register(&indev_drv_2); lv_indev_set_group(kb_indev, g); //mousewheel_init(); static lv_indev_drv_t indev_drv_3; lv_indev_drv_init(&indev_drv_3); /*Basic initialization*/ indev_drv_3.type = LV_INDEV_TYPE_ENCODER; indev_drv_3.read_cb = sdl_mousewheel_read; lv_indev_t * enc_indev = lv_indev_drv_register(&indev_drv_3); lv_indev_set_group(enc_indev, g); #endif } #endif