Commit Graph

89 Commits

Author SHA1 Message Date
Clyde Stubbs
61223a3cc9
[font] Make display an auto-load, not a dependency (#7366)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2024-09-02 08:45:40 +12:00
Michael Davidson
15602b0664
Add text_align_to_string (#7243) 2024-08-12 08:06:29 +12:00
tomaszduda23
f1584205af
[core] Rename ALWAYS_INLINE to ESPHOME_ALWAYS_INLINE (#6636) 2024-05-06 07:52:47 +12:00
NP v/d Spek
031e26ad98
Display: add diagnostic test_card option (#6608)
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com>
2024-04-26 13:23:28 +10:00
Daniel Eisterhold
8fd10d6859
Add line_at_angle method to Display component (#6381) 2024-03-18 12:51:46 +13:00
Clyde Stubbs
e4df422798
font: add anti-aliasing and other features (#6198)
* Pack glyph bits

* Use unsigned chars for unicode strings.

* Implement multi-bit glyphs

* clang-format

* Allow extra glyphs to be added to a font

* Allow .otf and .woff file extensions

* Add printf versions with background color;
Add tests

* Whitespace...

* Move font test to new framework

* CI fix

* CI fix

* CODEOWNERS

* File extensions tested as case-insensitive
2024-03-11 04:03:39 -05:00
mathieu-mp
4aeb8e8081
Add regular polygon shapes to display component (#6108) 2024-03-01 16:49:26 +13:00
NP v/d Spek
5393a09872
Touchscreen component and driver fixes (#5997)
* Introduce calibration settings for all touchscreen drivers.
this will override the common values.
The x,y coordinates only calculated when the right calibrations are set.

* resolve issues reported by CI

* remove unneeded spaces and newlines

* Forgot to remove some obsolete code

* remove get_setup_priority from xpt2046

* remove media_player changes.

* media_player: removed to much,

* Update suggestions

* referd back the `get_setup_priority` removal so it can be moved into a othe PR.

* tt21100: restore init read

* fix spacing

* load native display dimensions instead of using internal dimensons.
and load it only onse on setup

* moved `update_touches()` to protexted section

* adding Clydes PR#6049

* add multitouch test script

* Update all Touchscreen replacing `get_*_internal` to `get_native_*`

* fixed some CI recomendations

* couple of fixes

* make sure the display is running before  touchscreen is setup

* fix clang

* revert back last changes

* xpt2046: change log level for testing

* logging information

* add test file

* fix polling issue with the for example the xpt2046

* fixed some CI issues

* fixed some CI issues

* restore mirror parameter discriptions

* same for the swap_xy

* same for the transform

* remove the above const from const.py

* and put  the above const bacl const.py

* Merge branch 'nvds-touchscreen-fix1' of https://github.com/nielsnl68/esphome into nvds-touchscreen-fix1

* and put  the above const bacl const.py

* [tt21100] making interupt pin optional

* [tt21100] making interupt pin optional (now complete)

* update the display part based on @clyde'
s changes.

* fix issue with ft6x36 touvhscreen

* reverd back touch check. add comment

* add some extra checks to the ft6x36

* add an other log and a typo fixed

* okay an other fix.

* add an extra check like others do
and fix data type

* [ft6336] fix update race when ts is touched.

* [touchscreen] update some log's with a verbose level.

* fix clang issues

* fix the clang issues

* fix the clang issues

* fix virtual issue.

* fix the clang issues

* an other clang issues

* remove anti-aliased fonts support. It does not belong here.

* remove anti-aliased fonts support. It does not belong here.

* rename test script

* Moving the test files to there right location.

* rename the test files

* clean up the code

* add a new line

* clang fixings

* clang fixings

* remove comment

* remove comment

* Update esphome/components/touchscreen/__init__.py

Co-authored-by: guillempages <guillempages@users.noreply.github.com>

* Update esphome/components/touchscreen/__init__.py

Co-authored-by: guillempages <guillempages@users.noreply.github.com>

* Update esphome/components/touchscreen/__init__.py

Co-authored-by: guillempages <guillempages@users.noreply.github.com>

* Update esphome/components/touchscreen/touchscreen.cpp

* Update esphome/components/touchscreen/touchscreen.cpp

* [ft63x6] add threshold

---------

Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com>
Co-authored-by: guillempages <guillempages@users.noreply.github.com>
2024-02-28 02:42:11 +00:00
mathieu-mp
39bd829236
Fix color observation for triangle outline in display component (#6107) 2024-01-18 08:40:30 +09:00
mathieu-mp
72ab1700e7
Add triangle shapes to display component (#6096) 2024-01-16 15:38:09 +09:00
guillempages
8e83c7dd19
Let show_*_page actions depend on "Display" (#6092)
Instead of forcing a DisplayBuffer, let the display page actions use Displays without buffer.
2024-01-14 08:01:32 +11:00
Clyde Stubbs
ae52164d9c
Display: Introduce draw_pixels_at() method for fast block display rendering (#6034)
* Introduce `draw_pixels_at()` method for fast block display rendering

* Add check for 18 vs 16 bit display.
2024-01-01 17:34:40 -06:00
NP v/d Spek
46fc37b691
Display: fix class inherence in Python script (#6009) 2023-12-24 22:58:27 +09:00
Michael Davidson
b30430b0bd
Add graphical display menu (#4105)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
Co-authored-by: Alex Hermann <gaaf@gmx.net>
2023-12-12 12:15:59 +09:00
Clyde Stubbs
dbdcb39af9
Pull PollingComponent up from individual display drivers to Display. (#5444) 2023-11-27 09:48:38 +13:00
Kamil Trzciński
1691c13b47
display: Add helper methods to Display::clip and Display::clamp_x/y_ (#5003)
* display: `Rect` make most of methods `const`

* display: add `clip` and `clamp_x/y_` methods for clipping to `Display`
2023-07-14 15:30:19 -05:00
Kamil Trzciński
98fd092053
display: rename DisplayBufferRef to DisplayRef (#5002) 2023-07-10 16:38:28 -05:00
Kamil Trzciński
677b2c6618
display: split DisplayBuffer and Display (#5001) 2023-07-05 14:33:26 -05:00
Kamil Trzciński
8a1c49a4ae
display: move Image, Font and Animation code into components (#4967)
* display: move `Font` to `components/font`

* display: move `Animation` to `components/animation`

* display: move `Image` to `components/image`
2023-06-24 17:56:29 -05:00
Kamil Trzciński
85608a8ab7
display: fix white screen on binary displays (#4991) 2023-06-22 14:18:29 -05:00
guillempages
ee12c68b8f
Add actions to animation (#4959) 2023-06-20 10:50:02 +12:00
Kamil Trzciński
62d2640c37
display: move Rect into rect.cpp/.h (#4957) 2023-06-18 23:32:39 +00:00
Kamil Trzciński
54eb52c19a
display/font: optimise font rendering by about 25% (#4956) 2023-06-18 23:29:43 +00:00
Kamil Trzciński
8c9d63f48f
display: add BaseFont and introduce Font::draw methods (#4963) 2023-06-19 11:04:19 +12:00
Kamil Trzciński
e1b0d86098
display: allow to align image with ImageAlign (#4933) 2023-06-19 07:24:23 +12:00
guillempages
ffa669899a
Split display_buffer sub-components into own files (#4950)
* Split display_buffer sub-components into own files

Move the Image, Animation and Font classes to their own h/cpp pairs,
instead of having everything into the display_buffer h/cpp files.

* Fixed COLOR_ON duplicate definition
2023-06-17 03:32:07 -05:00
Kamil Trzciński
0411d52420
display: add BaseImage and provide only Image::get_pixel method (#4932) 2023-06-15 11:15:46 +12:00
Kamil Trzciński
cef659b0de
display: Improve Image rendering by removing usage of virtual functions (#4931) 2023-06-15 09:50:24 +12:00
Jesse Hills
302dea4169
Move ESPTime into core esphome namespace (#4926)
* Prep-work for datetime entities

* Fix some includes and remove some restrictions on printing time on displays

* format

* format

* More formatting

* Move function contents

* Ignore clang-tidy
2023-06-08 17:24:44 -05:00
guillempages
9cd173ef83
Allow partially looping animations (#4693)
Add the possibility of specifying a "loop" in an animation; where the
requested frames (start - end) will be repeateadly shown for "count" times.
2023-05-25 16:49:52 -05:00
guillempages
8a518f0def
Add transparency support to all image types (#4600) 2023-05-22 08:03:21 +12:00
Fabian
a8b821c213
[display] Small display print performance improvement (#4788) 2023-05-10 12:47:24 +12:00
Oxan van Leeuwen
14e38f0469
Upgrade clang-format to v13 (#4535)
* Upgrade clang-format to v13

* Apply clang-format-13 formatting changes

* Format

* Format bme_680

---------

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-03-20 03:38:41 +00:00
NP v/d Spek
2f50e18eb5
fixing shrink and extend functions of the displaybuffer's Rect class (#4565)
* fixing rectangle's `shrink` and `extend`

* fixed the rect::shrink and rect::inside methods
and added rect:equal() method

* fixed internal clang issue again. When would is
this going to be fixed :(

* fixed internal clang issue again. When would is
this going to be fixed :(

* remove trailing space
2023-03-15 19:45:50 +00:00
Oxan van Leeuwen
801fbf44c5
Revert storing Font glyphs in manually-allocated memory (#4516)
This partially reverts commit 62459a8ae1.
2023-03-09 00:14:34 +00:00
Fabian
62459a8ae1
Move Font glyphs to SPI RAM. (#4485)
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-02-26 18:45:30 +00:00
NP v/d Spek
58eeb6b1b8
Fix check for empty clipping array (#4421) 2023-02-12 17:03:53 +01:00
NP v/d Spek
f8acc45be4
Add Clipping to displaybuffer (#4271)
* adding Clipping support to the displaybuffer
- add rect structure

* removed unused define

* add missing property for storing the clipped areas

* include log header

* Move Rect method's code to cpp file
- removed obsolete remarks

* fixed reported issues

* make Rect class methods public

* clang fix

* Remove commented code

* Renaming clipping methods

* Multiple changes:
- replaced 32766 with VALUE_NO_SET
- fixed the way *_clipping(left, top, right, bottom) is stored
- add `is_clipping();`
- make sure that all clipped region are closed after `do_update_()`
- rename de parameters for `Rect::expand();`

* remove unneeded space

* replace define with static const uint8_t

* correcting my copy paste mistake

---------

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-02-11 09:56:15 +13:00
NP v/d Spek
86a8e1f4a6
small DisplayBuffer images and font update (#4044)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-01-11 14:55:02 +13:00
Jesse Hills
9273e3775b
Add vector includes (#4080) 2022-11-24 13:12:55 +13:00
davestubbs
77fb02729e
Added support for setting the current animation frame (#3681) 2022-08-09 10:28:05 +12:00
André Klitzing
72cce391ab
Fix some typos found by codespell (#3598) 2022-06-27 18:02:46 -03:00
guillempages
d0dda48932
Add display_type property to DisplayBuffer (#3430)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2022-06-03 15:39:04 +12:00
Dave T
c000e1d6dd
Ili9341 8bit indexed mode pt1 (#2490) 2022-05-19 10:23:00 +12:00
Dave T
39c6c2417a
Remove duplicate convert_to_8bit_color_ function. (#2469)
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
2022-05-12 22:18:51 +12:00
LuBeDa
69118120d9
added prev_frame for animation (#3427) 2022-05-10 21:56:29 +12:00
LuBeDa
68dfaf238b
added RGB565 image type (#3229)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2022-04-27 08:41:10 +12:00
Wouter van der Wal
a718ac7ee0
Add qr code support for displays (#2952)
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
2022-01-26 22:20:45 +13:00
Jesse Hills
ef832becf1
Create base touchscreen component and refactor ektf2232 (#3083)
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
2022-01-26 16:26:46 +13:00
Oxan van Leeuwen
80d03a631e
Force braces around multi-line statements (#3094)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2022-01-25 08:56:36 +13:00