소스 검색

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.
Luke Wilde 7 달 전
부모
커밋
e168bd36d6
2개의 변경된 파일8개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 1
      Libraries/LibWeb/WebGL/WebGL2RenderingContext.cpp
  2. 4 1
      Libraries/LibWeb/WebGL/WebGLRenderingContext.cpp

+ 4 - 1
Libraries/LibWeb/WebGL/WebGL2RenderingContext.cpp

@@ -129,7 +129,10 @@ Optional<WebGLContextAttributes> 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()

+ 4 - 1
Libraries/LibWeb/WebGL/WebGLRenderingContext.cpp

@@ -146,7 +146,10 @@ Optional<WebGLContextAttributes> 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()