From 21e2f97cfaf805c9e8f53e515c717ad263d3b891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Wed, 20 Apr 2016 20:24:56 +0200 Subject: [PATCH] webgl: Fix filling a non-zero level You can fill a level > 0 as long as the width and height values are power of two, so the previous test was bogus. --- components/script/dom/webglrenderingcontext.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 551a1874b0c..51a53cb3435 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -251,13 +251,10 @@ impl WebGLRenderingContext { // If an attempt is made to call this function with no // WebGLTexture bound, an INVALID_OPERATION error is generated. - let texture = match texture { - Some(texture) => texture, - None => { - self.webgl_error(InvalidOperation); - return false; - } - }; + if texture.is_none() { + self.webgl_error(InvalidOperation); + return false; + } // GL_INVALID_ENUM is generated if data_type is not an accepted value. match data_type { @@ -324,7 +321,9 @@ impl WebGLRenderingContext { // GL_INVALID_VALUE is generated if level is greater than zero and the // texture and the texture is not power of two. - if level > 0 && !texture.is_power_of_two() { + if level > 0 && + (!(width as u32).is_power_of_two() || + !(height as u32).is_power_of_two()) { self.webgl_error(InvalidValue); return false; }