Commit Graph

42 Commits

Author SHA1 Message Date
VIFEX
4cce3b5cd9 perf(draw): skip border drawing when border side is none (#5959)
Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com>
Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
2024-03-28 19:37:48 +01:00
Johannes Marbach
152dc0b2be feat(draw): add convenience methods for safely getting correct draw descriptor (#5505) 2024-01-29 08:19:58 +01:00
Karl Andersson
e3b747f044 fix: removed LV_ATTRIBUTE_FAST_MEM function attribute from prototypes (#5467) 2024-01-25 09:40:40 +01:00
Gabor Kiss-Vamosi
4699f2f556 fix(bar): fix the clipping of the indicator in some corner cases (#5229) 2024-01-09 17:13:25 +01:00
Gabor Kiss-Vamosi
f325e4d1c0 feat(draw): remove draw BG_IMG draw task 2023-12-11 14:11:54 +01:00
Gabor Kiss-Vamosi
2f3e8d4066 feat(draw): add initial SDL renderer
It caches SW rendered bitmaps in textures.
The cache is also updated to support data and source separately.
E.g. source is a path to an image, and if that image changes all
related cache entries needs to found and invalidated.

Limitations of SDL rederer:
- not all draw task types are supported
- image transformation is not supported
- some textures (e.g. button matrix texts) are not detected as cached
- images are not cached
- images are supported only from path
2023-11-18 15:35:45 +01:00
Viktor Szépe
cc6581ae03 ci: upgrade astyle tool (#4776)
Install from source to use the latest version
2023-11-10 15:37:23 +01:00
Gabor Kiss-Vamosi
d28f80d362 refactor(style): rename shadow_ofs to shadow_offset 2023-10-31 19:10:02 +01:00
Gabor Kiss-Vamosi
0721884ee9 refactor: disp->display, res->result/resolution, hor/ver->horizontal/vertical, txt->text, angle->rotation, zoom->scale 2023-09-18 22:57:30 +02:00
Gabor Kiss-Vamosi
09c12d0f9c refactor(btn, img): rename btn to button and img to image 2023-09-14 20:12:31 +02:00
Gabor Kiss-Vamosi
f753265a79 arch(draw): add parallel rendering architecture
BREAKING CHANGE

This is a huge update which introduces parallel rendering. lv_conf.h needs to be updated too.
2023-07-05 13:05:19 +02:00
_VIFEXTech
540c028d60 feat(profiler): add performance profiler hook (#4211)
Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com>
Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
2023-05-11 11:10:47 +02:00
Gabor Kiss-Vamosi
5369d7d473 arch(conf, api) refactor lv_conf and some API (#3501)
Kconfig and MicroPython config is not updated yet.


* start to refactor lv_conf.h

* further mem refactoring

* create lv_mem_builtin.c/h

* update lv_conf_internal.h

* add lv_strlen and lv_strncpy

* rename LV_DRAW_COMPLEX to LV_USE_DRAW_MASK

* update lv_conf_template

* minor fix
2022-07-19 13:31:42 +02:00
guoweilkd
060b37e8fb fix(draw_rect): delete __STDC_VERSION__ to ensure C++ compatibility (#3099) 2022-02-17 12:31:16 +01:00
X-Ryl669
6617385f8a feat(draw): add gradient dithering support (#2872)
* Add dithering to gradients

* Add support for 8x8 matrix for ordered dithering

* Fix CI errors

* Try error diffusion on vertical gradient too

* Vertical error diffusion dithering

* Add support for runtime based dithering mode selection (from none, ordered, error diffusion).

* Reduce the binary size of the code by sharing the dithering table when appropriate.

* Fix CI

* Fix CI

* Review corrections

* Fix union mapping

* Revert bg_color changes

* Fix for keeping bg_color in the API.

* Fix after review

* Add support for setting multiple stops per gradient in the style API

* Let's make an example

Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
2022-01-11 12:38:30 +01:00
Gabor Kiss-Vamosi
db53ea925c arch(draw): allow replacing the draw engine
BREAKING CHANGE: the API of lv_draw_... function have been changed
2021-12-21 15:54:22 +01:00
Gabor Kiss-Vamosi
8f6b1f8d6c arch(draw) separate SW renderer to allow replacing it (#2803)
* decouple sw renderer

* simplify blend interface

* make tests pass

* udpate makefiles

* fix warning

* fix build errors

* run code formatter

* antialias fix
2021-11-26 12:44:10 +01:00
Gabor Kiss-Vamosi
81d8be13d6 fix(draw) simplify how outline_pad is compnesated
Previously it was impossible to set outline_pad=0.
Now it's simply reduced by 1 during drawing
to avoid color bleeding with outline_pad=0.
2021-11-23 13:45:46 +01:00
Gabor Kiss-Vamosi
075831a54c fix(draw) border_draw crash is special case 2021-11-11 17:31:52 +01:00
Gabor Kiss-Vamosi
4c034e56e0 fix(draw) fix horizontal gradient drawing 2021-11-09 15:29:55 +01:00
guoweilkd
372f94b7de fix(draw_border):draw error if radius == 0 and parent clip_corner == true (#2764) 2021-11-05 12:08:56 +01:00
guoweilkd
f43a33921a fix(draw_rect):bottom border lost if enable clip_corner (#2742) 2021-10-29 10:57:45 +02:00
guoweilkd
74258507fc fix(draw border):border draw error if border width > radius (#2739) 2021-10-28 17:23:40 +02:00
Mariotaku
efc5bb40d9 feat(drawing) hardware accelerated rendering by SDL2 (#2484)
* Hardware accelerated SDL render WIP

* Rect drawing code cleanup

* Fixed arc drawing angle
Fixed compact rect drawing

* Refactoring
Fixed cache deinit order

* Image recolor
Drawing left and right border

* Math problems

* Improving draw cache

* Improving line drawing logic

* Improving arc drawing quality

* Added round function

* Attempts to render properly on Pi

* Updated lruc function names

* Updated symbol names

* Saved ram by reusing part of background rect

* Added outline drawing
Removed arc texture caching

* rect drawing cache rendering

* high efficiency rect shadow texture caching

* fixed simple borders drawing

* fixed generic borders drawing

* Simplified text atlas caching logic
Supports chroma keyed image

* Color palette WIP

* Improved draw cache

* Updated defines for better build

* renaming files for better consistency

* fix includes

* Updated lv_conf_internal with generator

* Fixing build issues

* fixed img rotation pivot

* better font atlas caching WIP

* fix includes

* full font atlas support
improved gpu caching for rect

* update conf header

* fix palette creation

* Fixed font atlas key matching

* fixed chroma key image background

* added 3bpp mask palette (WIP)

* fixed caching key initialization

* disabled gpu arc drawing for now
updated naming convention

* updated naming convention

* fix makefile and include path

* improved rect drawing when having masks

* improved rect drawing when having masks

* reduced texture allocation while drawing with mask

* accurate clipping for rects and texts

* fixed build error

* fixed build error

* line drawing WIP

* updated imports

* fixed freezes if LRU has smaller new item

* fixed clipping rect color

* fixed build error

* using built-in free function for LRU key

* Added custom background drawing function

* fixing imports

* fixed shadow bitmap on old SDL libs

* improved draw_img compatibility

* fixing font baking

* fixed font rendering

* fixed lv_draw_line check

* configurable SDL include path

* disabled SDL line drawing implementation

* supports screen resize

* sdl: Remove duplicated object

Observed issue:

  /usr/bin/ld: lv_gpu_sdl_texture_cache.o: \
  in function `_lv_gpu_sdl_texture_cache_init':
  lv_gpu_sdl_texture_cache.c:(.text+0x30): \
  multiple definition of `_lv_gpu_sdl_texture_cache_init'; \
  lv_gpu_sdl_texture_cache.o:lv_gpu_sdl_texture_cache.c:(.text+0x30): \
  first defined here

Forwarded: https://github.com/mariotaku/lvgl/pull/1
Relate-to: https://github.com/lvgl/lvgl/pull/2484
Signed-off-by: Philippe Coval <philippe.coval@huawei.com>

* Reduced opening of image

* Closes image resource properly

* improved draw image logic

* Moved driver related code to lv_drivers

* fixed lv_deinit implicit sdl code invocation

* improved shadow clipping

* fixed outline area invalidation

* updated comments

* formatted code using astyle

* Updated README

* formatted code

* fixed typo

* fixed static declaration

Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
Co-authored-by: Philippe Coval <philippe.coval@huawei.com>
2021-09-16 18:20:32 +02:00
Gabor Kiss-Vamosi
f810265c0d fix(draw) shadow darwing with large shadow width 2021-09-13 15:02:29 +02:00
Gabor Kiss-Vamosi
d67dd943ca format run code-formtter.sh
related to #2543
2021-09-13 14:06:26 +02:00
Xiang Xiao
9fc0c3cf98 fix(lv_log.h): remove the duplicated semicolon from LV_LOG_xxx (#2544)
and fix the caller who forget to add semicolon at the line end

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-09-09 15:34:36 +02:00
Gabor Kiss-Vamosi
4250e3c627 fix(draw) fix shdow drawing with readius=0
fixes #2519
2021-09-02 13:40:22 +02:00
ckielstra
5249a34d5d docs more spelling fixes (#2499) 2021-08-27 12:15:39 +02:00
Gabor Kiss-Vamosi
20f1867596 fix(draw) fix border width of simple (radius=0, no masking) borders 2021-08-25 16:43:48 +02:00
Gabor Kiss-Vamosi
13e347055b fix(draw) fix gradent calculation of the rectangle is clipped 2021-08-17 16:53:55 +02:00
Gabor Kiss-Vamosi
01237da474 fix(draw) fix rectangle drawing with clip_corner enabled
fixes #2457
2021-08-17 16:53:55 +02:00
Gabor Kiss-Vamosi
a8427915c7 perf(draw) ignore masks if they don't affect the current draw area 2021-08-05 17:39:59 +02:00
Gabor Kiss-Vamosi
5b3d3dc8b3 perf(draw) reimplement rectangle drawing algorithms
No functionalty has changed only make them more readable and faster.
2021-08-02 15:45:14 +02:00
Gabor Kiss-Vamosi
637b706ddc perf(draw) reimplement circle drawing algorithms (#2374)
* perf(draw) reimplement circle drawing algorithms

Imporve the speed of circle drawing
Add circle draw caching
Various other speed improvements

* docs describe how to use masks

* fix(draw) add missing GC root usage
2021-07-27 19:16:00 +02:00
Gabor Kiss-Vamosi
b3d9ab0657 fix warnings 2021-05-03 19:20:02 +02:00
Gabor Kiss-Vamosi
3d4c4aea3c feat(draw) allow using argb images, border and outline with LV_DRAW_COMPLEX=0 too 2021-05-03 18:54:24 +02:00
Gabor Kiss-Vamosi
a6d3eff4db fix(draw_outline) do not change the outline_width based on the outline_pad
fixes: #2171
2021-04-12 12:15:31 +02:00
Gabor Kiss-Vamosi
53f3cc1827 api(style) remove content style proeprties 2021-03-25 13:36:50 +01:00
Xiang Xiao
9254a7ea14 fix(comment): remove the space after /* and before */ 2021-03-18 11:51:36 +08:00
Gabor Kiss-Vamosi
87c4a0ffef fix conflicts 2021-03-17 10:24:48 +01:00
Gabor Kiss-Vamosi
0cc1e99ddf remove the lv_ prefix from the directories in the src folder 2021-03-16 20:36:27 +01:00