diff options
| author | HampusM <hampus@hampusmat.com> | 2026-07-10 12:42:14 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-07-10 12:42:14 +0200 |
| commit | 8345bc48223e21c200d7f0a53ec4c9482bceeedb (patch) | |
| tree | 85178c7c6994e372c8e88d6737c95aedf60b0b9b /engine/src/rendering/backend/opengl.rs | |
| parent | f193d6222ba7572be733d53630f22191c0506c80 (diff) | |
feat(engine): make texture shader binding values specified by object ID
Diffstat (limited to 'engine/src/rendering/backend/opengl.rs')
| -rw-r--r-- | engine/src/rendering/backend/opengl.rs | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/engine/src/rendering/backend/opengl.rs b/engine/src/rendering/backend/opengl.rs index f8be5b4..fbb402c 100644 --- a/engine/src/rendering/backend/opengl.rs +++ b/engine/src/rendering/backend/opengl.rs @@ -101,9 +101,9 @@ use crate::rendering::{ GraphicsProperties, SurfaceId, SurfaceSpec, + TargetWindow, POST_RENDER_PHASE, RENDER_PHASE, - TargetWindow }; use crate::shader::cursor::BindingValue as ShaderBindingValue; use crate::shader::{ @@ -265,7 +265,7 @@ fn prepare_windows( fn init_window_graphics( window_query: Query< (&Window, &WindowGlConfig), - (With<TargetWindow>, Without<SurfaceSpec>,) + (With<TargetWindow>, Without<SurfaceSpec>), >, windowing_context: Single<WindowingContext>, graphics_props: Single<GraphicsProperties>, @@ -301,7 +301,9 @@ fn init_window_graphics( } }; - let Ok(window_inner_size) = PhysicalSize::<NonZero<u32>>::try_convert_from(window.inner_size.clone()) else { + let Ok(window_inner_size) = + PhysicalSize::<NonZero<u32>>::try_convert_from(window.inner_size.clone()) + else { tracing::error!( "Cannot create a surface for a window with a width/height of 0", ); @@ -353,8 +355,8 @@ fn init_window_graphics( &Vec2 { x: 0, y: 0 }.into(), &opengl_bindings::data_types::Dimens { width: window.inner_size.width, - height: window.inner_size.height - } + height: window.inner_size.height, + }, ) { tracing::error!("Failed to set viewport: {err}"); } @@ -474,8 +476,8 @@ fn handle_commands( &Vec2 { x: 0, y: 0 }.into(), &opengl_bindings::data_types::Dimens { width: surface.size.width, - height: surface.size.height - } + height: surface.size.height, + }, ) { tracing::error!("Failed to set viewport: {err}"); } @@ -497,8 +499,8 @@ fn handle_commands( &Vec2 { x: 0, y: 0 }.into(), &opengl_bindings::data_types::Dimens { width: surface.size.width, - height: surface.size.height - } + height: surface.size.height, + }, ) { tracing::error!("Failed to set viewport: {err}"); } @@ -588,14 +590,15 @@ fn handle_commands( continue; }; - if let ShaderBindingValue::Texture(texture_asset) = &binding_value { - let Some(texture_obj) = object_store - .get_texture_obj(&ObjectId::Asset(texture_asset.id())) + if let ShaderBindingValue::Texture(texture_object_id) = &binding_value { + let Some(texture_obj) = + object_store.get_texture_obj(texture_object_id) else { tracing::error!( - "Texture {:?} does not exist in rendering object store", - assets.get_label(texture_asset) + texture_object_id = ?texture_object_id, + "Texture does not exist in rendering object store", ); + continue; }; |
