From 216d5b33beb802df6565ad40a82ce749e0afc194 Mon Sep 17 00:00:00 2001 From: Luke Wilde Date: Tue, 24 Dec 2024 18:22:44 +0000 Subject: [PATCH] LibWeb/WebGL: Enforce minimum size when resizing existing context Previously the enforcement was only done on creation. Not enforcing it on change would cause a crash if the canvas width/height was set to zero or less. --- Libraries/LibWeb/WebGL/WebGL2RenderingContext.cpp | 5 ++++- Libraries/LibWeb/WebGL/WebGLRenderingContext.cpp | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Libraries/LibWeb/WebGL/WebGL2RenderingContext.cpp b/Libraries/LibWeb/WebGL/WebGL2RenderingContext.cpp index 1b254771d5f..847129e76e0 100644 --- a/Libraries/LibWeb/WebGL/WebGL2RenderingContext.cpp +++ b/Libraries/LibWeb/WebGL/WebGL2RenderingContext.cpp @@ -129,7 +129,10 @@ Optional WebGL2RenderingContext::get_context_attributes( void WebGL2RenderingContext::set_size(Gfx::IntSize const& size) { - context().set_size(size); + Gfx::IntSize final_size; + final_size.set_width(max(size.width(), 1)); + final_size.set_height(max(size.height(), 1)); + context().set_size(final_size); } void WebGL2RenderingContext::reset_to_default_state() diff --git a/Libraries/LibWeb/WebGL/WebGLRenderingContext.cpp b/Libraries/LibWeb/WebGL/WebGLRenderingContext.cpp index 689db38d530..b03f58263c0 100644 --- a/Libraries/LibWeb/WebGL/WebGLRenderingContext.cpp +++ b/Libraries/LibWeb/WebGL/WebGLRenderingContext.cpp @@ -146,7 +146,10 @@ Optional WebGLRenderingContext::get_context_attributes() void WebGLRenderingContext::set_size(Gfx::IntSize const& size) { - context().set_size(size); + Gfx::IntSize final_size; + final_size.set_width(max(size.width(), 1)); + final_size.set_height(max(size.height(), 1)); + context().set_size(final_size); } void WebGLRenderingContext::reset_to_default_state()