diff --git a/CHANGELOG.md b/CHANGELOG.md index c4b68af..37efd63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## bevy_mod_outline 0.13.0 (unreleased) + +### +- Added frustum culling. + +### Removed +- Removed facility to warm-up invisible outlines. + +### Changed +- Updated Bevy dependency to 0.19. + ## bevy_mod_outline 0.12.1 (2026-05-11) ## Changed diff --git a/Cargo.toml b/Cargo.toml index 535d438..70dde9f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bevy_mod_outline" -version = "0.12.1" +version = "0.13.0" edition = "2021" license = "MIT OR Apache-2.0" description = "A mesh outlining plugin for Bevy." @@ -11,29 +11,31 @@ keywords = ["gamedev", "bevy", "outline"] categories = ["game-engines", "rendering"] [dependencies] -bevy = { version = "0.18", default-features = false, features = [ +bevy = { version = "0.19.0-rc.1", default-features = false, features = [ "std", "async_executor", "bevy_log", "bevy_color", "bevy_image", + "bevy_anti_alias", "bevy_pbr", ] } bitfield = "0.15" +indexmap = "2" interpolation = { version = "0.3", optional = true } thiserror = "1.0" nonmax = "0.5" -wgpu-types = "27" +wgpu-types = "29" itertools = { version = "0.14", optional = true } [features] -default = ["flood", "interpolation", "reflect", "scene"] +default = ["flood", "interpolation", "reflect", "world_serialisation"] flood = ["dep:itertools"] reflect = [] -scene = ["bevy/bevy_scene"] +world_serialisation = ["bevy/bevy_world_serialization"] [dev-dependencies] -bevy = { version = "0.18", default-features = false, features = [ +bevy = { version = "0.19.0-rc.1", default-features = false, features = [ "gltf_animation", "bevy_anti_alias", "bevy_gltf", diff --git a/README.md b/README.md index 3817ef1..2987df0 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ vertex extrusion and jump flood methods. ```toml [dependencies] -bevy_mod_outline = "0.12" +bevy_mod_outline = "0.13" ``` ## Examples @@ -96,6 +96,7 @@ cargo run --example picking | This Version | Bevy version | |--------------|--------------| +| 0.13.x | 0.19.x | | 0.12.x | 0.18.x | | 0.11.x | 0.17.x | | 0.10.x | 0.16.x | @@ -115,7 +116,7 @@ cargo run --example picking - `interpolation` _(default)_ - Define `Lerp` trait impls using the `interpolation` crate. - `reflect` _(default)_ Define `Reflect` trait impls for the components. -- `scene` _(default)_ Enable the `AsyncSceneInheritOutline` component. +- `world_serialisation` _(default)_ Enable the `AsyncWorldInheritOutline` component. ## Licence diff --git a/examples/alpha_mask.rs b/examples/alpha_mask.rs index 84cc4b8..5dc8f07 100644 --- a/examples/alpha_mask.rs +++ b/examples/alpha_mask.rs @@ -78,7 +78,7 @@ fn setup( PointLight { color: Color::WHITE, intensity: 1500.0, - shadows_enabled: true, + shadow_maps_enabled: true, ..default() }, Transform::from_xyz(4.0, 8.0, 4.0), diff --git a/examples/animated_fox.rs b/examples/animated_fox.rs index 4452082..ddc6ded 100644 --- a/examples/animated_fox.rs +++ b/examples/animated_fox.rs @@ -1,8 +1,8 @@ use std::f32::consts::PI; -use bevy::{prelude::*, scene::SceneInstance}; +use bevy::{prelude::*, world_serialization::WorldInstance}; use bevy_mod_outline::{ - AsyncSceneInheritOutline, AutoGenerateOutlineNormalsPlugin, OutlinePlugin, OutlineVolume, + AsyncWorldInheritOutline, AutoGenerateOutlineNormalsPlugin, OutlinePlugin, OutlineVolume, }; #[derive(Resource)] @@ -51,7 +51,7 @@ fn setup( // Light commands.spawn(( DirectionalLight { - shadows_enabled: true, + shadow_maps_enabled: true, ..default() }, Transform::from_rotation(Quat::from_euler(EulerRot::ZYX, 0.0, 1.0, -PI / 4.)), @@ -59,21 +59,21 @@ fn setup( // Fox commands.spawn(( - SceneRoot(asset_server.load("Fox.glb#Scene0")), + WorldAssetRoot(asset_server.load("Fox.glb#Scene0")), OutlineVolume { visible: true, width: 3.0, colour: Color::srgb(1.0, 0.0, 0.0), }, - AsyncSceneInheritOutline::default(), + AsyncWorldInheritOutline::default(), )); } // Once the scene is loaded, start the animation fn setup_scene_once_loaded( mut commands: Commands, - scene_query: Query<&SceneInstance>, - scene_manager: Res, + scene_query: Query<&WorldInstance>, + scene_manager: Res, mut player_query: Query<(Entity, &mut AnimationPlayer)>, animation: Res, mut done: Local, diff --git a/examples/bloom.rs b/examples/bloom.rs index 9d23541..8e01a26 100644 --- a/examples/bloom.rs +++ b/examples/bloom.rs @@ -1,9 +1,9 @@ use std::f32::consts::{PI, TAU}; use bevy::{ + camera::Hdr, post_process::bloom::{Bloom, BloomCompositeMode}, prelude::*, - render::view::Hdr, }; use bevy_mod_outline::*; diff --git a/examples/hollow.rs b/examples/hollow.rs index 1b22c51..8a185fe 100644 --- a/examples/hollow.rs +++ b/examples/hollow.rs @@ -1,8 +1,8 @@ use std::f32::consts::{PI, TAU}; -use bevy::{gltf::GltfPlugin, prelude::*, scene::SceneInstance}; +use bevy::{gltf::GltfPlugin, prelude::*, world_serialization::WorldInstance}; use bevy_mod_outline::{ - AsyncSceneInheritOutline, OutlinePlugin, OutlineVolume, ATTRIBUTE_OUTLINE_NORMAL, + AsyncWorldInheritOutline, OutlinePlugin, OutlineVolume, ATTRIBUTE_OUTLINE_NORMAL, }; fn main() { @@ -41,29 +41,29 @@ fn setup(mut commands: Commands, asset_server: Res) { commands.spawn(( Transform::from_rotation(Quat::from_euler(EulerRot::ZYX, 0.0, 1.0, -PI / 4.)), DirectionalLight { - shadows_enabled: true, + shadow_maps_enabled: true, ..default() }, )); // Hollow commands.spawn(( - SceneRoot(asset_server.load("hollow.glb#Scene0")), + WorldAssetRoot(asset_server.load("hollow.glb#Scene0")), RotatesAndPulses, OutlineVolume { visible: true, width: 0.0, colour: Color::srgb(0.0, 0.0, 1.0), }, - AsyncSceneInheritOutline::default(), + AsyncWorldInheritOutline::default(), )); } // Once the scene is loaded, start the animation and add an outline fn setup_scene_once_loaded( mut commands: Commands, - scene_query: Query<&SceneInstance>, - scene_manager: Res, + scene_query: Query<&WorldInstance>, + scene_manager: Res, name_query: Query<&Name, With>, mut done: Local, ) { @@ -103,7 +103,7 @@ fn rotates_hue( timer: Res