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
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
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
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
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
Daniel McNab
5156447346
Make the with_winit
example run on android ( #273 )
2023-03-05 11:33:30 +00: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
Daniel McNab
db243aed4e
Add a keyboard key to rotate the scene
2023-02-22 12:35:28 +00:00
Daniel McNab
ef44c17f92
Update dependencies, and add more metadata ( #272 )
2023-02-06 20:12:46 +00:00
Daniel McNab
020a7f5c01
Split the examples into frontends with a shared scene repository ( #262 )
2023-02-03 10:22:39 +00:00
Daniel McNab
9721d4a6ac
Some WASM changes - including a run_wasm alias ( #251 )
2023-01-31 16:12:46 +00:00
Daniel McNab
f84e244fd7
Update to wgpu 0.15 ( #263 )
2023-01-31 16:07:03 +00:00
Raph Levien
db018da537
Make wasm port work again
...
This cheats somewhat, using the non-robust version of the pipeline for
wasm, and blocking on native.
2023-01-26 17:41:30 -08:00
Raph Levien
264fd3ec12
Merge branch 'main' into async
2023-01-26 17:27:53 -08:00
Raph Levien
d6cbae2a3f
Fixes to get example running in wasm
...
A number of things were wrong:
* The args were missing to `run`
* The robust memory changes introduced uniformity errors
* `clear_buffer` is a todo for wgpu on wasm
* Some more time calls crept in
* Initializing both env_logger and console_logger fails
In addition, we conditionally opt the shaders into
`workgroupUniformLoad`, as that's available on wasm but not yet native.
Some of the things (args, uniformity errors) are important fixes. Other
things (clear_buffer, wUL being optional) are workarounds for wgpu
limitations and have TODO items to be removed when wgpu catches up.
2023-01-26 12:19:12 -08:00
Raph Levien
418256ffd1
Start async wiring
...
Make async versions of the main library entry points, and invoke those from the with_winit example.
Right now this just prints the contents of the bump buffer before just running the fine dispatch, but it could apply conditional logic.
2023-01-24 21:09:00 -08:00
Joe Neeman
338bd30870
Allow selecting GPU from env
2023-01-21 14:30:40 -06:00
Chad Brokaw
516fd6c981
Update for peniko changes
...
This applies updates for the gradient API in peniko and pins the git dependency so prevent further breakage. Also removes Cargo.lock.
2023-01-17 12:31:57 -05:00
Daniel McNab
44058a8578
Improve the svg parser ( #247 )
...
* Improve the svg parser
* Handle `opacity`
* Double the segments buffer
* Rotate the multiplication
This matches firefox's output, although it is contrary to my use
of 3d transformation matrices
* Double ptcl size
Seems to be required to show entire scene at 4k
2023-01-16 18:22:35 +00:00
Daniel McNab
ed60031185
Add hot reloading of shaders to the winit example ( #252 )
2023-01-16 17:24:48 +00:00
Daniel McNab
db4fc4e449
Give buffers names when buffer_labels
feature is enabled ( #254 )
2023-01-16 17:16:45 +00:00
Daniel McNab
eec111c633
Support click and drag for svgs, as well as scene fragment caching ( #244 )
...
* Support caching the image, and click and drag motion
* Remove debug print
* Clean up examples to have command line parsing
* Address review comments
2023-01-13 19:30:08 +00:00
Chad Brokaw
c6ac5bf590
Support even-odd fill rule
...
Add logic for handling the even-odd fill rule to `SceneBuilder` and the coarse and fine shaders.
2023-01-10 15:22:04 -05:00
Rose Hudson
c5401e777e
Update winit example to use new multi-adapter API
2023-01-09 13:00:00 +00:00
Duane Johnson
3e8a4813f0
Update references to piet-gpu where it makes sense ( #240 )
2023-01-08 16:15:51 +00:00
Daniel McNab
480e5a5e2f
Update the README to reflect velloness ( #233 )
...
Co-authored-by: Raph Levien <raph.levien@gmail.com>
2023-01-05 22:56:46 +00:00
Daniel McNab
57d79bdf1f
Fix the winit dependency ( #232 )
2023-01-05 15:18:57 +00:00