Littlev Graphics Library provides everything you need to create a Graphical User Interface (GUI) on embedded systems with easy-to-use graphical elements, beautiful visual effects and low memory footprint.
Homepage: https://gl.littlev.hu
-
Powerful building blocks buttons, charts, lists, sliders, images etc
-
Advanced graphics with animations, anti-aliasing, opacity, smooth scrolling
-
Various input devices touch pad, mouse, keyboard and external buttons
-
Multi language support with UTF-8 support
-
Fully customizable graphical elements
-
Hardware independent to use with any MCU or display
-
Scalable to operate with few memory (80 kB Flash, 10 kB RAM)
-
OS, External memory and GPU supported but not required
-
Single frame buffer operation even with advances graphical effects
-
Written in C for maximal compatibility
-
PC simulator to develop without embedded hardware
-
Tutorials, examples, themes for rapid development
-
Advanced support and professional GUI development service
-
Documentation and API references online
-
Free and open source under MIT licence
In the most sime case you need 4 things:
- Call
lv_tick_inc(1)
in every millisecods in a Timer or Task - Register a function which can copy a pixel array to an area of the screen
- Register a function which can read an input device. (E.g. touch pad)
- Call
lv_task_handler()
periodically in every few milliseconds ()
For more information visit https://gl.littlev.hu/porting
- Clone or download the lvgl repository:
git clone https://github.com/littlevgl/lvgl.git
- Create project with your prefered IDE and add the lvgl folder
- Copy lvgl/lv_conf_templ.h as lv_conf.h next to the lvgl folder
- In the *_conf.h files delete the first
#if 0
and its#endif
. Let the default configurations at first. - In your main.c: #include "lvgl/lvgl.h"
- In your main function:
- lvgl_init();
- tick, display and input device initialization (see above)
- To test create a label:
lv_obj_t * label = lv_label_create(lv_scr_act(), NULL);
- In the main while(1) call
lv_task_handler();
and make a few milliseconds delay (e.g.my_delay_ms(5);
) - Compile the code and load it to your embedded hardware
If you don't have got an embedded hardware you can test the graphics library in a PC simulator. The simulator uses SDL2 to emulate a display on your monitor and a touch pad with your mouse.
There is a pre-configured PC project for Eclipse CDT in this repository: https://github.com/littlevgl/pc_simulator
See CONTRIBUTING.md
If you are pleased with the graphics library and found it useful please support its further development: