2020-08-29 19:35:41 +00:00
|
|
|
[package]
|
|
|
|
name = "bevy_tasks"
|
2024-07-08 12:54:08 +00:00
|
|
|
version = "0.15.0-dev"
|
2021-10-27 00:12:14 +00:00
|
|
|
edition = "2021"
|
2020-11-03 21:34:00 +00:00
|
|
|
description = "A task executor for Bevy Engine"
|
|
|
|
homepage = "https://bevyengine.org"
|
|
|
|
repository = "https://github.com/bevyengine/bevy"
|
2021-07-23 21:11:51 +00:00
|
|
|
license = "MIT OR Apache-2.0"
|
2020-11-03 21:34:00 +00:00
|
|
|
keywords = ["bevy"]
|
2020-08-29 19:35:41 +00:00
|
|
|
|
2023-07-09 04:22:15 +00:00
|
|
|
[features]
|
2024-12-06 02:14:54 +00:00
|
|
|
default = ["std", "async_executor"]
|
|
|
|
std = [
|
|
|
|
"futures-lite/std",
|
|
|
|
"async-task/std",
|
|
|
|
"spin/std",
|
|
|
|
"edge-executor?/std",
|
|
|
|
"portable-atomic-util?/std",
|
|
|
|
]
|
|
|
|
multi_threaded = ["std", "dep:async-channel", "dep:concurrent-queue"]
|
|
|
|
async_executor = ["std", "dep:async-executor"]
|
|
|
|
edge_executor = ["dep:edge-executor"]
|
|
|
|
critical-section = [
|
|
|
|
"dep:critical-section",
|
|
|
|
"edge-executor?/critical-section",
|
|
|
|
"portable-atomic?/critical-section",
|
|
|
|
]
|
|
|
|
portable-atomic = [
|
|
|
|
"dep:portable-atomic",
|
|
|
|
"dep:portable-atomic-util",
|
|
|
|
"edge-executor?/portable-atomic",
|
|
|
|
"async-task/portable-atomic",
|
|
|
|
"spin/portable_atomic",
|
|
|
|
]
|
2023-07-09 04:22:15 +00:00
|
|
|
|
2020-08-29 19:35:41 +00:00
|
|
|
[dependencies]
|
2024-12-06 02:14:54 +00:00
|
|
|
futures-lite = { version = "2.0.1", default-features = false, features = [
|
|
|
|
"alloc",
|
|
|
|
] }
|
|
|
|
async-task = { version = "4.4.0", default-features = false }
|
|
|
|
spin = { version = "0.9.8", default-features = false, features = [
|
|
|
|
"spin_mutex",
|
|
|
|
"rwlock",
|
|
|
|
"once",
|
|
|
|
] }
|
|
|
|
derive_more = { version = "1", default-features = false, features = [
|
|
|
|
"deref",
|
|
|
|
"deref_mut",
|
|
|
|
] }
|
|
|
|
|
|
|
|
async-executor = { version = "1.11", optional = true }
|
|
|
|
edge-executor = { version = "0.4.1", default-features = false, optional = true }
|
2024-09-28 19:21:59 +00:00
|
|
|
async-channel = { version = "2.3.0", optional = true }
|
2023-10-23 23:49:57 +00:00
|
|
|
async-io = { version = "2.0.0", optional = true }
|
2024-04-08 19:45:42 +00:00
|
|
|
concurrent-queue = { version = "2.0.0", optional = true }
|
2024-12-06 02:14:54 +00:00
|
|
|
critical-section = { version = "1.2.0", optional = true }
|
|
|
|
portable-atomic = { version = "1", default-features = false, features = [
|
|
|
|
"fallback",
|
|
|
|
], optional = true }
|
|
|
|
portable-atomic-util = { version = "0.2.4", features = [
|
|
|
|
"alloc",
|
|
|
|
], optional = true }
|
2021-07-14 20:52:50 +00:00
|
|
|
|
2020-09-25 22:26:23 +00:00
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
|
|
wasm-bindgen-futures = "0.4"
|
2024-07-16 01:15:03 +00:00
|
|
|
pin-project = "1"
|
|
|
|
futures-channel = "0.3"
|
2021-07-14 20:52:50 +00:00
|
|
|
|
|
|
|
[dev-dependencies]
|
fix: upgrade to winit v0.30 (#13366)
# Objective
- Upgrade winit to v0.30
- Fixes https://github.com/bevyengine/bevy/issues/13331
## Solution
This is a rewrite/adaptation of the new trait system described and
implemented in `winit` v0.30.
## Migration Guide
The custom UserEvent is now renamed as WakeUp, used to wake up the loop
if anything happens outside the app (a new
[custom_user_event](https://github.com/bevyengine/bevy/pull/13366/files#diff-2de8c0a8d3028d0059a3d80ae31b2bbc1cde2595ce2d317ea378fe3e0cf6ef2d)
shows this behavior.
The internal `UpdateState` has been removed and replaced internally by
the AppLifecycle. When changed, the AppLifecycle is sent as an event.
The `UpdateMode` now accepts only two values: `Continuous` and
`Reactive`, but the latter exposes 3 new properties to enable reactive
to device, user or window events. The previous `UpdateMode::Reactive` is
now equivalent to `UpdateMode::reactive()`, while
`UpdateMode::ReactiveLowPower` to `UpdateMode::reactive_low_power()`.
The `ApplicationLifecycle` has been renamed as `AppLifecycle`, and now
contains the possible values of the application state inside the event
loop:
* `Idle`: the loop has not started yet
* `Running` (previously called `Started`): the loop is running
* `WillSuspend`: the loop is going to be suspended
* `Suspended`: the loop is suspended
* `WillResume`: the loop is going to be resumed
Note: the `Resumed` state has been removed since the resumed app is just
running.
Finally, now that `winit` enables this, it extends the `WinitPlugin` to
support custom events.
## Test platforms
- [x] Windows
- [x] MacOs
- [x] Linux (x11)
- [x] Linux (Wayland)
- [x] Android
- [x] iOS
- [x] WASM/WebGPU
- [x] WASM/WebGL2
## Outstanding issues / regressions
- [ ] iOS: build failed in CI
- blocking, but may just be flakiness
- [x] Cross-platform: when the window is maximised, changes in the scale
factor don't apply, to make them apply one has to make the window
smaller again. (Re-maximising keeps the updated scale factor)
- non-blocking, but good to fix
- [ ] Android: it's pretty easy to quickly open and close the app and
then the music keeps playing when suspended.
- non-blocking but worrying
- [ ] Web: the application will hang when switching tabs
- Not new, duplicate of https://github.com/bevyengine/bevy/issues/13486
- [ ] Cross-platform?: Screenshot failure, `ERROR present_frames:
wgpu_core::present: No work has been submitted for this frame before`
taking the first screenshot, but after pressing space
- non-blocking, but good to fix
---------
Co-authored-by: François <francois.mockers@vleue.com>
2024-06-03 13:06:48 +00:00
|
|
|
web-time = { version = "1.1" }
|
2023-11-18 20:58:48 +00:00
|
|
|
|
|
|
|
[lints]
|
|
|
|
workspace = true
|
2024-03-08 20:03:09 +00:00
|
|
|
|
|
|
|
[package.metadata.docs.rs]
|
2024-07-29 23:10:16 +00:00
|
|
|
rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"]
|
2024-03-08 20:03:09 +00:00
|
|
|
all-features = true
|