Olivier Goffart
6d316185fc
Fix Painting of native widget
...
the cx and cy needs to be the same as the widget position
2021-01-14 08:52:22 +01:00
Olivier Goffart
b157648ab2
More work towards getting native widget with the femtovg backend
2021-01-14 08:52:22 +01:00
Simon Hausmann
7643174f28
Use interior mutability for the canvas
...
We're going to need it later for the resource releasing
2021-01-14 08:52:22 +01:00
Olivier Goffart
f7c8d53e7a
Port the Qt Native item to the new API
...
this mostly restores code that was removed in commit 1a260b9dce13db38128f1f489633ba96f264d461
2021-01-14 08:52:22 +01:00
Simon Hausmann
d159a3b523
Implement caching of images
...
Don't re-load/decode the image every frame (and leak it), just load it
once per source change.
2021-01-14 08:52:22 +01:00
Olivier Goffart
4e9021b550
Use a type alias so that cbindgen generates the ItemVTable
2021-01-14 08:52:22 +01:00
Simon Hausmann
8cfcc9bbf9
Fix image positioning, part 2
...
Don't forget the item's origin
2021-01-14 08:52:22 +01:00
Simon Hausmann
9b72081f01
Fix image scaling
...
Scale only the image if requested, not its position
2021-01-14 08:52:22 +01:00
Simon Hausmann
d92fe445d5
Remove the old GL renderer
...
and try to stub in the hooks to trigger the new one
2021-01-14 08:52:22 +01:00
Simon Hausmann
607fecdb18
Simplify rendering interface
...
Instead of passing through a generic transformation matrix, let's just
pass through what we actually use: a translation point
2021-01-14 08:52:22 +01:00
Simon Hausmann
d4f603246c
WIP: Start a femtovg backend
2021-01-14 08:52:22 +01:00
Simon Hausmann
8dea0c88d1
Beginning of a different way of rendering items
...
This is the start of a different rendering abstraction, the result of a
separate discussion.
The objective is to provide a better backend encapsulation, that will
make it easier to implement other backends and let the backend decide
what to cache and what not. This is done by passing the struct with the
Property<> fields directly to the backend, so that it can decide what
the cache and what to use every time.
2021-01-14 08:52:22 +01:00
Olivier Goffart
8797f6512d
Rename Slider min/max property
...
For consistency with the SpinBox
Fixes https://github.com/sixtyfpsui/sixtyfps/issues/138
2020-12-30 10:02:38 +01:00
Olivier Goffart
56b67eac8c
Complete the last patch to add a minimum/maximum properties to the SpinBox
2020-12-29 09:44:19 +01:00
Simon Hausmann
f13215ba2c
Bump the glow version
2020-12-23 09:52:24 +01:00
Olivier Goffart
16f5a03c14
Run cargo fmt
2020-12-18 10:29:15 +01:00
Olivier Goffart
dfa25b96f7
Rename SharedArray to SharedVector
2020-12-18 10:26:07 +01:00
Olivier Goffart
0d2d48be4f
Rename "signal" to "callback"
2020-12-18 09:51:01 +01:00
Simon Hausmann
ca1fb8ab0d
Fix GPU primitive vs. rendering variable division for Rectangle
...
Changing the border radius or border width does not require uploading a new geometry.
Therefore these can become rendering variables.
2020-12-15 18:08:33 +01:00
Olivier Goffart
b32b7a5a7e
Fix the "pressed circle" in the slide puzzle being a square on firefox android
2020-12-15 13:40:24 +01:00
Olivier Goffart
aea1b3393d
Fix wasm build
2020-12-15 12:38:42 +01:00
Olivier Goffart
2b5213c408
Refactor the rendering variables in a enum instead of an array
...
And finish the ImageFit::contain implementation
2020-12-15 12:16:44 +01:00
Olivier Goffart
26827733ac
Fix: disabled slider should not react to click
2020-12-14 09:44:10 +01:00
Olivier Goffart
63a0d9308b
Bump version
2020-12-14 08:49:54 +01:00
Olivier Goffart
f6d60c2662
Update winit
2020-12-11 16:17:45 +01:00
Simon Hausmann
d9a92aea81
Prospective fix for WebGL rendering performance on Windows
...
Disable anti-aliasing on the GL context, as that's often implemented
multi-sampling and it appears generally slow with Angle on Windows.Since
we do anti-aliasing ourselves, so it is not needed.
2020-12-10 09:41:29 +01:00
Simon Hausmann
8314fbbb86
Simplify the texture width/height calculation a little bit
2020-12-08 16:01:53 +01:00
Simon Hausmann
1b2261c562
Fix two compiler warnings about unsued code paths when targeting wasm
2020-12-08 12:09:44 +01:00
Olivier Goffart
125ec13f24
Bump version numbers
...
Note: this does not update the documentation yet
2020-12-07 15:41:29 +01:00
Olivier Goffart
c18f2ce1cc
Fix disabled widgets in the native style
2020-12-01 10:59:57 +01:00
Olivier Goffart
5bdb9befb5
Use the PopupWindow in the native style combobox
...
Note: the background is not styled yet
2020-11-30 18:39:41 +01:00
Simon Hausmann
49112cda9b
Fix deprecation warning from image-rs
...
Bump to the latest version and use the non-deprecated API
2020-11-26 10:56:21 +01:00
Simon Hausmann
fc4656571f
Tweak the html canvas handling
...
Refresh the canvas size if the browser window gets resized, for example due to orientation changes.
2020-11-26 10:42:04 +01:00
Olivier Goffart
c37f0ce4c4
Load the cursor width property from the style
...
Ideally we would put the bindings dirrectly in the builtins.60
But this is unfortunately not possible because the "StyleMetrics" is not
yet available there and that would be a circular dependencies.
2020-11-25 09:58:54 +01:00
Simon Hausmann
af8df5cfbe
More font handling cleanup
...
Rename FontHandle to PlatformFont
2020-11-25 08:39:32 +01:00
Simon Hausmann
f9ed6df123
Avoid unnecessary font loading with font-kit
...
Load (mmap) the font_kit::font::Font only once, not per pixel size.
2020-11-24 22:40:19 +01:00
Olivier Goffart
0c97b4f296
More use of the ItemRc
2020-11-24 13:42:34 +01:00
Simon Hausmann
f0289192b7
More font handling cleanup
...
Group all fields we need to determine a physical font into one FontRequest
structure and use that throughout.
That way adding more fields will require less changes.
2020-11-24 09:00:07 +01:00
Simon Hausmann
79b7e825bb
Minor cleanup of font cache handling
...
Store the font family as a SharedString, as that allows us to make a
lookup without a string copy.
2020-11-23 18:23:22 +01:00
Simon Hausmann
bad7734c21
Avoid leaking cached texture allocations
...
Let the texture cache hold weak references and drain them each time
the rendering primitives builder finishes.
2020-11-23 16:26:21 +01:00
Simon Hausmann
ad99dc6475
Add support for image loading caching for embedded images
...
Extend the texture cache in the GL rendering backend to has by either
the path on disk or by the address of the static data.
2020-11-23 15:50:00 +01:00
Simon Hausmann
fdeda0d0ed
Add some basic image loading caching for images loaded from the file system
...
Place them in a HashMap that's indexed by the path. This needs further
tuning, for example to also be applied to embedded images, and the cache
shouldn't hold a strong reference. But it makes the berlin page
playable.
2020-11-23 15:49:57 +01:00
Simon Hausmann
3d85e45ec3
Add support for source clipping to the Image element
...
This allows rendering only a sub-rectangle of the original image, which
we can use right away in the sliding puzzle demo.
2020-11-23 15:46:59 +01:00
Simon Hausmann
7583394751
Remove unnecessary image_size field of the Texture low-level primitive
...
Since our atlas allocator has an alignment of 1, the texture coordinates
(non-normalized) are identical.
2020-11-23 13:53:35 +01:00
Olivier Goffart
2e60afec39
Run cargo fmt
2020-11-23 12:08:23 +01:00
Olivier Goffart
596b740b62
Rename ARGBColor to RgbaColor
2020-11-23 11:47:47 +01:00
Simon Hausmann
89e0b57627
Rework and simplify the focus handling
...
Instead of determining the focus item through item tree traversal and
pointer comparison and storing the intermediate indices in the
components in the tree, remember the focus item by a pair of
VWeak<ComponentVTable, Dyn> and item_index: usize.
This speeds up determining the focus item as well as delivering events,
which can now be done directly after retrieving an ItemRef with
get_item_ref.
This also fixes the duplicate line edit focus in the 7gui cells
test case.
2020-11-20 15:33:15 +01:00
Olivier Goffart
62272bd73d
Fix canvas size on browser. The size writen in the html is logical
2020-11-13 15:48:26 +01:00
Simon Hausmann
0389893df5
Add enabled state to CheckBox/SpinBox/Slider/GroupBox in the native style
2020-11-06 11:09:40 +01:00
Olivier Goffart
f940292182
Rename the builtinf file
2020-11-04 17:11:29 +01:00