Raph Levien
1b3938e54f
Clean up casting
...
Get rid of unneeded clone and make syntax nicer.
2023-04-29 08:22:49 -07:00
Raph Levien
e7c7f10524
Cargo fmt
2023-04-29 08:19:28 -07:00
Raph Levien
9c7e084239
Focus canvas on setup
2023-04-29 08:19:01 -07:00
Raph Levien
a20c9e1592
Oops, forgot to commit mmark.rs
2023-04-29 08:18:04 -07:00
Raph Levien
6fc1ed8e13
Cargo fmt
2023-04-29 08:16:28 -07:00
Raph Levien
f4a2fc616b
Mmark example
...
This commit ports the mmark example from the mmark branch, and also makes the complexity adjustable through up/down arrow keys.
2023-04-29 07:55:31 -07:00
Raph Levien
495229bf10
Combine tiger and splash screen
...
Always show the tiger, and include key bindings.
2023-04-28 17:15:28 -07:00
Raph Levien
152fa00843
Basic splash screen
...
Just has key bindings for now.
2023-04-28 16:44:37 -07:00
Raph Levien
8a083d9473
Nicer HTML
...
It's easier with innerHTML rather than constructing DOM by hand.
2023-04-28 14:33:24 -07:00
Raph Levien
e399f4792d
Display error message when WebGPU not enabled
...
Detect the case where creating the WebGPU surface fails, and insert a message explaning the failure into the DOM, rather than panicking.
2023-04-28 13:55:24 -07:00
Daniel McNab
299b47ea06
Update the bevy example to wgpu 0.16 ( #313 )
...
* Update the bevy example to wgpu 0.16
After https://github.com/bevyengine/bevy/pull/8446
* Remove inaccurate README warning
2023-04-27 08:41:17 +01:00
Daniel McNab
1529945a5a
Update cargo-run-wasm
2023-04-24 15:46:18 -07:00
Arman Uguray
51f00fbd1f
Fix the headless example for wgpu 0.16
2023-04-24 10:41:25 -07:00
Arman Uguray
bb117da352
Enable wasm-bindgen feature of instant crate
2023-04-23 16:00:01 -07:00
Arman Uguray
4642fa024f
[with_winit] Set the canvas size to thw winit Window's inner size
...
This prevents the scaling caused by the hardcoded canvas dimensions on
high dpi platforms.
2023-04-23 12:02:39 -07:00
Arman Uguray
5543ad01fe
[examples] Use instant crate's time::Instant
...
crates.io/crates/instant provides a std::time::Instant implementation
that works on both WASM and non-wasm builds.
2023-04-23 12:02:39 -07:00
Arman Uguray
23f26ef2a1
[svg] Log parse and render times separately
...
The examples logged the total processing time for an SVG including both
parse and GPU buffer encoding times. Times for these two operations are
now logged separately.
2023-04-21 18:31:20 -07:00
Arman Uguray
6d2b98cade
[vello_encoding] Re-export vello_encoding::Glyph from vello
...
This makes it so that users of the vello crate that use the Glyph type
don't need to directly depend on the vello_encoding crate.
2023-04-18 14:46:16 -07:00
Arman Uguray
db2fefdc8f
[vello_encoding] Move the encoding module into its own crate
...
This change moves the vello encoding logic to a new crate under
crates/encoding. Combined with the `vello_shaders` crate, this enables
lightweight integration of the Vello pipelines into renderers that don't
depend on wgpu (or perhaps written in languages other than Rust).
The Scene/Fragment API currently remain the vello crate.
2023-04-18 14:46:14 -07:00
Raph Levien
8cfe903f7e
Change image to flower
...
Using vector graphics for the image doesn't make a huge amount of sense. The flower photo is by Raph and happily licensed to anyone who wants to use it.
2023-03-22 15:53:44 -07:00
Chad Brokaw
4c5ff6b5bf
Merge pull request #297 from linebender/vello-fello
...
Replace font backend
2023-03-21 22:07:36 -04:00
Chad Brokaw
eb8cc5275f
Replace font backend
...
This replaces the old moscato font backend with one that has proper support for variable fonts.
2023-03-21 19:27:21 -04:00
Arman Uguray
703d22f4b7
[frame_stats] Use match statement for color coding graph
2023-03-21 15:29:16 -07:00
Arman Uguray
6f3051837f
[frame_stats] Adapt the graph scale based on the current mean frame time
...
This allows the graph to display at a reasonable scale in the face of
fluctuations and a max recorded sample that is much larger than the
current average.
2023-03-21 15:16:45 -07:00
Arman Uguray
e6f4f6de57
[frame_stats] Draw thresholds for 16.66ms, 33.33ms, and 8.33 timings
...
Also added color coding for the bar graph based on these thresholds.
2023-03-21 11:38:38 -07:00
Arman Uguray
5ba2826460
[frame_stats] Scale the frame time graph linearly
...
The sqrt scale doesn't add much value any more since the max frame time
can be reset with a keypress.
2023-03-21 11:34:33 -07:00
Arman Uguray
8bd1bdfaa8
[frame_stats] Use wgpu::PresentMode::AutoVsync/AutoNoVsync for VSync mode
...
The Auto* modes should have wider compatibility as they implement
fallback behavior based on what the platform supports. This also means
that on web "vsync off" will likely be incorrect.
2023-03-21 11:34:26 -07:00
Arman Uguray
02a222f435
[frame_stats] Reduce stats time delta between elapsed() and next frame start time
...
This does not account for the time spent in processing
`Stats::add_sample` but it should be very close.
2023-03-21 11:34:20 -07:00
Arman Uguray
a1c0df1058
[frame_stats] Track frame time more tightly
...
We now track the frame time from snapshot to snapshot corresponding to
the exact presentation time.
2023-03-21 11:34:14 -07:00
Arman Uguray
1250cdcf86
[frame_stats] Add a VSync toggle key; show the current VSync state in stats UI
2023-03-21 11:34:08 -07:00
Arman Uguray
306aeab6df
[frame_stats] Key binding to clear min/max frame time; address review comments
2023-03-21 11:34:01 -07:00
Arman Uguray
1ac4a4f1a8
[frame_stats] Draw a live plot of frame time samples
...
Also abandoned the FrameScope idea and revised the `Stats::add_sample`
to accept a struct to accept a variety of future measurements.
2023-03-21 11:33:50 -07:00
Arman Uguray
bacaeebcb6
[frame_stats] Show viewport resolution on the stats layer
...
Also set the stats layer toggle to be on by default until we add some UI
to toggle it on mobile.
2023-03-21 11:33:43 -07:00
Arman Uguray
d7bacbcc3f
[frame_stats] Build stats layer layout based on viewport dimensions
2023-03-21 11:33:35 -07:00
Arman Uguray
89fb1b89da
[frame_stats] Add frame statistics UI to with_winit example
...
Added a module for frame time statistics and UI layer that displays
the average, minimum, and maximum frame time alongside FPS. The UI
can be toggled by pressing the `S` key.
2023-03-21 11:33:22 -07:00
Daniel McNab
17096ad878
Update for Bevy 0.10 and other dependencies ( #290 )
2023-03-16 15:44:10 +00:00
Daniel McNab
fd6bfe91d6
Fix handling of interactivity ( #295 )
...
* Fix handling of interactivity
* Sort out silly mixup
2023-03-16 13:38:43 +00:00
Florian Köhler
c503973739
Add space key for transform reset ( #294 )
...
Co-authored-by: Florian Köhler <power-unsealed>
2023-03-15 15:18:16 +00:00
Chad Brokaw
923c949e95
Remove some unused imports
2023-03-10 21:00:42 -05:00
Chad Brokaw
37f05b853c
Address initial review feedback
...
* Add comment about naughty ptr2int cast
* Change Option to anyhow::Result in test scene ImageCache
* Replace magic constant with pixel stride from selected format
2023-03-10 15:14:34 -05:00
Chad Brokaw
165b3a083b
Let's add images
2023-03-09 17:18:03 -05:00
Chad Brokaw
69dd838d09
post rebase fixups
2023-03-06 11:41:12 -05:00
Chad Brokaw
5e216adfa8
Merge branch 'main' into glyph-run
2023-03-06 08:17:45 -05:00
Daniel McNab
5156447346
Make the with_winit
example run on android ( #273 )
2023-03-05 11:33:30 +00:00
Chad Brokaw
15efb8b3f6
fixes after rebase
...
* remove SceneBuilder::finish() calls
* remove old Config struct
* comment about syncing structs in config.wgsl
2023-03-03 20:46:50 -05:00
Chad Brokaw
fca106a5ce
Merge branch 'main' into glyph-run
2023-03-03 20:30:10 -05:00
Arman Uguray
12d5dcd34f
Use clap to parse base-color option; remove unused width/height parameters
2023-03-03 14:28:07 -08:00
Arman Uguray
d72ad14059
Add a test scene that animates the base color
...
The test scenes can now supply their own optional base (background)
color. In the with_winit example, we also allow the user to provide a
base color as a CLI option. The precedence is as follows:
1. Use the color from the CLI options, if any.
2. Otherwise use the scene provided base color, if any.
3. Otherwise default to black.
2023-03-03 11:30:12 -08:00
Arman Uguray
3bbf108df5
Renamed clear_color to base_color; addressed review comments
2023-03-02 14:29:44 -08:00
Arman Uguray
05fa8c7c39
RenderParams struct for render-time options
...
The texture and surface render API now takes render-time parameters
(such as clear color, target width/height) as a RenderParams struct.
The examples have been updated to demonstrate this. The with_winit
example now accepts a clear color as a command line option.
2023-03-02 11:25:19 -08:00