Commit graph

98 commits

Author SHA1 Message Date
Jay Oster
5c1600926e
Update dependencies (#272)
* Update dependencies

- Closes #270

* Unify controls in Invaders example

The fire button on gamepads was allowing trapid fire when holding the
button. Keyboard controls required the fire key to be released between
each shot fired. This commit fixes the difference by making the gamepad
fire button act like the keyboard fire key.
2022-04-25 05:04:51 -07:00
Jay Oster
2e7c822091
Fix CI with latest nightly Clippy (#271) 2022-04-25 03:48:35 -07:00
Jay Oster
ebd2bdbd04
Update egui (#264) 2022-03-20 13:24:20 -07:00
Jay Oster
3968c9748a
Fix delta time in the invaders example (#252)
- Minor rewrite of the winit integration using the `game-loop` crate for
  fixed time-step updates.
- Updates are now handled at 240 fps, regardless of frame rate.
- Frame rate is capped at 240 fps.
- Adds a pause key.
- Closes #11
2022-01-08 10:44:52 -08:00
Jay Oster
afd15436d6
Fix crash on Wayland (#251)
- Rather than setting the position and window size based on available
  screen space, this PR just creates a window with a default size and
  doesn't attempt to set the position.
- Closes #29
2022-01-08 04:57:23 -08:00
Jay Oster
d3dbc8b4f2
Use Fused-Multiply-Add (#246)
This reverts commit 598cf6c1ba.
2021-12-31 15:40:12 -08:00
Jay Oster
c1962ae35c
Update dependencies (#230)
* Move to Edition 2021
* Update `wgpu`, `raw-window-handle`, and all dependencies for the examples
* Update MSRV
* Closes #244
2021-12-31 14:57:57 -08:00
Jay Oster
598cf6c1ba
Revert "Use Fused-Multiply-Add (#232)" (#241)
This reverts commit bd2de37b84.
2021-12-07 17:43:30 -08:00
Jay Oster
b15854b4d1
Clippy (#233) 2021-12-04 10:00:58 -08:00
Jay Oster
bd2de37b84
Use Fused-Multiply-Add (#232)
- There are a few places in the `simple-invaders` crate that could use
  `f32::mul_add()` as well.
2021-12-04 09:08:29 -08:00
Jay Oster
c2454b01ab
Simplify vertex attributes (#228)
- Vertex UVs can be computed from the positions, which saves a small amount of code and a small amount of bandwidth (both inconsequential).
- This is mostly for readability.
- Fixes vertically-flipped pixel buffer in the `custom-shader` example.
2021-11-20 14:06:23 -08:00
Jay Oster
b185ec32e9
Initial WebGL2 support. (#218)
Co-authored-by: MarkAnthonyM <37249494+MarkAnthonyM@users.noreply.github.com>
2021-11-16 11:37:56 -08:00
Jay Oster
6662fec55b
Set default device limits to downlevel_webgl2_defaults (#223)
- Fixes #139
- See also #115
2021-11-12 11:01:32 -08:00
Jay Oster
eb07e61f5c
Update egui to 0.15 (#217)
- Replaces `egui_winit_platform` with `egui-winit`
- Renames the example package to avoid crate name collision
2021-10-26 19:21:58 -07:00
Jay Oster
efeec7f727
Fix minimal-fltk example release builds with Rust 1.56.0 (#216)
- See https://github.com/rust-lang/rust/issues/88576
2021-10-21 16:15:47 -07:00
Jay Oster
9264a255bf
Remove patch number from dependency versions (#214)
- Cargo treats non-prefixed version numbers the same when the patch number is omitted.
- This is just cleaner and makes breaking updates easier to manage.
2021-10-17 14:26:56 -07:00
Jay Oster
ef99ace0ca
Update egui_wgpu_backend (#213) 2021-10-09 20:24:14 -07:00
Jay Oster
0e6c5286ff
Update line_drawing (#211) 2021-10-08 13:06:48 -07:00
JMS55
800dd931b7
Update to wgpu 0.11 (#209)
Co-authored-by: Jay Oster <jay@kodewerx.org>
2021-10-08 11:49:51 -07:00
Mohammed Alyousef
a2529c63c3
update fltk-rs, and use raw-window-handle feature (#208) 2021-10-05 10:46:37 -07:00
Jay Oster
db00a67c60
Add user-defined errors for render functions (#196)
- Fixes #189
2021-09-04 09:00:25 -07:00
Jay Oster
0f8b1abe87
Update dependencies (#195) 2021-09-04 00:39:03 -07:00
Jay Oster
6225f7225a
Workaround unusual Cargo bug with git dependencies (#194)
- See #193
2021-09-02 17:17:44 -07:00
Jay Oster
210b373882
Add resolver = "2" to all examples (#192)
- These are ignored, but it should prevent copy-pasta errors from users
2021-09-01 21:48:51 -07:00
Jay Oster
e08c91bfd2
Update to wgpu 0.10 (#187)
- It would be nice to return an error from the render function
- imgui-winit is still a WIP (open PR: https://github.com/Yatekii/imgui-wgpu-rs/pull/66)
- Update README

Co-authored-by: Mohammed Alyousef <mohammed.alyousef@neurosrg.com>
2021-09-01 14:50:43 -07:00
Jay Oster
303f1d90f5
Prepare 0.5.0 (#183)
* Prepare 0.5.0

* Update dependencies
2021-07-17 08:57:25 -07:00
Jay Oster
288da3675f
Use the swapchain-preferred texture format by default (#182)
- Fixes #140
- Adds a public method to get the current GPU framebuffer texture format (AKA the render texture format).
- This wasn't as difficult as it seemed; the extra API is used by the examples to get the right texture format instead of being hardcoded.
2021-07-17 08:21:49 -07:00
Jay Oster
ce549a79b6
Update to egui 0.13 (#181) 2021-06-27 11:32:17 -07:00
Jay Oster
c4df23f65d
Update to wgpu 0.9 (#179)
* Update to wgpu 0.9

* Fix validation error in WGSL shader

- This moves the hardcoded vertex positions and texture coordinates to
  the vertex buffer.
- Replaces the two-triangle quad to 1 full-screen triangle (fixes #180)
- Rewrites the custom shader example to fix a bug with large surface
  textures;
  - The input texture size was used for the output texture, causing the
    purple rectangle to appear very jumpy on large displays in full screen.
- The `ScalingRenderer` now exposes its clipping rectangle. The custom
  shader example uses this for its own clipping rectangle, but it can
  also be used for interacting with the border in general.

* Switch to `wgpu::include_wgsl!()`

- This is a nice little simplification.
- Thanks to @JMS55 for the suggestion!
2021-06-27 11:09:29 -07:00
Jay Oster
294a875c8e
Update dependencies and prepare release (#177) 2021-06-17 20:00:24 -07:00
Jay Oster
e5da717351
Update dependencies for egui-winit example (#176)
* Update egui-winit example to greatly simplify the platform event handler

- I was able to upstream this logic into the egui_winit_platform crate

* Fix the wgpu validation error
2021-06-08 07:34:47 -07:00
Jay Oster
338a63a40e
Minor improvement: only one shader module is necessary (#175) 2021-06-08 07:09:58 -07:00
Jay Oster
7913cbdb85
Update egui_winit_platform (#173) 2021-06-06 22:34:59 -07:00
Jay Oster
8d77ac2f8b
Rewrite shaders in WGSL (#172)
- Fixes #141
2021-06-05 18:40:33 -07:00
Jay Oster
23da739650
Update fltk (#169)
- Fixes #163
- Reimplements window resize
  - Still has problems on macOS; Resizing with the drag handle blocks the main loop. See:
    - https://github.com/glfw/glfw/issues/1251
    - https://github.com/rust-windowing/winit/issues/219
2021-05-29 03:27:33 -07:00
Jay Oster
b76ae1f7bc
Update winit to 0.25 (#168)
- Update winit
- Update egui_winit_platform
- Update imgui_winit_support
- Fix hyperlink and resize in `egui-winit` example
2021-05-29 02:18:48 -07:00
Jay Oster
355448a7f1
Update egui-winit example dependencies (#167)
* Update egui-winit example dependencies

* Update MSRV
2021-05-12 18:50:33 -07:00
Jay Oster
f3d2b0643e
Fix UI colors in imgui-winit example (#166)
- Removes the sRGB workaround that was needed before `imgui-winit` 0.12
2021-05-08 23:14:26 -07:00
Jay Oster
cdcfe57868
Validate width and height inputs (#162)
* Validate width and height inputs

- Fixes #157

* Add window size check to `imgui-winit` demo

- There is really nothing better that can be done in this case.
- The surface, buffer, and world sizes must all be non-zero.
- A zero-length surface would (previously) panic in `wgpu`.
- A zero-length buffer would panic with the new assertions.
- A zero-length world would cause a divide-by-zero panic when drawing.
2021-05-08 17:26:21 -07:00
Jay Oster
f238814d12
Update wgpu to 0.8 (#160)
- Also update other dependencies
2021-05-07 23:52:11 -07:00
Jay Oster
9bfed17a7f
Various fixes (#154)
* Cargo clippy

* Fix typo
2021-03-29 00:52:43 -07:00
JMS55
11c5961e4c
Use default() when making wgpu::RenderPipelineDescriptor (#152) 2021-03-11 18:14:34 -08:00
Jay Oster
8071f34a1f
Rename resize to resize_surface (#149)
- Also cleanup documentation.
- Workaround FLTK window resize issues by disabling resizability.
2021-03-09 04:15:24 -08:00
Jay Oster
509bb24b19
Update dependencies (#148) 2021-03-09 02:47:44 -08:00
Jay Oster
161b448a18
Add egui example. (#146) 2021-03-09 01:40:24 -08:00
Jay Oster
333ce71468
Fix resize in the imgui-winit example (#145)
- Was originally resizing the pixel buffer with `PhysicalSize` units, which is definitely incorrect. (The pixel buffer is created with `LogicalSize` units.)
- Updated the World struct to retain its own size information.
2021-03-07 03:50:10 -08:00
JMS55
f2d4a4f084
Upgrade to wgpu 0.7 (#134)
Co-authored-by: Jay Oster <jay@kodewerx.org>
2021-02-28 15:29:36 -08:00
Josh
26ae25c3d8
Resize buffer (#136)
- Fixes #125
2021-02-28 14:05:28 -08:00
Mohammed Alyousef
f845d59213
add fltk example (#137)
* add fltk example

* fix clippy lint

* fix rustfmt check

* add missing trailing new line

* use no-pango feature

* remove call to win.draw()
2021-02-07 10:36:21 -08:00
Jay Oster
c522d12e0e
Fix build for imgui-winit example (#138)
- The dependencies are a mess!
- Had to fork `imgui-wgpu`, which sits between 0.12 and 0.13 (has support for `winit` 0.24, but not `wgpu` 0.7)
- This is a temporary fix for CI, until https://github.com/Yatekii/imgui-wgpu-rs/pull/44 is merged and a new release of `imgui-wgpu` is out
- The WIP `wgpu` 0.7 update in https://github.com/parasyte/pixels/pull/134 will be needed for `imgui-wgpu` 0.14
- Update MSRV for `imgui` 0.7
2021-02-06 13:13:04 -08:00