Commit Graph

158 Commits

Author SHA1 Message Date
Mariotaku
49dc90a2b6 fix(sdl): fix clipped image drawing (#2992)
* fixed clipped image drawing

* make sdl blend mode a feature toggle

* improved textarea cursor fidelity

* added some comment to config

* updated config header

* updated formatting
2022-01-13 16:56:56 +01:00
X-Ryl669
38ad11966a fix(draw): missed bg_color renaming in the draw function (#3002) 2022-01-13 13:02:23 +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
0645af32a2 doc(gpu): add a page for external GPU support and draw_ctx
related to: #2988
2022-01-11 11:35:28 +01:00
_VIFEXTech
828744f11d fix(Makefile): compilation errors (#2944)
* fix(Kconfig) remove duplicate LV_BUILD_EXAMPLES configuration

* feat(refr) add reset of FPS statistics

* fix(conf) mismatched macro judgment

* fix(Makefile) compilation errors

Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com>

Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
2022-01-10 11:17:03 +01:00
Mariotaku
9bbf661dd4 perf(sdl): optimize the use of SDL_RenderSetClipRect (#2941)
* reduce SDL_RenderSetClipRect as much as possible

* added some comments

* removing draw_sw usage

* fixed import

* implemented polygon drawing

* supports subimage for sdl texture based images

* fixed formatting

* removed unused code

* cleanup

* cleanup

* formatted code
2022-01-05 10:01:18 +01:00
Gabor Kiss-Vamosi
81bfb765e5 fix(draw): futher bg_img draw fixes 2022-01-04 10:27:34 +01:00
Gabor Kiss-Vamosi
5a0dbccf89 fix(draw): fix indexed image drawing 2022-01-03 20:10:55 +01:00
Mariotaku
fc25194ed5 feat(draw): add draw_bg callback to draw_ctx #2934 (#2935)
* this is for #2934
reduced usage of blend mode
introduced draw_bg for draw_ctx

* fixed formatting
2021-12-22 19:03:44 +01:00
Gabor Kiss-Vamosi
d3b7b4acfd chore(draw): add lv_draw_sw_wait_for_finish 2021-12-22 17:01:36 +01:00
Gabor Kiss-Vamosi
11b54a2086 chore: fix warnings 2021-12-21 16:06:11 +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
guoweilkd
8315eb1ca4 feat(txt): add used_width parameter to _lv_txt_get_next_line() (#2898) 2021-12-21 10:37:02 +01:00
_VIFEXTech
01973c2242 fix(sdl) correct makefile (#2884)
Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
2021-12-08 09:19:31 -05:00
Neo
e50950683d fix(draw): fix set_px_cb memory write overflow crash. (#2882) 2021-12-07 13:46:02 +01:00
Gabor Kiss-Vamosi
43729d1502 fix(build) fix sdl build with make
fixes 1281abef9e (commitcomment-61235260)
2021-12-06 10:44:23 +01:00
ckielstra
91fc579ee7 docs fix spelling, parameter descriptions, comments, etc (#2865) 2021-12-02 08:44:05 -05:00
Duco Sebel
5ed1eec68c fix(arc) free memory when drawing full-circle arc (#2869) 2021-12-02 08:37:46 -05:00
Virus.V
79f1be5cfa fix(draw): fix memory access out of bounds when using blend subtract (#2860)
* fix(draw) fix memory access out of bounds when using blend subtraction mode (#2847)

* fix(draw) correct the drawing error of fill_set_px
2021-12-01 14:53:31 +01:00
Mariotaku
1281abef9e arch(sdl) migrated to use new backend architecture (#2840)
* migrated to use new backend architecture

* formatted code

* with direct_mode blend coordinates are working now

* added draw_img_core to backend

* moving from gpu/sdl to draw/sdl

* updated format

* updated format

* fixed include path

* fixing build issue
2021-11-29 14:53:06 +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
Xiang Xiao
3a0069adf8 chore(format): run code-format.sh (#2822)
* fix(format): run code-format.sh

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>

* fix(astyle): add the 3rd party source file to exclude list

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-11-22 13:32:48 +01:00
Mariotaku
3ea4d66411 feat(font) add fallback support and mem. font load option to FreeType (#2796)
* adding font type check

* using theme specified font
supports freetype drawing

* adding font type check

* using theme specified font
supports freetype drawing

* freetype fallback font support

* improved fallback font

* updated fallback font modifier

* docs(events) LV_EVENT_APPLY was removed (#2791)

* reverted to default font logic

* removed unused function

* improved font fallback

* font fallback for default lv_draw_letter as well

* added back masked drawing support

* fallback support for freetype uncached

* updated description

* fixed constructor initialization for ISO C

* reverted unneeded changes

* using loop instead of recursion to resolve glyph info

* simplified glyph dec resolving

* removed unused enum value

* improved lv_font_fmt_ft_dsc_t field naming

* supports pointer as freetype font source

* Updated docs for font fallback

Co-authored-by: Vincent Hamp <higaski@users.noreply.github.com>
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
2021-11-22 10:43:58 +01:00
guoweilkd
fa6e49df5b fix(draw_label): radius Mask doesn't work in Specific condition (#2784) 2021-11-12 12:24:26 +01:00
Gabor Kiss-Vamosi
075831a54c fix(draw) border_draw crash is special case 2021-11-11 17:31:52 +01:00
guoweilkd
1167bdfd52 fix(draw_mask): will crash if get_width/height < 0 (#2793) 2021-11-11 17:27:05 +01:00
guoweilkd
7e2e25a9d6 fix(draw_img): radius mask doesn't work in specific condition (#2786) 2021-11-10 10:39:20 +01:00
Gabor Kiss-Vamosi
cc78ef4506 feat(draw) add LV_BLEND_MODE_MULTIPLY 2021-11-09 15:34:30 +01:00
Gabor Kiss-Vamosi
4c034e56e0 fix(draw) fix horizontal gradient drawing 2021-11-09 15:29:55 +01:00
Xiang Xiao
58d9645a5c chore: replace (void)xxx with LV_UNUSED(xxx) (#2779)
and remove the redundant inclusion

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-11-09 13:48:02 +01:00
guoweilkd
3bd53b984d fix(draw_map) use existing variables instead function calls (#2776) 2021-11-08 10:47:57 +01:00
guoweilkd
47de6f05dc fix(draw_img): fix typos in API comments (#2773) 2021-11-08 09:15:18 +01:00
guoweilkd
cbf02f8175 fix(draw_img):radius Mask doesn't work in Specific condition (#2775) 2021-11-08 09:02:42 +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
Matteo Iervasi
d6341f05a9 fix(core) add L suffix to enums to ensure 16-bit compatibility (#2760) 2021-11-03 14:28:12 -04:00
Gabor Kiss-Vamosi
d9d3f27126 fix(printf) add (int) casts to log messages to avoid warnings on %d 2021-11-03 11:53:03 +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
Xiang Xiao
91cf82d081 fix: mark unused variable with LV_UNUSED(xxx) instead of (void)xxx (#2734)
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-10-27 10:00:06 +02:00
Gabor Kiss-Vamosi
924bc754ad fix various minor warnings
- remove stdio.h when possible
- use LV_LOG_WARN to instead of printf
2021-10-26 10:06:29 +02:00
Gabor Kiss-Vamosi
78158f039f fix(blend) fix green channel with additive blending 2021-09-30 18:02:16 +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
Kevin Thibedeau
ec9b41a05f fix(zoom) multiplication overflow on 16-bit platforms (#2536) 2021-09-06 21:40:38 -04: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