Commit graph

162 commits

Author SHA1 Message Date
Olivier Goffart
199dc1fb18 upgrade stm32h7xx-hal 2022-04-27 09:00:52 +02:00
Olivier Goffart
e41c15aef9 stm32h735g: Add support for double frame buffer and timing 2022-04-27 09:00:52 +02:00
Olivier Goffart
a81d8b7ba4 stm32h735g: The screen actually show the UI now 2022-04-27 09:00:52 +02:00
Olivier Goffart
4755f57fb2 stm32h735g: The screen now show something 2022-04-27 09:00:52 +02:00
Olivier Goffart
0e0526912d WIP: attempt to get the display working on stm32h735g
(doesn't work, the screen is plain white)
2022-04-27 09:00:52 +02:00
Olivier Goffart
df95ee79ba WIP: setup OCTOSPI2 ram 2022-04-27 09:00:52 +02:00
Olivier Goffart
cc98d53b28 WIP: more work on stm32h735g 2022-04-27 09:00:52 +02:00
Olivier Goffart
703cffd444 WIP: STM32H735G support 2022-04-27 09:00:52 +02:00
Olivier Goffart
f5baef4262 MCU: fix drawing of clipped rounded rectangle with border 2022-04-12 16:15:33 +02:00
Olivier Goffart
cc1aad8ce9 MCU: fix panic in the renderer
Sometimes, BorderRectangle clips can get negative if the intersection
of two rectangle leads to a rectangle that is smaller than the previous
rectangle, but because of floating point error while computing the max
position, the resulting clip may still be negative.
Add a small value to compensate that error
2022-04-12 16:12:41 +02:00
Olivier Goffart
8327ab3e52 MCU renderer: query the geometry of items we do not support
So that we can register dependencies and refresh when it moves, even
if we don't draw anything for them
2022-04-12 13:02:58 +02:00
Olivier Goffart
1b91158b46 corelib: allow to use i32 for coordinate instead of f32 2022-04-11 17:46:50 +02:00
Simon Hausmann
afb59cba29 mcu: fix popups not visibly closing
When closing a popup, notify the platform window, so that the mcu
backend can remember that region and start the dirty region with it.

Also, free all the rendering cache items of deleted items, to avoid accidental re-use
when re-opening a popup.
2022-04-08 19:32:33 +02:00
Simon Hausmann
db54da2064 mcu: Don't panic when opening popups
Implement popups as inline components. The dirty region handling however
is still missing when closing a popup.
2022-04-08 16:46:12 +02:00
Simon Hausmann
70f3f50359 mcu: Add support for automatic font size detection
Continue to support specififying logical font sizes in the compile step
via SLINT_FONT_SIZES, but additionally look for Text/TextInput/Window elements
and extract any constant font sizes
found.

This makes it work out of the box with the printer demo.
2022-04-08 15:11:26 +02:00
Simon Hausmann
335502be3f Upgrade to femtovg 0.3.4
The GL optimizations are in this release now and this also fixes #843
2022-04-07 13:56:23 +02:00
Simon Hausmann
143167f82f
Bump up the SPI frequency for the display controller (#1115)
* Bump up the SPI frequency for the display controller
2022-03-30 15:40:59 +02:00
Lukas Jung
b6171530ab replace text_input_position_for_byte_offset with text_input_cursor_rect_for_byte_offset 2022-03-28 10:07:07 +02:00
Olivier Goffart
cf49568373 Compiler: make the image processing an enum in the config 2022-03-24 13:16:21 +01:00
Olivier Goffart
41b20fdd59 MCU build system: pass information about embedding images and glyph to the compiler
... using metadata from the build script send with the DEP_I_SLINT_BACKEND_MCU

Saves two environment variable that we don't have to pass
2022-03-24 13:16:21 +01:00
Olivier Goffart
5fb41f92d1
Update MCU readme a little 2022-03-23 11:15:44 +01:00
Olivier Goffart
eb9092ba15 MCU: run the timers 2022-03-18 18:51:29 +01:00
Olivier Goffart
ed60dcb6b5 MCU pico: increase heap size
So it doesn't do out of memory with the printerdemo_mcu in normal
usage
2022-03-18 09:33:23 +01:00
Olivier Goffart
8f4df47b1c MCU pico: adjust the touch driver thresholds
The Press and Release threshold where inverted.

Also increase the Flickable threshold because the precision of the
touch screen is too low, and if the threshold is too small, we
can't click on things inside a Flickable
2022-03-18 09:33:16 +01:00
Olivier Goffart
66fa1fcfee
MCU readme: remove the scale factor
The new demo don't need it
2022-03-17 16:04:38 +01:00
Olivier Goffart
42947b3fe2 MCU renderer: Fix border radius bigger than the item 2022-03-17 07:34:23 +01:00
Olivier Goffart
3e7e575f41 Implement the length traits with generics 2022-03-17 07:34:23 +01:00
Olivier Goffart
8f67b1170c MCU renderer: fix artifact when drawing clipped border rectangle
(It would sometimes miss a couple pixel for small clips otherwise)
2022-03-17 07:34:23 +01:00
Olivier Goffart
8afee6b3ff MCU renderer: implement image-fit 2022-03-17 07:34:23 +01:00
Olivier Goffart
14a8a6faa2 MCU: improve touch driver
- use both z1 and z2 to compute the pressure because these number
   depends on the temperature so we need to use both
 - check the pressure at the end of the reading in case it was
   released when reading
 - have different pressure threshold when the button is already
   pressed so we avoid emitting a release too early
2022-03-16 13:04:42 +01:00
Olivier Goffart
8cae8b9602 MCU: Make the debug show more lines 2022-03-16 13:04:42 +01:00
Olivier Goffart
ed3419ac0e MCU renderer: Fix another rounding error
We need to use round_in() instead of cast() as cast() discard
too much data if both the x position and the width position are 0.5
then we loose one pixel of width
2022-03-16 10:36:17 +01:00
Olivier Goffart
b510c2f7a2 MCU: fix drawing clipped images
The computation of the coordinate was not correct. The coordinate was
turncated in the case of Image. And for Text, the image was drawn smaller
instead of being clipped
2022-03-15 15:15:45 +01:00
Olivier Goffart
b54b9bae61 MCU partial renderer: Actually do not draw items that are not in the dirty region
We computed the clip, but still generated span and even rendered the full
line for items that were meant to be clipped
2022-03-15 09:42:17 +01:00
Olivier Goffart
608211b0d6 MCU: Allow to use RGB565 for the draw buffer 2022-03-14 15:52:09 +01:00
Olivier Goffart
d7c998b649 Remove unused commented code 2022-03-14 11:50:05 +01:00
Olivier Goffart
2260681075 Janitor: bump rp-pico dependency 2022-03-14 11:50:05 +01:00
Olivier Goffart
bcb06e94c9 MCU renderer: fix clipping of rounded rectangle
We need to do the conversion from float to int after doing the
substraction or we might clip too much if the position is not
a round number
2022-03-11 20:39:54 +01:00
Olivier Goffart
b75e9a8cf3 Revert "MCU renderer: Do not call geometry() to avoid creating bindings on x and y"
This reverts commit dea0990fb1.

Otherwise the dirty tracker don't register dependency on x and y
2022-03-11 15:27:47 +01:00
Olivier Goffart
dca597b9f1 MCU renderer: skip empty text early 2022-03-11 14:53:19 +01:00
Olivier Goffart
8038f6e6ea MCU: don't draw clipped text 2022-03-11 14:53:19 +01:00
Olivier Goffart
dea0990fb1 MCU renderer: Do not call geometry() to avoid creating bindings on x and y 2022-03-11 14:53:19 +01:00
Olivier Goffart
ee3d375c12 MCU renderer: add performence counter for the dirty items 2022-03-11 14:53:19 +01:00
Olivier Goffart
cbed63f60d MCU renderer: optimize the line processing step
Do all the things in-place so we do not need to allocate
2022-03-11 12:39:09 +01:00
Simon Hausmann
2e7f6f55a2 Adapt to simplier line layout callback signature 2022-03-10 10:51:32 +01:00
Simon Hausmann
7faabdbbbc Adapt to changed text line layout API 2022-03-10 10:51:32 +01:00
Simon Hausmann
525d24fc49 Prospective build fix
Remove unused trait
2022-03-10 10:51:32 +01:00
Simon Hausmann
f57e9ef50c Adapt to the TextShaper API changes in the mcu font backend 2022-03-10 10:51:32 +01:00
Simon Hausmann
f6b484ca91 Implement glyph_for_char in mcu font to support elision 2022-03-10 10:51:32 +01:00
Simon Hausmann
9b9d6efdc8 Adapt the mcu text code to use glyph based layout callback 2022-03-10 10:51:32 +01:00