//! Illustrates how to change window settings and shows how to affect //! the mouse pointer in various ways. use bevy::{ diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}, prelude::*, window::{CursorGrabMode, PresentMode}, }; fn main() { App::new() .add_plugins(DefaultPlugins.set(WindowPlugin { window: WindowDescriptor { title: "I am a window!".to_string(), width: 500., height: 300., present_mode: PresentMode::AutoVsync, ..default() }, ..default() })) .add_plugin(LogDiagnosticsPlugin::default()) .add_plugin(FrameTimeDiagnosticsPlugin) .add_system(change_title) .add_system(toggle_cursor) .add_system(toggle_vsync) .add_system(cycle_cursor_icon) .run(); } /// This system toggles the vsync mode when pressing the button V. /// You'll see fps increase displayed in the console. fn toggle_vsync(input: Res>, mut windows: ResMut) { if input.just_pressed(KeyCode::V) { let window = windows.primary_mut(); window.set_present_mode(if matches!(window.present_mode(), PresentMode::AutoVsync) { PresentMode::AutoNoVsync } else { PresentMode::AutoVsync }); info!("PRESENT_MODE: {:?}", window.present_mode()); } } /// This system will then change the title during execution fn change_title(time: Res