From 746c72950a353f51c74c9adf9a985ad7f9b294a0 Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 24 Apr 2026 19:13:51 +0200 Subject: fix(engine): make GL viewport size tied to window surface size --- engine/src/renderer.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'engine/src/renderer.rs') 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), 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, - position: Vec2, - }, } 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 -- cgit v1.2.3-18-g5258