diff options
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/webglrenderbuffer.rs | 2 | ||||
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 21 |
2 files changed, 4 insertions, 19 deletions
diff --git a/components/script/dom/webglrenderbuffer.rs b/components/script/dom/webglrenderbuffer.rs index a672f9faa72..9e21d78fe5a 100644 --- a/components/script/dom/webglrenderbuffer.rs +++ b/components/script/dom/webglrenderbuffer.rs @@ -106,8 +106,6 @@ impl WebGLRenderbuffer { _ => return Err(WebGLError::InvalidEnum), }; - // FIXME: Check that w/h are < MAX_RENDERBUFFER_SIZE - // FIXME: Invalidate completeness after the call let msg = WebGLCommand::RenderbufferStorage(constants::RENDERBUFFER, internal_format, width, height); diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 3988c93646f..34d085d7f6b 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -3863,27 +3863,14 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.7 - fn RenderbufferStorage(&self, target: u32, internal_format: u32, - width: i32, height: i32) { - // From the GLES 2.0.25 spec: - // - // "target must be RENDERBUFFER." + fn RenderbufferStorage(&self, target: u32, internal_format: u32, width: i32, height: i32) { if target != constants::RENDERBUFFER { return self.webgl_error(InvalidEnum); } - // From the GLES 2.0.25 spec: - // - // "If either width or height is greater than the value of - // MAX_RENDERBUFFER_SIZE , the error INVALID_VALUE is - // generated." - // - // and we have to throw out negative-size values as well just - // like for TexImage. - // - // FIXME: Handle max_renderbuffer_size, which doesn't seem to - // be in limits. - if width < 0 || height < 0 { + let max = self.limits.max_renderbuffer_size; + + if width < 0 || width as u32 > max || height < 0 || height as u32 > max { return self.webgl_error(InvalidValue); } |