1 /**
2  * @file lv_demo_benchmark.h
3  *
4  */
5 
6 #ifndef LV_DEMO_BENCHMARK_H
7 #define LV_DEMO_BENCHMARK_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /*********************
14  *      INCLUDES
15  *********************/
16 #include "../lv_demos.h"
17 
18 #if LV_USE_DEMO_BENCHMARK
19 
20 /*********************
21  *      DEFINES
22  *********************/
23 
24 /**********************
25  *      TYPEDEFS
26  **********************/
27 
28 /**********************
29  * GLOBAL PROTOTYPES
30  **********************/
31 
32 /**
33  * Run all benchmark scenes.
34  *
35  * On the summary end screen the values shall be interpreted according to the following:
36  * - CPU usage:
37  *    - If `LV_SYSMON_GET_IDLE` is not modified it's measured based on the time spent in
38  *      `lv_timer_handler`.
39  *    - If an (RT)OS is used `LV_SYSMON_GET_IDLE` can be changed to a custom function
40  *      which returns the idle percentage of idle task.
41  *
42  * - FPS: LVGL attempted to render this many times in a second. It's limited based on `LV_DEF_REFR_PERIOD`
43  *
44  * - Render time: LVGL spent this much time with rendering only. It's not aware of task yielding,
45  *   but simply the time difference between the start and end of the rendering is measured
46  *
47  * - Flush time: It's the sum of
48  *     - the time spent in the `flush_cb` and
49  *     - the time spent with waiting for flush ready.
50  */
51 void lv_demo_benchmark(void);
52 
53 /**********************
54  *      MACROS
55  **********************/
56 
57 #endif /*LV_USE_DEMO_BENCHMARK*/
58 
59 #ifdef __cplusplus
60 } /* extern "C" */
61 #endif
62 
63 #endif /*LV_DEMO_BENCHMARK_H*/
64