Commit graph

249 commits

Author SHA1 Message Date
Jay Oster 9f0a659853
Enable all wgpu backends (#356)
- This will allow `pixels` to run on platforms that have OpenGL without any extra configuration.
- It is better to allow wgpu to fallback to OpenGL than to select a Vulkan software rasterizer. This is the case on WSL2, where the only hardware-based adapter is available with the GLES backend.
- Fixes #354
2023-04-14 13:31:01 -07:00
Jay Oster 5465bbe28e
CI: Add cargo-install action to cache cargo-machete (#355) 2023-04-13 20:51:48 -07:00
imizao d85091847a
Added R key to reset game (#350)
* Added R key to reset game

* Invaders, Shield, Player module processing

* Improve the processing of Shield and Player modules
2023-03-26 23:59:20 -07:00
Aggelos Tselios 3d8c7bd0c9
Switch from imgui.frame to imgui.new_frame, (#353)
The documentation said to do so: https://docs.rs/imgui/latest/imgui/struct.Context.html\#method.frame.

Signed-off-by: Aggelos Tselios <androtechgr@gmail.com>
Co-authored-by: Aggelos Tselios <androtechgr@gmail.com>
2023-03-26 14:45:14 -07:00
Jay Oster 96eef39a7a
Prepare 0.12.0 (#349)
* Prepare 0.12.0

* Cleanup use statements
2023-03-22 00:15:38 -07:00
imizao e99c5eaa24
[Optimization] Improve readability (#345) 2023-03-21 23:57:48 -07:00
Jay Oster 5a96eea6ba
Handle all wgpu::SurfaceError variants (#348)
This fixes error handling for all `wgpu::SurfaceError` variants. It also adds more context to error messages printed by the examples.

Closes #346
2023-03-21 07:16:51 -07:00
Aggelos Tselios 295139a412
Make Rust standard library optional (WIP) (#342)
* Remove `std` dependency.

* Format code with `cargo fmt`.
2023-03-16 15:13:36 -07:00
Jay Oster 899e27bafa
Remove get_ and set_ prefixes from public APIs (#341)
This renames:

- `get_frame` to `frame`
- `get_frame_mut` to `frame_mut`
- `set_clear_color` to `clear_color`

Which more closely follows convention set by the standard library et al.
2023-03-09 19:42:57 -08:00
Aggelos Tselios bbfd49deba
Add wgpu adapter getter API (#340)
Co-authored-by: Jay Oster <jay@kodewerx.org>
2023-03-07 17:39:02 -08:00
Jay Oster 860559272a
Simplify surface texture format selection (#336)
- We require sRGB because that's the color space users expect when they are plotting their own pixels.
- It simplifies the fragment shader because we don't have to do a linear->gamma transformation. The hardware will do it for us.
2023-01-28 11:34:25 -08:00
Jay Oster eede10ba42
Fix validation errors with WebGL2 backend (#335)
* Fix validation errors with WebGL2 backend

- view_formats are optional and should be empty unless a specific view format is needed.
- See: https://www.w3.org/TR/webgpu/#dom-gputexturedescriptor-viewformats
2023-01-28 11:19:45 -08:00
Jay Oster c3f63a540d
Use type inference in custom_shader WGSL (#334) 2023-01-28 11:00:51 -08:00
Jay Oster b54f707a59
Fix CI with new MSRV (#333)
- Required by wgpu 0.15
2023-01-27 22:31:52 -08:00
Jay Oster 332a02f12d
Update wgpu to 0.15 (#332)
* Update wgpu to 0.15
* Fix the panic described in #330
* Specify `min_binding_size` since we know what it is.
2023-01-27 21:49:40 -08:00
Jay Oster bf296a455e
Remove unused dependencies (cargo-machete) (#331)
* Add cargo-machete to CI Lints
2023-01-09 10:47:42 -08:00
Jay Oster 49cf7b7d11
Update cargo-run-wasm (#329)
Just a minor dependency update.
2023-01-07 15:18:09 -08:00
Jay Oster 864a9c3491
Prepare 0.11.0 (#326) 2022-12-17 21:45:20 -08:00
Jay Oster 6055a21e6c
Fix minimal-egui rendering (#327) 2022-12-17 21:43:06 -08:00
Jay Oster 6f4fa6c967
Fix invalid texture sizes (#250)
- Makes methods fallible when they create textures.
- Correctly handle window resize in fltk example.
- TODO: tests
- Closes #240
2022-12-17 20:21:28 -08:00
Jay Oster b4fc48c740
Change default PresentMode and update enable_vsync (#325)
- Fixes #263
2022-12-17 19:06:15 -08:00
Jay Oster 9e943dd9eb
Update README (#324) 2022-12-17 18:28:15 -08:00
Jay Oster 5c2985f1b6
Update all dependencies in the workspace (#323) 2022-12-17 17:35:02 -08:00
Jay Oster 0819b8f60c
Update GitHub Actions (#322)
* Update GitHub Actions

- actions-rs is unmaintained.
  - See: https://github.com/actions-rs/toolchain/issues/216
- Enable rust-cache
- Cargo.lock was removed in #63 but it's necessary for reproducible builds in CI.
  - The lock file is ignored by dependents.
  - Our separate `pixels-ci-rust-version` repo also ignores it, so CI will still be able to tell us if the crate build ever breaks due to unlocked dependencies.
  -  See the `rust-version` job in ci.yml.
2022-12-17 16:52:45 -08:00
Jay Oster 7278681422
Fix the GitHub Actions badge (#321)
See: https://github.com/badges/shields/issues/8671
2022-12-17 14:46:32 -08:00
David Cristofaro e8d5cf3ebc
Bump wgpu from 0.13 to 0.14 (#320)
* feat(wgpu): upgrade wgpu from 13 to 14

* Address feedback

* Bump tao in `minimal-tao` example

* Bump fltk in `minimal-fltk` example

* Bump egui in `minimal-egui` example

* Bump MSRV to `1.65`

* Bump crates in `imgui-winit` example

* Delete `minimal-sdl2` example

* Fix clippy lints

* Update examples/minimal-egui/src/gui.rs

Co-authored-by: Zageron <hello@zageron.ca>
Co-authored-by: Jay Oster <jay@kodewerx.org>
2022-12-17 13:50:11 -08:00
Jeffrey Rosenbluth bc8235fdb1
Add tiny-skia example (#317)
* tiny skia example

* image

* remove unnecessary let binding
2022-11-15 11:47:28 -08:00
Jay Oster 0a85025345
Prepare 0.10.0 (#315) 2022-10-28 17:10:03 -07:00
Jay Oster 9f7896cd2f
Replace just with cargo-run-wasm (#310) 2022-10-02 21:13:48 -07:00
Jay Oster a2c639823f
Update winit 0.27 (#302)
* Update winit 0.27

Closes #292

This _does not_ update `winit` in the `imgui-winit` example. See https://github.com/parasyte/pixels/pull/302#issuecomment-1264483040 for discussion.
2022-10-01 14:27:21 -07:00
Jay Oster 9c3edeb1d4
HACK: Use old version of fltk to fix CI (#306)
See: https://github.com/fltk-rs/fltk-rs/issues/1285
2022-09-10 19:18:27 -07:00
Jay Oster 881033c5c7
Remove the exposed web feature (#304)
- The `web` feature was previously exposed by the example crate. This isn't really necessary.
- See #276 for discussion
2022-08-19 14:00:54 -07:00
Jay Oster 6605951d8c
Fix CI (#301)
- wgpu 0.13 requires Rust 1.59
2022-08-17 19:55:20 -07:00
Jay Oster 051a523ee6
Update wgpu to 0.13 (#300)
* Intial work towards wgpu 0.13

* Increase MSRV for egui

* Add missing texture formats

* Update fermium

- Replaces beryllium with our own hand-rolled high-level abstraction
  layer for SDL2.

* Update dependencies

Co-authored-by: JMS55 <47158642+JMS55@users.noreply.github.com>
2022-08-17 17:30:04 -07:00
Jay Oster bcbe9d84cb
Add minimal example with tao (#299)
* Add minimal example with `tao`

- Closes #298
2022-08-17 07:50:02 -07:00
Alex 0b380b637d
Allow accessing frame on immutable buffer (#288)
* Allow accessing frame on immutable buffer

* Rename `get_frame` to `get_frame_mut`

* Use `get_frame_mut` in examples
2022-08-14 15:44:23 -07:00
Jay Oster 4ee5006481
Add rust-version (#295)
- This version is different from the MSRV. It specifies the minimum
  version required to build the crate and its direct dependencies.
- Add a CI step for building the crate alone with the oldest version
  possible.
- See MSRV.md for the policy and minimal version supported by CI,
  including all example code.
- Update all actions to checkout/v3
2022-08-01 14:59:46 -07:00
Jay Oster 41063dbf4b
Fix minimize panicking on custom-shader example. (#291)
- Closes #282
2022-07-27 10:26:05 -07:00
Jay Oster 46ddf4e3f0
Fix custom-shader example on macOS (#286)
- Fixes #258
2022-06-20 10:12:30 -07:00
Jay Oster af821c9e49
Update egui to 0.18 (#281)
* Update egui to 0.18

- Closes #278

* Bump MSRV to 1.60.0 for egui
2022-06-13 21:03:06 -07:00
Jay Oster adaa469ad9
Update gilrs (#280) 2022-06-13 09:24:59 -07:00
Jay Oster 8f66bce12e
Comparison with softbuffer (#273) 2022-04-25 07:00:30 -07:00
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 94b87496c3
Update ultraviolet (#266) 2022-03-20 18:42:19 -07:00
Jay Oster ebd2bdbd04
Update egui (#264) 2022-03-20 13:24:20 -07:00
JMS55 94a2cc2dbd
Make BlendState configurable (#260) 2022-02-06 03:01:50 -08:00
AnonymousDapper ebf7179a89
Decouple render_texture_format from surface texture format (#249) (#257)
- Closes #249
2022-01-15 20:31:18 -08: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