Skip to content

Commit a430ae3

Browse files
committed
Update bevy to 0.10
1 parent a9589d8 commit a430ae3

File tree

4 files changed

+34
-45
lines changed

4 files changed

+34
-45
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
### Changed
66

7+
- Updated `bevy` to 0.10.
78
- Updated `pixels` to 0.12.
89

910
## [0.8.0] - 2022-12-20

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ wayland = ["bevy/wayland"]
1919
x11 = ["bevy/x11"]
2020

2121
[dependencies]
22-
bevy = { version = "0.9", default_features = false, features = ["bevy_winit"] }
22+
bevy = { version = "0.10", default_features = false, features = ["bevy_winit"] }
2323
pixels = "0.12"
2424

2525
[target.'cfg(target_arch = "wasm32")'.dependencies]

examples/minimal.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use bevy::{
22
app::AppExit,
33
diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin},
44
prelude::*,
5-
window::WindowResizeConstraints,
5+
window::{WindowResizeConstraints, WindowResolution},
66
};
77
use bevy_pixels::prelude::*;
88
use rand::prelude::*;
@@ -42,18 +42,17 @@ struct Color(u8, u8, u8, u8);
4242
fn main() {
4343
App::new()
4444
.add_plugins(DefaultPlugins.set(WindowPlugin {
45-
window: WindowDescriptor {
45+
primary_window: Some(Window {
4646
title: "Hello Bevy Pixels".to_string(),
47-
width: WIDTH as f32,
48-
height: HEIGHT as f32,
47+
resolution: WindowResolution::new(WIDTH as f32, HEIGHT as f32),
4948
resize_constraints: WindowResizeConstraints {
5049
min_width: WIDTH as f32,
5150
min_height: HEIGHT as f32,
5251
..default()
5352
},
5453
fit_canvas_to_parent: true,
5554
..default()
56-
},
55+
}),
5756
..default()
5857
}))
5958
.add_plugin(PixelsPlugin {
@@ -67,8 +66,8 @@ fn main() {
6766
.add_system(bounce)
6867
.add_system(movement.after(bounce))
6968
.add_system(exit_on_escape)
70-
.add_system_to_stage(PixelsStage::Draw, draw_background)
71-
.add_system_to_stage(PixelsStage::Draw, draw_objects.after(draw_background))
69+
.add_system(draw_background.in_set(PixelsSet::Draw))
70+
.add_system(draw_objects.in_set(PixelsSet::Draw).after(draw_background))
7271
.run();
7372
}
7473

src/lib.rs

Lines changed: 26 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
pub mod prelude {
2-
pub use crate::{PixelsPlugin, PixelsResource, PixelsStage};
2+
pub use crate::{PixelsPlugin, PixelsResource, PixelsSet};
33
}
44

55
pub use pixels;
66

77
use bevy::{
88
diagnostic::{Diagnostic, DiagnosticId, Diagnostics},
99
prelude::*,
10-
window::{WindowBackendScaleFactorChanged, WindowId, WindowResized},
10+
window::{WindowBackendScaleFactorChanged, WindowResized},
1111
winit::WinitWindows,
1212
};
1313
use pixels::{Pixels, SurfaceTexture};
@@ -16,8 +16,8 @@ use pollster::FutureExt as _;
1616
#[cfg(not(target_arch = "wasm32"))]
1717
use std::time::Instant;
1818

19-
#[derive(Debug, Hash, PartialEq, Eq, Clone, StageLabel)]
20-
pub enum PixelsStage {
19+
#[derive(SystemSet, Debug, Hash, PartialEq, Eq, Clone)]
20+
pub enum PixelsSet {
2121
Draw,
2222
Render,
2323
PostRender,
@@ -26,7 +26,7 @@ pub enum PixelsStage {
2626
#[derive(Resource)]
2727
pub struct PixelsResource {
2828
pub pixels: Pixels,
29-
pub window_id: WindowId,
29+
pub window: Entity,
3030
}
3131

3232
// Internal configuration resource for use in `setup` system. Users should set values on
@@ -60,25 +60,15 @@ impl Plugin for PixelsPlugin {
6060
width: self.width,
6161
height: self.height,
6262
})
63-
.add_stage_after(
64-
CoreStage::PostUpdate,
65-
PixelsStage::Draw,
66-
SystemStage::parallel(),
63+
.configure_set(
64+
PixelsSet::Draw
65+
.before(PixelsSet::Render)
66+
.before(PixelsSet::PostRender), // (PixelsSet::Draw, PixelsSet::Render, PixelsSet::PostRender).chain()
6767
)
68-
.add_stage_after(
69-
PixelsStage::Draw,
70-
PixelsStage::Render,
71-
SystemStage::parallel(),
72-
)
73-
.add_stage_after(
74-
PixelsStage::Render,
75-
PixelsStage::PostRender,
76-
SystemStage::parallel(),
77-
)
78-
.add_startup_system_to_stage(StartupStage::PreStartup, Self::setup)
68+
.add_startup_system(Self::setup)
7969
.add_system(Self::window_resize)
8070
.add_system(Self::window_change)
81-
.add_system_to_stage(PixelsStage::Render, Self::render);
71+
.add_system(Self::render.in_set(PixelsSet::Render));
8272
}
8373
}
8474

@@ -90,18 +80,15 @@ impl PixelsPlugin {
9080
mut commands: Commands,
9181
mut diagnostics: ResMut<Diagnostics>,
9282
options: Res<PixelsOptions>,
93-
windows: Res<Windows>,
83+
windows: Query<(Entity, &Window)>,
9484
winit_windows: NonSend<WinitWindows>,
9585
) {
9686
diagnostics.add(Diagnostic::new(Self::RENDER_TIME, "render_time", 20).with_suffix("s"));
9787

98-
let window_id = windows
99-
.get_primary()
100-
.expect("primary window not found")
101-
.id();
88+
let (window, _) = windows.get_single().expect("primary window not found");
10289

10390
let winit_window = winit_windows
104-
.get_window(window_id)
91+
.get_window(window)
10592
.expect("failed to get primary winit window");
10693

10794
let window_size = winit_window.inner_size();
@@ -121,17 +108,19 @@ impl PixelsPlugin {
121108
}
122109
.expect("failed to create pixels");
123110

124-
commands.insert_resource(PixelsResource { pixels, window_id });
111+
commands.insert_resource(PixelsResource { pixels, window });
125112
}
126113

127114
pub fn window_resize(
128115
mut window_resized_events: EventReader<WindowResized>,
129116
mut resource: ResMut<PixelsResource>,
130-
windows: Res<Windows>,
117+
windows: Query<&Window>,
131118
) {
132119
for event in window_resized_events.iter() {
133-
if event.id == resource.window_id {
134-
Self::resize_surface_to_window(&mut resource, &windows);
120+
if event.window == resource.window {
121+
if let Ok(window) = windows.get(event.window) {
122+
Self::resize_surface_to_window(&mut resource, window);
123+
}
135124
}
136125
}
137126
}
@@ -141,18 +130,18 @@ impl PixelsPlugin {
141130
WindowBackendScaleFactorChanged,
142131
>,
143132
mut resource: ResMut<PixelsResource>,
144-
windows: Res<Windows>,
133+
windows: Query<&Window>,
145134
) {
146135
for event in window_backend_scale_factor_changed_events.iter() {
147-
if event.id == resource.window_id {
148-
Self::resize_surface_to_window(&mut resource, &windows);
136+
if event.window == resource.window {
137+
if let Ok(window) = windows.get(event.window) {
138+
Self::resize_surface_to_window(&mut resource, window);
139+
}
149140
}
150141
}
151142
}
152143

153-
fn resize_surface_to_window(resource: &mut ResMut<PixelsResource>, windows: &Res<Windows>) {
154-
let window = windows.get(resource.window_id).unwrap();
155-
144+
fn resize_surface_to_window(resource: &mut ResMut<PixelsResource>, window: &Window) {
156145
let _ = resource
157146
.pixels
158147
.resize_surface(window.physical_width(), window.physical_height());

0 commit comments

Comments
 (0)