mirror of
https://github.com/storytold/storyteller-bevy.git
synced 2026-10-17 00:13:17 +00:00
fix viewport
This commit is contained in:
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user