/lvgl-3.5.0/docs/ |
D | CONTRIBUTING.md | 8 There are a lot of ways to contribute to LVGL even if you are new to the library or even new to pro… 10 It might be scary to make the first step but you have nothing to be afraid of. 11 A friendly and helpful community is waiting for you. Get to know like-minded people and make someth… 13 So let's find which contribution option fits you the best and help you join the development of LVGL! 19 …information). It makes understanding your contribution or issue easier and you will get a useful r… 21 …b.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) to format your posts. You can learn it in 10 … 30 …ike "Hey, I made some updates to your project. Here are the changes, you can add them if you want." 31 To do this you need a copy (called fork) of the original project under your account, make some chan… 32 You can see what it looks like on GitHub for LVGL here: [https://github.com/lvgl/lvgl/pulls](https:… 34 To add your changes you can edit files online on GitHub and send a new Pull request from there (rec… [all …]
|
D | CODING_STYLE.md | 51 The code should show clearly what you are doing. 53 You should write **why** have you done this: 89 You can use **astyle** to format the code. Run `code-formatter.sh` from the `scrips` folder. 97 Once you have `pre-commit` installed you will need to [set up the git hook scripts](https://pre-com… 108 if any file gets formatted by **astyle** you will need to add the change to the staging area and ru… 114 If you want to skip any particular hook you can do so with: 121 It's no necessary to do a commit to test the hooks, you can test hooks by adding the files into the…
|
/lvgl-3.5.0/src/extra/libs/png/ |
D | lodepng.h | 14 1. The origin of this software must not be misrepresented; you must not 15 claim that you wrote the original software. If you use this software 41 In addition to those below, you can also define LODEPNG_NO_COMPILE_CRC to 44 /*deflate & zlib. If disabled, you must specify alternative zlib functions in 80 /*Compile the default allocators (C's free, malloc and realloc). If you disable this, 81 you can define the functions lodepng_free, lodepng_malloc and lodepng_realloc in your 87 /*compile the C++ version (you can disable the C++ wrapper here even when compiling for C++)*/ 355 When decoding, by default you can ignore this palette, since LodePNG already 369 When decoding, by default you can ignore this information, since LodePNG sets 448 So when decoding, you may get these in a different color mode than the one you requested [all …]
|
/lvgl-3.5.0/docs/overview/ |
D | image.md | 6 You can store images in two places 24 To deal with files you need to add a storage *Drive* to LVGL. In short, a *Drive* is a collection o… 25 You can add an interface to a standard file system (FAT32 on SD card) or you create your simple fil… 57 You can store images in a *Raw* format to indicate that it's not encoded with one of the built-in c… 65 You can add images to LVGL in two ways: 74 1. You need to select a *BMP*, *PNG* or *JPG* image first. 77 4. Select the type of image you want. Choosing a binary will generate a `.bin` file that must be st… 82 In the case of binary files, you need to specify the color format you want: 89 If you are generating an image at run-time, you can craft an image variable to display it using LVG… 105 If the color format is `LV_IMG_CF_TRUE_COLOR_ALPHA` you can set `data_size` like `80 * 60 * LV_IMG_… [all …]
|
D | timer.md | 3 LVGL has a built-in timer system. You can register a function to have it be called periodically. Th… 6 Timers are non-preemptive, which means a timer cannot interrupt another timer. Therefore, you can c… 11 `lv_timer_create_basic()` can also be used. This allows you to create a new timer without specifyin… 45 You can modify some timer parameters later: 51 You can make a timer repeat only a given number of times with `lv_timer_set_repeat_count(timer, cou… 56 You can get the idle percentage time of `lv_timer_handler` with `lv_timer_get_idle()`. Note that, i… 57 It can be misleading if you use an operating system and call `lv_timer_handler` in a timer, as it w… 61 …some cases, you can't perform an action immediately. For example, you can't delete an object becau… 63 Note that only the data pointer is saved, so you need to ensure that the variable will be "alive" w… 64 If you want to cancel an asynchronous call, call `lv_async_call_cancel(my_function, data_p)`, which… [all …]
|
D | drawing.md | 3 With LVGL, you don't need to draw anything manually. Just create objects (like buttons, labels, arc… 18 The main difference is that with LVGL you don't have to store two frame buffers (which usually requ… 50 To use LVGL it's not required to know about the mechanisms described here but you might find intere… 51 Knowing about masking comes in handy if you want to customize drawing. 104 …ix) widget. By default, its buttons can be styled in different states, but you can't style the but… 105 However, an event is sent for every button and you can, for example, tell LVGL to use different col… 121 … the widgets' internal events are called to perform drawing and after that you can draw anything o… 122 For example you can add a custom text or an image. 126 Called when the main drawing is finished. You can draw anything here as well and it's also a good p… 158 const lv_area_t * clip_area; // The current clip area, required if you need to draw somethin… [all …]
|
D | display.md | 8 In LVGL you can have multiple displays, each with their own driver and objects. The only limitation… 12 When you create the UI, use `lv_disp_set_default(disp)` to tell the library on which display to cre… 14 Why would you want multi-display support? Here are some examples: 15 - Have a "normal" TFT display with local UI and create "virtual" screens on VNC on demand. (You nee… 21 …efore, the whole concept of multi-display handling is completely hidden if you register only one d… 25 If you pass `NULL` as `disp` parameter to display related functions the default display will usuall… 30 To mirror the image of a display to another display, you don't need to use multi-display support. J… 33 You can create a larger virtual display from an array of smaller ones. You can create it as below: 54 …creen, use `lv_scr_act()`. These functions work on the default display. If you want to specify whi… 56 Screens can be deleted with `lv_obj_del(scr)`, but ensure that you do not delete the currently load… [all …]
|
D | object.md | 6 You can see all the [Object types](/widgets/index) here. 22 You can set/get these attributes with `lv_obj_set_...` and `lv_obj_get_...` functions. For example: 46 The API of the widgets is described in their [Documentation](/widgets/index) but you can also check… 118 If for any reason you can't delete the object immediately you can use `lv_obj_del_async(obj)` which… 119 This is useful e.g. if you want to delete the parent of an object in the child's `LV_EVENT_DELETE` … 121 You can remove all the children of an object (but not the object itself) using `lv_obj_clean(obj)`. 123 You can use `lv_obj_del_delayed(obj, 1000)` to delete an object after some time. The delay is expre… 151 You can add any pop-up windows to the *top layer* freely. But, the *system layer* is restricted to … 174 The *default display* is the last registered display with `lv_disp_drv_register`. You can also expl…
|
/lvgl-3.5.0/scripts/ |
D | Doxyfile | 30 # double-quotes, unless you are using Doxywizard) that should identify the 161 # Note that you can specify absolute paths here, but also relative paths, which 204 # tag to YES if you prefer the old behavior instead. 236 # will allow you to put the command \sideeffect (or @sideeffect) in the 238 # "Side Effects:". You can put \n's in the value part of an alias to insert 245 # will allow you to use the command class in the itcl::class meaning. 278 # parses. With this tag you can assign which parser to use for a given 279 # extension. Doxygen has a built-in mapping, but you can override or extend it 289 # Note: For files without extension you can use no_extension as a placeholder. 291 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise [all …]
|
/lvgl-3.5.0/docs/intro/ |
D | index.md | 4 …s Library) is a free and open-source graphics library providing everything you need to create an e… 51 This means you can use it even in commercial projects. 53 It's not mandatory, but we highly appreciate it if you write a few words about your project in the … 55 …though you can get LVGL for free there is a massive amount of work behind it. It's created by a gr… 58 You can choose from [many different ways of contributing](/CONTRIBUTING) such as simply writing a t… 63 You will find these repositories there: 114 You can ask questions in the forum: [https://forum.lvgl.io/](https://forum.lvgl.io/). 117 You should use them only if your question or issue is tightly related to the development of the lib… 119 Before posting a question, please ready this FAQ section as you might find answer to your issue her… 132 If you can do this with your display then you can use it with LVGL. [all …]
|
/lvgl-3.5.0/docs/get-started/platforms/ |
D | pc-simulator.md | 4 You can try out LVGL **using only your PC** (i.e. without any development boards). LVGL will run on… 9 - Portability - The written code is portable, which means you can simply copy it when migrating to … 26 You can use any IDE for development but, for simplicity, the configuration for Eclipse CDT is what … 31 **Note: If you are on Windows, it's usually better to use the Visual Studio or CodeBlocks projects … 43 Note: If you are using other distros, then please install a 'Java Runtime Environment' suitable to … 44 Note: If you are using macOS and get a "Failed to create the Java Virtual Machine" error, uninstall… 46 You can download Eclipse's CDT from: [https://www.eclipse.org/cdt/downloads.php](https://www.eclips… 53 On **Linux** you can easily install SDL2 using a terminal: 61 If you are using **Windows** firstly you need to install MinGW ([64 bit version](http://mingw-w64.o… 70 Note: If you are using **Microsoft Visual Studio** instead of Eclipse then you don't have to instal… [all …]
|
/lvgl-3.5.0/docs/get-started/ |
D | quick-overview.md | 4 Here you can learn the most important things about LVGL. 5 You should read this first to get a general impression and read the detailed [Porting](/porting/ind… 11 LVGL is ported to many IDEs to be sure you will find your favorite one. 13 This way you can save the time of porting for now and get some experience with LVGL immediately. 16 If you would rather try LVGL on your own project follow these steps: 21 - Include `lvgl/lvgl.h` in files where you need to use LVGL related functions. 46 *`set_pixel` needs to be written by you to a set pixel on the screen*/ 54 lv_disp_flush_ready(disp); /* Indicate you are ready with the flushing*/ 68 /*`touchpad_is_pressed` and `touchpad_get_xy` needs to be implemented by you*/ 95 A Screen is the "root" parent. You can have any number of screens. [all …]
|
/lvgl-3.5.0/docs/porting/ |
D | indev.md | 5 …e has to be initialized. **Be sure to register at least one display before you register any input … 8 /*Register at least one display before you register any input devices*/ 77 With an encoder you can do the following: 84 - By turning the encoder you can focus on the next/previous object. 85 - When you press the encoder on a simple object (like a button), it will be clicked. 86 - If you press the encoder on a complex object (like a list, message box, etc.) the object will go … 108 In addition to standard encoder behavior, you can also utilize its logic to navigate(focus) and edi… 109 This is especially handy if you have only few buttons available, or you want to use other buttons i… 111 You need to have 3 buttons available: 117 If you hold the keys it will simulate an encoder advance with period specified in `indev_drv.long_p… [all …]
|
D | display.md | 27 As you can see above, the draw buffer may be smaller than the screen. In this case, larger areas ar… 37 You can measure the performance of different configurations using the [benchmark example](https://g… 133 *`put_px` is just an example, it needs to implemented by you.*/ 143 * Inform the graphics library that you are ready with the flushing*/ 195 LVGL supports rotation of the display in 90 degree increments. You can select whether you'd like so… 197 If you select software rotation (`sw_rotate` flag set to 1), LVGL will perform the rotation for you… 199 …VGL draws into the buffer as if your screen width and height were swapped. You are responsible for… 201 …values are relative to how you would rotate the physical display in the clockwise direction. Thus,… 207 …re, so there may be some glitches/bugs depending on your configuration. If you encounter a problem… 211 However, in some cases you might need more control on when the display refreshing happen, for examp… [all …]
|
D | project.md | 8 You can clone it or [Download](https://github.com/lvgl/lvgl/archive/refs/heads/master.zip) the late… 12 …is the `lvgl` directory. It contains a couple of folders but to use `lvgl` you only need `.c` and … 15 …from the folders copied to the project folder (as Eclipse or VSCode does), you can simply copy the… 20 LVGL_DIR_NAME ?= lvgl #The name of the lvgl folder (change this if you have renamed it) 32 …ains an `examples` and a `demos` folder. If you needed to add the source files manually to your pr… 36 There is a configuration header file for LVGL called **lv_conf.h**. You modify this header to set t… 47 Alternatively, `lv_conf.h` can be copied to another place but then you should add the `LV_CONF_INCL… 50 You can even use a different name for `lv_conf.h`. The custom path can be set via the `LV_CONF_PATH… 53 If `LV_CONF_SKIP` is defined, LVGL will not try to include `lv_conf.h`. Instead you can pass the co… 55 LVGL also can be used via `Kconfig` and `menuconfig`. You can use `lv_conf.h` together with Kconfi… [all …]
|
D | gpu.md | 2 LVGL has a flexible and extendable draw pipeline. You can hook it to do some rendering with a GPU o… 30 To correctly render according to a `draw_dsc` you need to be familiar with the [Boxing model](https… 39 When you ignore these fields, LVGL will set default values for callbacks and size in `lv_disp_drv_i… 42 However, you can overwrite the callbacks and the size values before calling `lv_disp_drv_register()… 66 As you saw above the software renderer adds the `blend` callback field. It's a special callback rel… 84 Let's take a practical example: you would like to use your MCUs GPU for color fill operations only. 107 After calling `lv_disp_draw_init(&drv)` you can assign the new `draw_ctx_init` callback and set `dr… 164 If your MCU has a more powerful GPU that can draw e.g. rounded rectangles you can replace the origi… 196 For example if your MCU/MPU supports a powerful vector graphics engine you might use only that inst… 197 In this case, you need to base the renderer on the basic `lv_draw_ctx_t` (instead of `lv_draw_sw_ct…
|
/lvgl-3.5.0/docs/others/ |
D | ime_pinyin.md | 3 …e input) for keyboard object, which supports 26 key and 9 key input modes. You can think of `lv_im… 22 …hen use `lv_ime_pinyin_set_keyboard(pinyin_ime, kb)` to add the `keyboard` you created to the Piny… 23 You can use `lv_ime_pinyin_set_dict(pinyin_ime, your_dict)` to use a custom dictionary (if you don'… 27 In the process of using the Pinyin input method plug-in, you can change the keyboard and dictionary… 47 If you don't want to use the built-in Pinyin dictionary, you can use the custom dictionary. 48 Or if you think that the built-in phonetic dictionary consumes a lot of memory, you can also use a … 71 …in syllable is very important. You need to customize your own thesaurus according to the Hanyu Pin… 105 After writing a dictionary according to the above dictionary format, you only need to call this fun…
|
/lvgl-3.5.0/docs/get-started/bindings/ |
D | micropython.md | 6 Using Micropython, you can write Python3 code and run it even on a bare metal architecture with lim… 10 … of code space and 16k of RAM. No OS is needed, although you can also run it with an OS, if you wa… 13 … need for the compile-flash-boot cycle. With the REPL (interactive prompt) you can type commands a… 27 In Micropython it's just **`Change code` > `Run`** ! You can even run commands interactively using … 64 If you want to experiment with LVGL + Micropython without downloading anything - you can use our on… 65 It's a fully functional LVGL + Micropython that runs entirely in the browser and allows you to edit… 75 …ble port is "unix", which allows you to build and run Micropython (+LVGL) on a Linux machine. (On … 83 You would also need display and input drivers. We have some sample drivers (ESP32+ILI9341, as well …
|
/lvgl-3.5.0/docs/widgets/core/ |
D | label.md | 14 You can set the text on a label at runtime with `lv_label_set_text(label, "New text")`. 16 Therefore, you don't need to keep the text you pass to `lv_label_set_text` in scope after that func… 27 Newline characters are handled automatically by the label object. You can use `\n` to make a line b… 39 You can specify the long mode with `lv_label_set_long_mode(label, LV_LABEL_LONG_...)` 43 … with `lv_label_set_text_static`. The buffer you pass to `lv_label_set_text_static` must be writab… 46 In the text, you can use commands to recolor parts of the text. For example: `"Write a #ff0000 red#… 50 If enabled by `LV_LABEL_TEXT_SELECTION` part of the text can be selected. It's similar to when you … 51 The whole mechanism (click and select the text as you drag your finger/mouse) is implemented in [Te… 59 …and repeat delay of the circular scrolling animation can be customized. If you need to customize a…
|
D | img.md | 25 To make the variable visible in the C file, you need to declare it with `LV_IMG_DECLARE(converted_i… 27 To use external files, you also need to convert the image files using the online converter tool but… 28 You also need to use LVGL's file system module and register a driver with some functions for the ba… 31 You can also set a symbol similarly to [Labels](/widgets/core/label). In this case, the image will … 65 For example, you can have a *300 x 5* image with a special gradient and set it as a wallpaper using… 68 With `lv_img_set_offset_x(img, x_ofs)` and `lv_img_set_offset_y(img, y_ofs)`, you can add some offs… 102 If you need the object size to be updated to the transformed size set `lv_img_set_size_mode(img, LV… 108 You can use `lv_obj_set_style_radius` to set radius to an image, and enable `lv_obj_set_style_clip_…
|
/lvgl-3.5.0/docs/widgets/ |
D | obj.md | 26 You can set the position relative to the parent with `lv_obj_set_x(obj, new_x)` and `lv_obj_set_y(o… 29 You can align the object on its parent with `lv_obj_set_align(obj, LV_ALIGN_...)`. After this every… 48 You can set a new parent for an object with `lv_obj_set_parent(obj, new_parent)`. To get the curren… 66 You can bring an object to the foreground or send it to the background with `lv_obj_move_foreground… 68 You can change the index of an object in its parent using `lv_obj_move_to_index(obj, index)`. 70 You can swap the position of two objects with `lv_obj_swap(obj1, obj2)`. 76 …you have created a screen like `lv_obj_t * screen = lv_obj_create(NULL)`, you can make it active w… 78 If you have multiple displays, it's important to know that the screen functions operate on the most… 149 Objects are added to a *group* with `lv_group_add_obj(group, obj)`, and you can use `lv_obj_get_gro…
|
/lvgl-3.5.0/docs/libs/ |
D | rlottie.md | 11 To build on desktop you can follow the instructions from Rlottie's [README](https://github.com/Sams… 25 On embedded systems you need to take care of integrating Rlottie to the given build system. 30 You can use animation from files or raw data (text). In either case first you need to enable `LV_US… 42 Note that, Rlottie uses the standard STDIO C file API, so you can use the path "normally" and no LV… 65 Lottie is standard and popular format so you can find many animation files on the web. 68 You can also create your own animations with Adobe After Effects or similar software. 73 You'll combine your intentions when calling the first method, like in these examples: 90 If you don't enable looping, a `LV_EVENT_READY` is sent when the animation can not make more progre… 92 To get the number of frames in an animation or the current frame index, you can cast the `lv_obj_t`…
|
/lvgl-3.5.0/demos/benchmark/ |
D | README.md | 16 - If you only want to run a specific scene for any purpose (e.g. debug, performance optimization et… 17 - If you enabled trace output by setting macro `LV_USE_LOG` to `1` and trace level `LV_LOG_LEVEL` t… 18 - If you want to know when the testing is finished, you can register a callback function via `lv_de… 19 - If you want to know the maximum rendering performance of the system, call `lv_demo_benchmark_set_… 38 If you are doing performance analysis for 2D image processing optimization, LCD latency (flushing d… 70 *Inform the graphics library that you are ready with the flushing*/ 94 LV_LOG("NOTE: You will NOT see anything until the end."); 113 3. Alternatively, you can use trace output to get the benchmark results in csv format by:
|
/lvgl-3.5.0/examples/porting/ |
D | lv_port_disp_template.c | 75 * You should use DMA to write the buffer's content to the display. 82 * and you only need to change the frame buffer's address. 125 /* Fill a memory array with a color if you have GPU. 126 * Note that, in lv_conf.h you can enable GPUs that has built-in support in LVGL. 127 * But if you have a different GPU you can use with this callback.*/ 141 /*You code here*/ 161 *You can use DMA or any hardware acceleration to do this operation in the background but 180 *Inform the graphics library that you are ready with the flushing*/ 186 /*If your MCU has hardware accelerator (GPU) then you can use it to fill a memory with a color*/
|
/lvgl-3.5.0/docs/widgets/extra/ |
D | menu.md | 30 You can set header modes with `lv_menu_set_mode_header(menu, LV_MENU_HEADER...)`. 37 You can set root back button modes with `lv_menu_set_mode_root_back_btn(menu, LV_MENU_ROOT_BACK_BTN… 41 You can add any widgets to the page. 44 Once a menu page has been created, you can set it to the main area with `lv_menu_set_page(menu, pag… 47 Once a menu page has been created, you can set it to the sidebar with `lv_menu_set_sidebar_page(men… 50 For instance, you have created a btn obj in the main page. When you click the btn obj, you want it … 65 …idebar is clicked. `LV_OBJ_FLAG_EVENT_BUBBLE` is enabled on the buttons so you can add events to t…
|