From bb63ad7fab301b20c574887ffdf4886c5d6072b2 Mon Sep 17 00:00:00 2001 From: Ame <104745335+ameknite@users.noreply.github.com> Date: Tue, 28 Mar 2023 14:18:50 -0600 Subject: [PATCH] Re-export glam_assert feature (#8232) # Objective - Allow the use of the "glam _assert" feature to help catch runtime errors and validate the arguments passed to glam. e.g. ```rs // Will panic if self is zero length when glam_assert is enabled. pub fn normalize(self) -> Self { let normalized = self.mul(self.length_recip()); glam_assert!(normalized.is_finite()); normalized } ``` ## Solution - Re-export the optional feature glam_assert --- ## Changelog Added: Optional feature "glam_assert" --- Cargo.toml | 3 +++ crates/bevy_internal/Cargo.toml | 3 +++ crates/bevy_math/Cargo.toml | 4 +++- docs/cargo_features.md | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 2cc66e6144..7c5687121e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -219,6 +219,9 @@ tonemapping_luts = ["bevy_internal/tonemapping_luts"] # Enable AccessKit on Unix backends (currently only works with experimental screen readers and forks.) accesskit_unix = ["bevy_internal/accesskit_unix"] +# Enable assertions to check the validity of parameters passed to glam +glam_assert = ["bevy_internal/glam_assert"] + [dependencies] bevy_dylib = { path = "crates/bevy_dylib", version = "0.11.0-dev", default-features = false, optional = true } bevy_internal = { path = "crates/bevy_internal", version = "0.11.0-dev", default-features = false } diff --git a/crates/bevy_internal/Cargo.toml b/crates/bevy_internal/Cargo.toml index 75b30067a7..2c4439b1be 100644 --- a/crates/bevy_internal/Cargo.toml +++ b/crates/bevy_internal/Cargo.toml @@ -92,6 +92,9 @@ accesskit_unix = ["bevy_winit/accesskit_unix"] bevy_text = ["dep:bevy_text", "bevy_ui?/bevy_text"] +# Enable assertions to check the validity of parameters passed to glam +glam_assert = ["bevy_math/glam_assert"] + [dependencies] # bevy bevy_a11y = { path = "../bevy_a11y", version = "0.11.0-dev" } diff --git a/crates/bevy_math/Cargo.toml b/crates/bevy_math/Cargo.toml index 240ec4071f..5c2c49afae 100644 --- a/crates/bevy_math/Cargo.toml +++ b/crates/bevy_math/Cargo.toml @@ -13,6 +13,8 @@ glam = { version = "0.23", features = ["bytemuck"] } serde = { version = "1", features = ["derive"], optional = true } [features] +serialize = ["dep:serde", "glam/serde"] # Enable interoperation of glam types with mint-compatible libraries mint = ["glam/mint"] -serialize = ["dep:serde", "glam/serde"] +# Enable assertions to check the validity of parameters passed to glam +glam_assert = ["glam/glam-assert"] diff --git a/docs/cargo_features.md b/docs/cargo_features.md index af8961ffd6..1ba7c2ebb0 100644 --- a/docs/cargo_features.md +++ b/docs/cargo_features.md @@ -51,6 +51,7 @@ The default feature set enables most of the expected features of a game engine, |dynamic_linking|Force dynamic linking, which improves iterative compile times| |exr|EXR image format support| |flac|FLAC audio format support| +|glam_assert|Enable assertions to check the validity of parameters passed to glam| |jpeg|JPEG image format support| |minimp3|MP3 audio format support (through minimp3)| |mp3|MP3 audio format support|