From 6896eedc7cdeb513514561ab895f959d7eb29f05 Mon Sep 17 00:00:00 2001 From: "Arend van Beelen jr." Date: Thu, 1 Feb 2024 10:28:17 +0100 Subject: [PATCH 1/5] Updates for Bevy main (will become 0.13) --- examples/demo.rs | 2 +- src/debug.rs | 24 +++++++++--------------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/examples/demo.rs b/examples/demo.rs index 4161003..64a9850 100644 --- a/examples/demo.rs +++ b/examples/demo.rs @@ -18,7 +18,7 @@ struct EnableText; fn toggle_plugin( mut settings: ResMut, - input: Res>, + input: Res>, ) { if input.just_pressed(KeyCode::Space) { use bevy_framepace::Limiter; diff --git a/src/debug.rs b/src/debug.rs index 84f4e52..ab6447f 100644 --- a/src/debug.rs +++ b/src/debug.rs @@ -1,7 +1,7 @@ //! Adds diagnostic logging and a cursor for debugging. use bevy::{ - diagnostic::{Diagnostic, DiagnosticId, Diagnostics, RegisterDiagnostic}, + diagnostic::{Diagnostic, DiagnosticPath, Diagnostics, RegisterDiagnostic}, prelude::*, }; @@ -12,24 +12,18 @@ impl Plugin for DiagnosticsPlugin { fn build(&self, app: &mut App) { app.add_systems(Update, Self::diagnostic_system); - app.register_diagnostic( - Diagnostic::new(Self::FRAMEPACE_FRAMETIME, "framepace::frametime", 128) - .with_suffix("ms"), - ); - app.register_diagnostic( - Diagnostic::new(Self::FRAMEPACE_OVERSLEEP, "framepace::oversleep", 128) - .with_suffix("µs"), - ); + app.register_diagnostic(Diagnostic::new(Self::FRAMEPACE_FRAMETIME).with_suffix("ms")); + app.register_diagnostic(Diagnostic::new(Self::FRAMEPACE_OVERSLEEP).with_suffix("µs")); } } impl DiagnosticsPlugin { /// [`DiagnosticId`] for the frametime - pub const FRAMEPACE_FRAMETIME: DiagnosticId = - DiagnosticId::from_u128(8021378406439507683279787892187089153); + pub const FRAMEPACE_FRAMETIME: DiagnosticPath = + DiagnosticPath::const_new("framepace/frametime"); /// [`DiagnosticId`] for failures to meet frame time target - pub const FRAMEPACE_OVERSLEEP: DiagnosticId = - DiagnosticId::from_u128(978023490268634078905367093342937); + pub const FRAMEPACE_OVERSLEEP: DiagnosticPath = + DiagnosticPath::const_new("framepace/oversleep"); /// Updates diagnostic data from measurements pub fn diagnostic_system( @@ -44,7 +38,7 @@ impl DiagnosticsPlugin { let frametime_millis = stats.frametime.try_lock().unwrap().as_secs_f64() * 1_000_f64; let error_micros = stats.oversleep.try_lock().unwrap().as_secs_f64() * 1_000_000_f64; - diagnostics.add_measurement(Self::FRAMEPACE_FRAMETIME, || frametime_millis); - diagnostics.add_measurement(Self::FRAMEPACE_OVERSLEEP, || error_micros); + diagnostics.add_measurement(&Self::FRAMEPACE_FRAMETIME, || frametime_millis); + diagnostics.add_measurement(&Self::FRAMEPACE_OVERSLEEP, || error_micros); } } From ed3bc840106090b56a06fe9eb126b373d02c94fd Mon Sep 17 00:00:00 2001 From: Aevyrie Date: Sun, 3 Mar 2024 15:26:38 -0800 Subject: [PATCH 2/5] Update deps --- Cargo.toml | 17 ++++++++++++----- src/debug.rs | 8 ++++---- src/lib.rs | 17 ++++++++++------- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 10b607b..2be32f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,17 @@ documentation = "https://docs.rs/bevy_framepace" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy = { version = "0.12", default-features = false, features = [ - "bevy_render", - "bevy_winit", -] } +bevy_app = "0.13" +bevy_ecs = "0.13" +bevy_diagnostic = "0.13" +bevy_log = "0.13" +bevy_render = "0.13" +bevy_reflect = "0.13" +bevy_time = "0.13" +bevy_utils = "0.13" +bevy_window = "0.13" +bevy_winit = "0.13" +# Non-bevy spin_sleep = "1.0" [features] @@ -22,7 +29,7 @@ default = ["framepace_debug", "bevy/x11"] framepace_debug = [] [dev-dependencies] -bevy = { version = "0.12", default-features = false, features = [ +bevy = { version = "0.13", default-features = false, features = [ "bevy_gizmos", "bevy_text", "bevy_ui", diff --git a/src/debug.rs b/src/debug.rs index ab6447f..17bef36 100644 --- a/src/debug.rs +++ b/src/debug.rs @@ -1,9 +1,9 @@ //! Adds diagnostic logging and a cursor for debugging. -use bevy::{ - diagnostic::{Diagnostic, DiagnosticPath, Diagnostics, RegisterDiagnostic}, - prelude::*, -}; +use bevy_app::prelude::*; +use bevy_diagnostic::{Diagnostic, DiagnosticPath, Diagnostics, RegisterDiagnostic}; +use bevy_ecs::prelude::*; +use bevy_time::prelude::*; /// Adds [`Diagnostics`] data from `bevy_framepace` pub struct DiagnosticsPlugin; diff --git a/src/lib.rs b/src/lib.rs index fa65274..bcd6cf5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -27,13 +27,16 @@ #![deny(missing_docs)] +use bevy_app::prelude::*; +use bevy_ecs::prelude::*; +use bevy_log::prelude::*; +use bevy_reflect::prelude::*; +use bevy_render::{pipelined_rendering::RenderExtractApp, Render, RenderApp, RenderSet}; +use bevy_utils::Instant; +use bevy_window::prelude::*; + #[cfg(not(target_arch = "wasm32"))] -use bevy::winit::WinitWindows; -use bevy::{ - prelude::*, - render::{pipelined_rendering::RenderExtractApp, RenderApp, RenderSet}, - utils::Instant, -}; +use bevy_winit::WinitWindows; use std::{ sync::{Arc, Mutex}, @@ -78,7 +81,7 @@ impl Plugin for FramepacePlugin { .insert_resource(limit) .insert_resource(stats) .add_systems( - bevy::render::Render, + Render, framerate_limiter .in_set(RenderSet::Cleanup) .after(World::clear_entities), From d6102785dd49bda5a677affb72fcc9aec5e45eec Mon Sep 17 00:00:00 2001 From: Aevyrie Date: Sun, 3 Mar 2024 15:56:58 -0800 Subject: [PATCH 3/5] Fix features --- Cargo.toml | 11 +++++++++++ src/lib.rs | 5 ++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index dad31bd..c299400 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,4 +35,15 @@ bevy = { version = "0.13", default-features = false, features = [ "bevy_ui", "default_font", "multi-threaded", + "x11", ] } + +[[example]] +name = "demo" +path = "examples/demo.rs" +required-features = ["default"] + +[[example]] +name = "minimal" +path = "examples/minimal.rs" +required-features = ["default"] diff --git a/src/lib.rs b/src/lib.rs index bcd6cf5..56a7968 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -29,7 +29,6 @@ use bevy_app::prelude::*; use bevy_ecs::prelude::*; -use bevy_log::prelude::*; use bevy_reflect::prelude::*; use bevy_render::{pipelined_rendering::RenderExtractApp, Render, RenderApp, RenderSet}; use bevy_utils::Instant; @@ -202,7 +201,7 @@ fn get_display_refresh_rate( Limiter::Off => { #[cfg(feature = "framepace_debug")] if settings.is_changed() { - info!("Frame limiter disabled"); + bevy_log::info!("Frame limiter disabled"); } return; } @@ -211,7 +210,7 @@ fn get_display_refresh_rate( if let Ok(mut limit) = frame_limit.0.try_lock() { if new_frametime != *limit { #[cfg(feature = "framepace_debug")] - info!("Frametime limit changed to: {:?}", new_frametime); + bevy_log::info!("Frametime limit changed to: {:?}", new_frametime); *limit = new_frametime; } } From d5e833e7fddfb30dc32232bde39a5e800dc0cc3d Mon Sep 17 00:00:00 2001 From: Aevyrie Date: Sun, 3 Mar 2024 16:05:31 -0800 Subject: [PATCH 4/5] enable winit x11 by default --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index c299400..ffdd421 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,7 @@ bevy_winit = "0.13" spin_sleep = "1.0" [features] -default = ["framepace_debug", "bevy/x11"] +default = ["framepace_debug", "bevy_winit/x11"] framepace_debug = [] [dev-dependencies] From 9b159f3d3f7ab983269d06f68c949e1ea9775d91 Mon Sep 17 00:00:00 2001 From: Aevyrie Date: Sun, 3 Mar 2024 16:10:06 -0800 Subject: [PATCH 5/5] fix docs --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 56a7968..a37600e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,4 @@ -//! This is a [`bevy`] plugin that adds framepacing and framelimiting to improve input latency and +//! This is a `bevy` plugin that adds framepacing and framelimiting to improve input latency and //! power use. //! //! # How it works