Skip to content
This repository was archived by the owner on Dec 4, 2020. It is now read-only.

Commit 5cbbeb9

Browse files
committed
WIP: just added lvgl7.0.1-dev - there are some errors to be fixed...
1 parent 86b25b9 commit 5cbbeb9

File tree

284 files changed

+181552
-46296
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

284 files changed

+181552
-46296
lines changed

lv_conf.h

+175-67
Large diffs are not rendered by default.

src/src/lv_conf_checker.h lv_conf.h_

+33-293
Large diffs are not rendered by default.

src/CHANGELOG.md

+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# Changelog
2+
3+
## v7.0.1 (under development)
4+
*Available in the `master` branch*
5+
6+
## v7.0.0 (18.05.2020)
7+
8+
### Documentation
9+
The docs for v7 is available at https://docs.littlevgl.com/v7/en/html/index.html
10+
11+
### Legal changes
12+
13+
The name of the project is changed to LVGL and the new website is on https://lvgl.io
14+
15+
LVGL remains free under the same conditions (MIT license) and a company is created to manage LVGL and offer services.
16+
17+
18+
### New drawing system
19+
Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects.
20+
A possible use-case of this system is to remove the overflowing content from the rounded edges.
21+
It also allows drawing perfectly anti-aliased circles, lines, and arcs.
22+
Internally, the drawings happen by defining masks (such as rounded rectangle, line, angle).
23+
When something is drawn the currently active masks can make some pixels transparent.
24+
For example, rectangle borders are drawn by using 2 rectangle masks: one mask removes the inner part and another the outer part.
25+
26+
The API in this regard remained the same but some new functions were added:
27+
- `lv_img_set_zoom`: set image object's zoom factor
28+
- `lv_img_set_angle`: set image object's angle without using canvas
29+
- `lv_img_set_pivot`: set the pivot point of rotation
30+
31+
32+
The new drawing engine brought new drawing features too. They are highlighted in the "style" section.
33+
34+
### New style system
35+
The old style system is replaced with a new more flexible and lightweighted one.
36+
It uses an approach similar to CSS: support cascading styles, inheriting properties and local style properties per object.
37+
As part of these updates, a lot of objects were reworked and the APIs have been changed.
38+
39+
- more shadows options: *offset* and *spread*
40+
- gradient stop position to shift the gradient area and horizontal gradient
41+
- `LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVE` blending modes
42+
- *clip corner*: crop the content on the rounded corners
43+
- *text underline* and *strikethrough*
44+
- dashed vertical and horizontal lines (*dash gap*, *dash_width*)
45+
- *outline*: a border-like part drawn out of the background. Can have spacing to the background.
46+
- *pattern*: display and image in the middle of the background or repeat it
47+
- *value* display a text which is stored in the style. It can be used e.g. as a lighweighted text on buttons too.
48+
- *margin*: similar to *padding* but used to keep space outside of the object
49+
50+
Read the [Style](https://docs.littlevgl.com/v7/en/html/overview/style.html) section of the documentation to learn how the new styles system works.
51+
52+
### GPU integration
53+
To better utilize GPUs, from this version GPU usage can be integrated into LVGL. In `lv_conf.h` any supported GPUs can be enabled with a single configuration option.
54+
55+
Right now, only ST's DMA2D (Chrom-ART) is integrated. More will in the upcoming releases.
56+
57+
### Renames
58+
The following object types are renamed:
59+
- sw -> switch
60+
- ta -> textarea
61+
- cb -> checkbox
62+
- lmeter -> linemeter
63+
- mbox -> msgbox
64+
- ddlist -> dropdown
65+
- btnm -> btnmatrix
66+
- kb -> keyboard
67+
- preload -> spinner
68+
- lv_objx folder -> lv_widgets
69+
- LV_FIT_FILL -> LV_FIT_PARENT
70+
- LV_FIT_FLOOD -> LV_FLOOD_MAX
71+
- LV_LAYOUT_COL_L/M/R -> LV_LAYOUT_COLUMN_LEFT/MID/RIGHT
72+
- LV_LAYOUT_ROW_T/M/B -> LV_LAYOUT_ROW_TOP/MID/BOTTOM
73+
74+
### Reworked and improved object
75+
- `dropdown`: Completely reworked. Now creates a separate list when opened and can be dropped to down/up/left/right.
76+
- `label`: `body_draw` is removed, instead, if its style has a visible background/border/shadow etc it will be drawn. Padding really makes the object larger (not just virtually as before)
77+
- `arc`: can draw bacground too.
78+
- `btn`: doesn't store styles for each state because it's done naturally in the new style system.
79+
- `calendar`: highlight the pressed datum. The used styles are changed: use `LV_CALENDAR_PART_DATE` normal for normal dates, checked for highlighted, focused for today, pressed for the being pressed. (checked+pressed, focused+pressed also work)
80+
- `chart`: only has `LINE` and `COLUMN` types because with new styles all the others can be described. LV_CHART_PART_SERIES sets the style of the series. bg_opa > 0 draws an area in LINE mode. `LV_CHART_PART_SERIES_BG` also added to set a different style for the series area. Padding in `LV_CHART_PART_BG` makes the series area smaller, and it ensures space for axis labels/numbers.
81+
- `linemeter`, `gauge`: can have background if the related style properties are set. Padding makes the scale/lines smaller. scale_border_width and scale_end_border_width allow to draw an arc on the outer part of the scale lines.
82+
- `gauge`: `lv_gauge_set_needle_img` allows use image as needle
83+
- `canvas`: allow drawing to true color alpha and alpha only canvas, add `lv_canvas_blur_hor/ver` and rename `lv_canvas_rotate` to `lv_canvas_transform`
84+
- `textarea`: If available in the font use bullet (`U+2022`) character in text area password
85+
86+
### New object types
87+
- `lv_objmask`: masks can be added to it. The children will be masked accordingly.
88+
89+
### Others
90+
- Change the built-in fonts to [Montserrat](https://fonts.google.com/specimen/Montserrat) and add built-in fonts from 12 px to 48 px for every 2nd size.
91+
- Add example CJK and Arabic/Persian/Hebrew built-in font
92+
- Add ° and "bullet" to the built-in fonts
93+
- Add Arabic/Persian script support: change the character according to its position in the text.
94+
- Add `playback_time` to animations.
95+
- Add `repeat_count` to animations instead of the current "repeat forever".
96+
- Replace `LV_LAYOUT_PRETTY` with `LV_LAYOUT_PRETTY_TOP/MID/BOTTOM`
97+
98+
### Demos
99+
- [lv_examples](https://github.com/littlevgl/lv_examples) was reworked and new examples and demos were added
100+
101+
### New release policy
102+
- Maintain this Changelog for every release
103+
- Save old major version in new branches. E.g. `release/v6`
104+
- Merge new features and fixes directly into `master` and release a patch or minor releases every 2 weeks.
105+
106+
### Migrating from v6 to v7
107+
- First and foremost, create a new `lv_conf.h` based on `lv_conf_templ.h`.
108+
- To try the new version it suggested using a simulator project and see the examples.
109+
- If you have a running project, the most difficult part of the migration is updating to the new style system. Unfortunately, there is no better way than manually updating to the new format.
110+
- The other parts are mainly minor renames and refactoring as described above.

0 commit comments

Comments
 (0)