
# Objective - I'm compiling (parts of) bevy for an embedded platform with no 64bit atomic and ctrlc handler support. Some compilation errors came up. This PR contains the fixes for those. - Fix depth_bias casting in PBR material (Fixes #14169) - Negative depth_bias values were casted to 0 before this PR - f32::INFINITY depth_bias value was casted to -1 before this PR ## Solutions - Restrict 64bit atomic reflection to supported platforms - Restrict ctrlc handler to supported platforms (linux, windows or macos instead of "not wasm") - The depth bias value (f32) is first casted to i32 then u64 in order to preserve negative values ## Testing - This version compiles on a platform with no 64bit atomic support, and no ctrlc support - CtrlC handler still works on Linux and Windows (I can't test on Macos) - depth_bias: ```rust println!("{}",f32::INFINITY as u64 as i32); // Prints: -1 (old implementation) println!("{}",f32::INFINITY as i32 as u64 as i32); // Prints: 2147483647 (expected, new implementation) ``` Also ran a modified version of 3d_scene example with the following results: RED cube depth_bias: -1000.0 BLUE cube depth_bias: 0.0  RED cube depth_bias: -INF BLUE cube depth_bias: 0.0  RED cube depth_bias: INF (case reported in #14169) BLUE cube depth_bias: 0.0 (Im not completely sure whats going on with the shadows here, it seems like depth_bias has some affect to those aswell, if this is unintentional this issue was not introduced by this PR) 
113 lines
3.4 KiB
TOML
113 lines
3.4 KiB
TOML
[package]
|
|
name = "bevy_app"
|
|
version = "0.16.0-dev"
|
|
edition = "2021"
|
|
description = "Provides core App functionality for Bevy Engine"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["bevy"]
|
|
|
|
[features]
|
|
default = ["std", "bevy_reflect", "bevy_tasks", "bevy_ecs/default", "downcast"]
|
|
|
|
# Functionality
|
|
|
|
## Adds runtime reflection support using `bevy_reflect`.
|
|
bevy_reflect = ["dep:bevy_reflect", "bevy_ecs/bevy_reflect"]
|
|
|
|
## Extends reflection support to functions.
|
|
reflect_functions = [
|
|
"bevy_reflect",
|
|
"bevy_reflect/functions",
|
|
"bevy_ecs/reflect_functions",
|
|
]
|
|
|
|
## Adds support for running async background tasks
|
|
bevy_tasks = ["dep:bevy_tasks"]
|
|
|
|
## Adds `downcast-rs` integration for `Plugin`
|
|
downcast = ["dep:downcast-rs"]
|
|
|
|
# Debugging Features
|
|
|
|
## Enables `tracing` integration, allowing spans and other metrics to be reported
|
|
## through that framework.
|
|
trace = ["dep:tracing"]
|
|
|
|
## Provides system stepping support, allowing them to be paused, stepped, and
|
|
## other debug operations which can help with diagnosing certain behaviors.
|
|
bevy_debug_stepping = []
|
|
|
|
# Platform Compatibility
|
|
|
|
## Allows access to the `std` crate. Enabling this feature will prevent compilation
|
|
## on `no_std` targets, but provides access to certain additional features on
|
|
## supported platforms.
|
|
std = [
|
|
"bevy_reflect?/std",
|
|
"bevy_ecs/std",
|
|
"dep:ctrlc",
|
|
"downcast-rs?/std",
|
|
"bevy_utils/std",
|
|
"bevy_tasks?/std",
|
|
]
|
|
|
|
## `critical-section` provides the building blocks for synchronization primitives
|
|
## on all platforms, including `no_std`.
|
|
critical-section = [
|
|
"portable-atomic?/critical-section",
|
|
"bevy_tasks?/critical-section",
|
|
"bevy_ecs/critical-section",
|
|
]
|
|
|
|
## `portable-atomic` provides additional platform support for atomic types and
|
|
## operations, even on targets without native support.
|
|
portable-atomic = [
|
|
"dep:portable-atomic",
|
|
"dep:portable-atomic-util",
|
|
"bevy_tasks?/portable-atomic",
|
|
"bevy_ecs/portable-atomic",
|
|
]
|
|
|
|
[dependencies]
|
|
# bevy
|
|
bevy_derive = { path = "../bevy_derive", version = "0.16.0-dev" }
|
|
bevy_ecs = { path = "../bevy_ecs", version = "0.16.0-dev", default-features = false }
|
|
bevy_reflect = { path = "../bevy_reflect", version = "0.16.0-dev", default-features = false, optional = true }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.16.0-dev", default-features = false, features = [
|
|
"alloc",
|
|
] }
|
|
bevy_tasks = { path = "../bevy_tasks", version = "0.16.0-dev", default-features = false, optional = true }
|
|
|
|
# other
|
|
downcast-rs = { version = "1.2.0", default-features = false, optional = true }
|
|
thiserror = { version = "2", default-features = false }
|
|
variadics_please = "1.1"
|
|
tracing = { version = "0.1", default-features = false, optional = true }
|
|
log = { version = "0.4", default-features = false }
|
|
portable-atomic = { version = "1", default-features = false, features = [
|
|
"fallback",
|
|
], optional = true }
|
|
portable-atomic-util = { version = "0.2.4", features = [
|
|
"alloc",
|
|
], optional = true }
|
|
|
|
[target.'cfg(any(unix, windows))'.dependencies]
|
|
ctrlc = { version = "3.4.4", optional = true }
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
wasm-bindgen = { version = "0.2" }
|
|
web-sys = { version = "0.3", features = ["Window"] }
|
|
console_error_panic_hook = "0.1.6"
|
|
|
|
[dev-dependencies]
|
|
crossbeam-channel = "0.5.0"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"]
|
|
all-features = true
|