diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9f07fe2..3d33559 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,18 +3,48 @@ project(lvgl)
 set(CMAKE_C_STANDARD 11)#C11
 set(CMAKE_CXX_STANDARD 17)#C17
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(SDK_ROOT "$ENV{SDKPATH}")
 
-INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
+include_directories(${PROJECT_SOURCE_DIR})
+include_directories(${SDK_ROOT}/sysroots/aarch64-tdx-linux/usr/include/libdrm)
 
-file(GLOB_RECURSE INCLUDES "lv_drivers/*.h" "lv_demos/*.h"  "lvgl/*.h"  "./*.h" )
-file(GLOB_RECURSE SOURCES  "lv_drivers/*.c" "lv_demos/*.c"  "lvgl/*.c" )
+add_subdirectory(lvgl)
+add_subdirectory(lv_drivers)
+add_subdirectory(lv_demos)
 
-SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) 
-SET(CMAKE_CXX_FLAGS "-O3")
+add_executable(main
+    main.c
+    mouse_cursor_icon.c
+)
 
-find_package(SDL2 REQUIRED SDL2)
-include_directories(${SDL2_INCLUDE_DIRS})
-add_executable(main main.c mouse_cursor_icon.c ${SOURCES} ${INCLUDES})
-add_compile_definitions(LV_CONF_INCLUDE_SIMPLE)
-target_link_libraries(main PRIVATE SDL2 )
-add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main)
+option(LVGL_WAYLAND_SDL2_GPU BOOLEAN ON)
+
+
+if (${LVGL_WAYLAND_SDL2_GPU})
+    target_compile_definitions(lvgl
+        PUBLIC
+        LV_CONF_INCLUDE_SIMPLE
+        LVGL_WAYLAND_SDL2_GPU
+    )
+    target_compile_definitions(lv_drivers
+        PUBLIC
+        LV_CONF_INCLUDE_SIMPLE
+        LVGL_WAYLAND_SDL2_GPU
+    )
+    target_compile_definitions(lv_demos
+        PUBLIC
+        LV_CONF_INCLUDE_SIMPLE
+        LVGL_WAYLAND_SDL2_GPU
+    )
+endif()
+
+
+target_link_libraries(main
+    lvgl
+    lv_drivers
+    lv_demos
+)
+target_link_libraries(main libdrm.so)
+target_link_libraries(main libSDL2-2.0.so)
+
+add_custom_target(run COMMAND main DEPENDS main)
diff --git a/lv_conf.h b/lv_conf.h
index 4faa552..b64082d 100644
--- a/lv_conf.h
+++ b/lv_conf.h
@@ -1,6 +1,6 @@
 /**
  * @file lv_conf.h
- * Configuration file for v8.0.0
+ * Configuration file for v8.1.0
  */
 
 #if 1 /*Set it to "1" to enable content*/
@@ -29,12 +29,17 @@
 /*Images pixels with this color will not be drawn if they are  chroma keyed)*/
 #define LV_COLOR_CHROMA_KEY    lv_color_hex(0x00ff00)         /*pure green*/
 
+/* Adjust color mix functions rounding. GPUs might calculate color mix (blending) differently.
+ * 0: round down, 64: round up from x.75, 128: round up from half, 192: round up from x.25, 254: round up */
+#define LV_COLOR_MIX_ROUND_OFS (LV_COLOR_DEPTH == 32 ? 0: 128)
+
+
 /*=========================
    MEMORY SETTINGS
  *=========================*/
 
 /*1: use custom malloc/free, 0: use the built-in `lv_mem_alloc()` and `lv_mem_free()`*/
-#define LV_MEM_CUSTOM      0
+#define LV_MEM_CUSTOM      1
 #if LV_MEM_CUSTOM == 0
 /*Size of the memory available for `lv_mem_alloc()` in bytes (>= 2kB)*/
 #  define LV_MEM_SIZE    (1024U * 1024U)          /*[bytes]*/
@@ -48,6 +53,10 @@
 #  define LV_MEM_CUSTOM_REALLOC   realloc
 #endif     /*LV_MEM_CUSTOM*/
 
+/*Number of the intermediate memory buffer used during rendering and other internal processing mechanisms.
+ *You will see an error log message if there wasn't enough buffers. */
+#define LV_MEM_BUF_MAX_NUM 16
+
 /*Use the standard `memcpy` and `memset` instead of LVGL's own functions. (Might or might not be faster).*/
 #define LV_MEMCPY_MEMSET_STD    0
 
@@ -90,6 +99,13 @@
  *LV_SHADOW_CACHE_SIZE is the max. shadow size to buffer, where shadow size is `shadow_width + radius`
  *Caching has LV_SHADOW_CACHE_SIZE^2 RAM cost*/
 #define LV_SHADOW_CACHE_SIZE    0
+
+/* Set number of maximally cached circle data.
+ * The circumference of 1/4 circle are saved for anti-aliasing
+ * radius * 4 bytes are used per circle (the most often used radiuses are saved)
+ * 0: to disable caching */
+#define LV_CIRCLE_CACHE_SIZE 4
+
 #endif /*LV_DRAW_COMPLEX*/
 
 /*Default image cache size. Image caching keeps the images opened.
@@ -124,6 +140,15 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
 #define LV_USE_GPU_NXP_PXP_AUTO_INIT 0
 #endif
 
+/*Use exnternal renderer*/
+#define LV_USE_EXTERNAL_RENDERER 0
+
+/*Use SDL renderer API. Requires LV_USE_EXTERNAL_RENDERER*/
+#define LV_USE_GPU_SDL 0
+#if LV_USE_GPU_SDL
+#  define LV_GPU_SDL_INCLUDE_PATH <SDL2/SDL.h>
+#endif
+
 /*Use NXP's VG-Lite GPU iMX RTxxx platforms*/
 #define LV_USE_GPU_NXP_VG_LITE   0
 
@@ -132,7 +157,7 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
  *-----------*/
 
 /*Enable the log module*/
-#define LV_USE_LOG      1
+#define LV_USE_LOG      0
 #if LV_USE_LOG
 
 /*How important log should be added:
@@ -181,11 +206,15 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
  *-----------*/
 
 /*1: Show CPU usage and FPS count in the right bottom corner*/
-#define LV_USE_PERF_MONITOR     1
+#define LV_USE_PERF_MONITOR     0
+#if LV_USE_PERF_MONITOR
+#define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
+#endif
 
 /*1: Show the used memory and the memory fragmentation  in the left bottom corner
  * Requires LV_MEM_CUSTOM = 0*/
-#define LV_USE_MEM_MONITOR      1
+#define LV_USE_MEM_MONITOR      0
+
 
 /*1: Draw random colored rectangles over the redrawn areas*/
 #define LV_USE_REFR_DEBUG       0
@@ -356,7 +385,7 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
 
 /*Enable Arabic/Persian processing
  *In these languages characters should be replaced with an other form based on their position in the text*/
-#define LV_USE_ARABIC_PERSIAN_CHARS 1
+#define LV_USE_ARABIC_PERSIAN_CHARS 0
 
 /*==================
  *  WIDGET USAGE
@@ -493,6 +522,14 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
 /*A layout similar to Grid in CSS.*/
 #define LV_USE_GRID     1
 
+/*-----------
+ * Others
+ *----------*/
+
+/*1: Enable API to take snapshot for object*/
+#define LV_USE_SNAPSHOT 1
+
+
 /*==================
 * EXAMPLES
 *==================*/
diff --git a/lv_demo_conf.h b/lv_demo_conf.h
index b8f8bbe..ba8a2df 100644
--- a/lv_demo_conf.h
+++ b/lv_demo_conf.h
@@ -10,9 +10,9 @@
 /*******************
  * GENERAL SETTING
  *******************/
-#define LV_EX_PRINTF       1       /*Enable printf-ing data in demoes and examples*/
-#define LV_EX_KEYBOARD     1       /*Add PC keyboard support to some examples (`lv_drivers` repository is required)*/
-#define LV_EX_MOUSEWHEEL   1       /*Add 'encoder' (mouse wheel) support to some examples (`lv_drivers` repository is required)*/
+#define LV_EX_PRINTF       0       /*Enable printf-ing data in demoes and examples*/
+#define LV_EX_KEYBOARD     0       /*Add PC keyboard support to some examples (`lv_drivers` repository is required)*/
+#define LV_EX_MOUSEWHEEL   0       /*Add 'encoder' (mouse wheel) support to some examples (`lv_drivers` repository is required)*/
 
 /*********************
  * DEMO USAGE
@@ -31,16 +31,18 @@
 #define LV_USE_DEMO_KEYPAD_AND_ENCODER    1
 
 /*Benchmark your system*/
-#define LV_USE_DEMO_BENCHMARK   1
+#define LV_USE_DEMO_BENCHMARK   0
 
 /*Stress test for LVGL*/
-#define LV_USE_DEMO_STRESS     1
+#define LV_USE_DEMO_STRESS     0
 
 #define LV_USE_DEMO_MUSIC      1
 #if LV_USE_DEMO_MUSIC
-# define LV_DEMO_MUSIC_LANDSCAPE    0
+# define LV_DEMO_MUSIC_SQUARE       0
+# define LV_DEMO_MUSIC_LANDSCAPE    1
+# define LV_DEMO_MUSIC_ROUND        0
 # define LV_DEMO_MUSIC_LARGE        0
-#define LV_DEMO_MUSIC_AUTO_PLAY     0
+# define LV_DEMO_MUSIC_AUTO_PLAY    0
 #endif
 
 #endif /*LV_EX_CONF_H*/
diff --git a/lv_drv_conf.h b/lv_drv_conf.h
index d8945cc..d2a445c 100644
--- a/lv_drv_conf.h
+++ b/lv_drv_conf.h
@@ -78,20 +78,51 @@
 /*********************
  *  DISPLAY DRIVERS
  *********************/
-#ifndef USE_WAYLAND
-#  define USE_WAYLAND       0
+
+/*-------------------
+ *  SDL
+ *-------------------*/
+/* SDL based drivers for display, mouse, mousewheel and keyboard*/
+#ifdef LVGL_WAYLAND_SDL2_GPU
+# define USE_SDL 1
+#endif
+
+#ifndef USE_SDL
+# define USE_SDL 0
 #endif
 
-#if USE_WAYLAND
-#  define WAYLAND_HOR_RES      480
-#  define WAYLAND_VER_RES      320
-#  define WAYLAND_SURF_TITLE   "LVGL"
+/* Hardware accelerated SDL driver */
+#ifndef USE_SDL_GPU
+# define USE_SDL_GPU 0
 #endif
+
+
+/* Demo Resolution */
+#  define SDL_HOR_RES     800
+#  define SDL_VER_RES     400
+
+
+
+/* Scale window by this factor (useful when simulating small screens) */
+#  define SDL_ZOOM        1
+
+/* Used to test true double buffering with only address changing.
+ * Use 2 draw buffers, bith with SDL_HOR_RES x SDL_VER_RES size*/
+#  define SDL_DOUBLE_BUFFERED 0
+
+/*Eclipse: <SDL2/SDL.h>    Visual Studio: <SDL.h>*/
+#  define SDL_INCLUDE_PATH    <SDL2/SDL.h>
+
+/*Open two windows to test multi display support*/
+#  define SDL_DUAL_DISPLAY            0
+
+
+
 /*-------------------
  *  Monitor of PC
  *-------------------*/
 #ifndef USE_MONITOR
-#  define USE_MONITOR         1
+#  define USE_MONITOR         0
 #endif
 
 #if USE_MONITOR
@@ -259,7 +290,7 @@
  *  Linux frame buffer device (/dev/fbx)
  *-----------------------------------------*/
 #ifndef USE_FBDEV
-#  define USE_FBDEV           1
+#  define USE_FBDEV           0
 #endif
 
 #if USE_FBDEV
@@ -340,7 +371,7 @@
  * Mouse or touchpad on PC (using SDL)
  *-------------------------------------*/
 #ifndef USE_MOUSE
-#  define USE_MOUSE           1
+#  define USE_MOUSE           0
 #endif
 
 #if USE_MOUSE
@@ -351,7 +382,7 @@
  * Mousewheel as encoder on PC (using SDL)
  *------------------------------------------*/
 #ifndef USE_MOUSEWHEEL
-#  define USE_MOUSEWHEEL      1
+#  define USE_MOUSEWHEEL      0
 #endif
 
 #if USE_MOUSEWHEEL
@@ -398,7 +429,7 @@
  *   Keyboard of a PC (using SDL)
  *------------------------------*/
 #ifndef USE_KEYBOARD
-#  define USE_KEYBOARD        1
+#  define USE_KEYBOARD        0
 #endif
 
 #if USE_KEYBOARD
diff --git a/main.c b/main.c
index df75661..583705c 100644
--- a/main.c
+++ b/main.c
@@ -1,33 +1,24 @@
-
 /**
- * @file main
+ * @file main.c
  *
  */
-
 /*********************
  *      INCLUDES
  *********************/
 #define _DEFAULT_SOURCE /* needed for usleep() */
 #include <stdlib.h>
 #include <unistd.h>
+#include <time.h>
+#include <sys/time.h>
+
+// For SDL2 usage
 #define SDL_MAIN_HANDLED /*To fix SDL's "undefined reference to WinMain" issue*/
 #include <SDL2/SDL.h>
 #include "lvgl/lvgl.h"
 #include "lvgl/examples/lv_examples.h"
 #include "lv_demos/lv_demo.h"
-#include "lv_drivers/display/monitor.h"
-#include "lv_drivers/display/fbdev.h"
-#include "lv_drivers/indev/mouse.h"
-#include "lv_drivers/indev/keyboard.h"
-#include "lv_drivers/indev/mousewheel.h"
+#include "lv_drivers/sdl/sdl.h"
 
-/*********************
- *      DEFINES
- *********************/
-
-/**********************
- *      TYPEDEFS
- **********************/
 
 /**********************
  *  STATIC PROTOTYPES
@@ -35,151 +26,125 @@
 static void hal_init(void);
 static int tick_thread(void *data);
 
-/**********************
- *  STATIC VARIABLES
- **********************/
-
-/**********************
- *      MACROS
- **********************/
-
-/**********************
- *   GLOBAL FUNCTIONS
- **********************/
 
 /*********************
  *      DEFINES
  *********************/
+/* select which demo you would like to execute */
+#define COMPILE_WIDGET 1
+//#define COMPILE_MUSIC 1
+//#define COMPILE_KEYPAD 1
 
-/**********************
- *      TYPEDEFS
- **********************/
-
-/**********************
- *      VARIABLES
- **********************/
-
-/**********************
- *  STATIC PROTOTYPES
- **********************/
 
 /**********************
  *   GLOBAL FUNCTIONS
  **********************/
-
 int main(int argc, char **argv)
 {
-  (void)argc; /*Unused*/
-  (void)argv; /*Unused*/
-
-  /*Initialize LVGL*/
-  lv_init();
-
-  /*Initialize the HAL (display, input devices, tick) for LVGL*/
-  hal_init();
-
-//  lv_example_switch_1();
-//  lv_example_calendar_1();
-//  lv_example_btnmatrix_2();
-//  lv_example_checkbox_1();
-//  lv_example_colorwheel_1();
-//  lv_example_chart_6();
-//  lv_example_table_2();
-//  lv_example_scroll_2();
-//  lv_example_textarea_1();
-//  lv_example_msgbox_1();
-//  lv_example_dropdown_2();
-//  lv_example_btn_1();
-//  lv_example_scroll_1();
-//  lv_example_tabview_1();
-//  lv_example_tabview_1();
-//  lv_example_flex_3();
-//  lv_example_label_1();
+    (void)argc; /*Unused*/
+    (void)argv; /*Unused*/
 
-    lv_demo_widgets();
+    /*Initialize LVGL*/
+    lv_init();
 
-  while(1) {
-      /* Periodically call the lv_task handler.
-       * It could be done in a timer interrupt or an OS task too.*/
-      lv_timer_handler();
-      usleep(5 * 1000);
-  }
+    /*Initialize the HAL (display, input devices, tick) for LVGL*/
+    hal_init();
 
-  return 0;
+#ifdef COMPILE_WIDGET
+    lv_demo_widgets();
+#endif
+#ifdef COMPILE_MUSIC
+    lv_demo_music();
+#endif
+#ifdef COMPILE_KEYPAD
+    lv_demo_keypad_encoder();
+ #endif
+
+    while(1) {
+        /* Periodically call the lv_task handler.
+         * It could be done in a timer interrupt or an OS task too.*/
+        lv_timer_handler();
+        usleep(5 * 1000);
+    }
+
+    return 0;
 }
 
 /**********************
  *   STATIC FUNCTIONS
  **********************/
-
 /**
  * Initialize the Hardware Abstraction Layer (HAL) for the LVGL graphics
  * library
  */
 static void hal_init(void)
 {
-  /* 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_CreateThread(tick_thread, "tick", NULL);
-
-  /*Create a display buffer*/
-  static lv_disp_draw_buf_t disp_buf1;
-  static lv_color_t buf1_1[MONITOR_HOR_RES * 100];
-  static lv_color_t buf1_2[MONITOR_HOR_RES * 100];
-  lv_disp_draw_buf_init(&disp_buf1, buf1_1, buf1_2, MONITOR_HOR_RES * 100);
-
-  /*Create a display*/
-  static lv_disp_drv_t disp_drv;
-  lv_disp_drv_init(&disp_drv); /*Basic initialization*/
-  disp_drv.draw_buf = &disp_buf1;
-  disp_drv.flush_cb = monitor_flush;
-  disp_drv.hor_res = MONITOR_HOR_RES;
-  disp_drv.ver_res = MONITOR_VER_RES;
-  disp_drv.antialiasing = 1;
-
-  lv_disp_t * disp = lv_disp_drv_register(&disp_drv);
-
-  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 = mouse_read;
-  lv_indev_t *mouse_indev = lv_indev_drv_register(&indev_drv_1);
-
-  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 = 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 = mousewheel_read;
-
-  lv_indev_t * enc_indev = lv_indev_drv_register(&indev_drv_3);
-  lv_indev_set_group(enc_indev, g);
-
-  /*Set a cursor for the mouse*/
-  LV_IMG_DECLARE(mouse_cursor_icon); /*Declare the image file.*/
-  lv_obj_t * cursor_obj = lv_img_create(lv_scr_act()); /*Create an image object for the cursor */
-  lv_img_set_src(cursor_obj, &mouse_cursor_icon);           /*Set the image source*/
-  lv_indev_set_cursor(mouse_indev, cursor_obj);             /*Connect the image  object to the driver*/
+    sdl_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_CreateThread(tick_thread, "tick", NULL);
+
+    /* Create a display buffer */
+    static lv_disp_draw_buf_t disp_buf1;
+
+    static lv_color_t buf1_1[SDL_HOR_RES * 100];
+    lv_disp_draw_buf_init(&disp_buf1, buf1_1, NULL, SDL_HOR_RES * 100);
+
+
+    /*Create a display*/
+    static lv_disp_drv_t disp_drv;
+    lv_disp_drv_init(&disp_drv); /*Basic initialization*/
+    disp_drv.draw_buf = &disp_buf1;
+
+    disp_drv.flush_cb = sdl_display_flush;
+    disp_drv.hor_res = SDL_HOR_RES;
+    disp_drv.ver_res = SDL_VER_RES;
+
+    fprintf(stderr, "SCREEN SIZE ----> %d x %d\n", disp_drv.hor_res, disp_drv.ver_res);
+    lv_disp_t * disp = lv_disp_drv_register(&disp_drv);
+
+    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*/
+    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);
+
+    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);
+
+    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);
+
+    /* Set a cursor for the mouse*/
+    LV_IMG_DECLARE(mouse_cursor_icon); /*Declare the image file.*/
+    lv_obj_t * cursor_obj = lv_img_create(lv_scr_act()); /*Create an image object for the cursor */
+    lv_img_set_src(cursor_obj, &mouse_cursor_icon);           /*Set the image source*/
+    lv_indev_set_cursor(mouse_indev, cursor_obj);             /*Connect the image  object to the driver*/
+
 }
 
 /**
@@ -190,10 +155,9 @@ static void hal_init(void)
 static int tick_thread(void *data) {
     (void)data;
 
-    while(1) { 
-        SDL_Delay(5);
-        lv_tick_inc(5); /*Tell LittelvGL that 5 milliseconds were elapsed*/
+    while(1) {
+       SDL_Delay(5);
+       lv_tick_inc(5); /*Tell LittelvGL that 5 milliseconds were elapsed*/
     }
-
     return 0;
-}
+}
\ No newline at end of file
