fix viewport

This commit is contained in:
rewin
2024-03-28 23:10:02 +03:00
parent 461ef06a4b
commit 0036e3b0f4
2 changed files with 12 additions and 11 deletions
-7
View File
@@ -216,10 +216,6 @@ fn check_loading(
if let Some((load_state, dep_load_state, rec_load_state)) =
asset_server.get_load_states(h.id())
{
let is_loaded = load_state == LoadState::Loaded;
let is_failed = load_state == LoadState::Failed;
if load_state == LoadState::NotLoaded {
not_loaded_count += 1;
}
@@ -231,9 +227,6 @@ fn check_loading(
}
});
info!("Not loaded: {}", not_loaded_count);
info!("Loading {} assets", loading_queue.queue.len());
if loading_queue.queue.len() - not_loaded_count == 0 {
//not change state
} else {
+12 -4
View File
@@ -48,10 +48,10 @@ impl fmt::Debug for ViewportSize {
#[cfg(feature = "wasm")]
pub mod wasm {
use bevy::prelude::*;
use bevy::{prelude::*, render::camera::Viewport};
use wasm_bindgen::prelude::*;
use crate::wasm::{StaticBuffer, WasmMessageBuffer};
use crate::{wasm::{StaticBuffer, WasmMessageBuffer}, MainCamera};
use super::ViewportSize;
@@ -67,8 +67,9 @@ pub mod wasm {
impl Plugin for ViewportPlugin {
fn build(&self, app: &mut App) {
app.add_event::<ViewportResizeEvent>()
.add_systems(PreUpdate, dispatch_resize_events)
.add_systems(Update, sync_window_to_viewport);
.add_systems(PreUpdate,
(dispatch_resize_events, sync_window_to_viewport).chain()
);
}
}
@@ -78,16 +79,23 @@ pub mod wasm {
fn sync_window_to_viewport(
mut events: EventReader<ViewportResizeEvent>,
mut window: Query<&mut Window>,
mut q_camera: Query<&mut Camera, With<MainCamera>>,
) {
if let Some(event) = events.read().last() {
let ViewportSize { width, height } = event.0;
window.single_mut().resolution.set(width, height);
q_camera.single_mut().viewport = Some(Viewport {
physical_size: UVec2::new(width as u32, height as u32),
..Default::default()
});
info!("Viewport size: ({:.2}, {:.2})", width, height);
}
}
fn dispatch_resize_events(mut events: EventWriter<ViewportResizeEvent>) {
if let Some(resize) = RESIZE_BUF.take_message() {
events.send(ViewportResizeEvent(resize));
info!("Dispatch Viewport size: ({:.2}, {:.2})", resize.width, resize.height);
}
}
}