summaryrefslogtreecommitdiff
path: root/engine/src/renderer.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-04-24 19:13:51 +0200
committerHampusM <hampus@hampusmat.com>2026-04-24 19:13:51 +0200
commit746c72950a353f51c74c9adf9a985ad7f9b294a0 (patch)
treef421c58c79089a416e86e45ab2447f329b52bdf9 /engine/src/renderer.rs
parent06ce858fce9ee624fa2b0b73ff0df0aaf3ce1ce6 (diff)
fix(engine): make GL viewport size tied to window surface size
Diffstat (limited to 'engine/src/renderer.rs')
-rw-r--r--engine/src/renderer.rs22
1 files changed, 13 insertions, 9 deletions
diff --git a/engine/src/renderer.rs b/engine/src/renderer.rs
index 744b41e..9f4ebda 100644
--- a/engine/src/renderer.rs
+++ b/engine/src/renderer.rs
@@ -224,6 +224,7 @@ pub enum Command
{
RemoveSurface(SurfaceId),
MakeCurrent(SurfaceId),
+ SetSurfaceSize(SurfaceId, Dimens<u32>),
ClearBuffers(BufferClearMask),
SwapBuffers(SurfaceId),
CreateShaderProgram(ObjectId, ShaderProgram),
@@ -250,11 +251,6 @@ pub enum Command
RemoveMesh(ObjectId),
DrawMesh(ObjectId, DrawMeshOptions),
UpdateDrawProperties(DrawProperties, DrawPropertiesUpdateFlags),
- SetViewport
- {
- size: Dimens<u32>,
- position: Vec2<u32>,
- },
}
builder! {
@@ -470,10 +466,18 @@ fn handle_window_changed(
continue;
};
- command_queue.queue.push_front(Command::SetViewport {
- position: Vec2 { x: 0, y: 0 },
- size: *evt_match.get_changed_comp().inner_size(),
- });
+ let window = evt_match.get_changed_comp();
+
+ tracing::debug!(
+ window_id=?window.wid(),
+ window_title=&*window.title,
+ "Handling potential resize of window"
+ );
+
+ command_queue.queue.push_front(Command::SetSurfaceSize(
+ window_surface_spec.id,
+ evt_match.get_changed_comp().inner_size().clone(),
+ ));
command_queue
.queue