From 12a96caaf19e39611d8f1fff96d9925ca9e134f8 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 9 Aug 2016 23:23:42 -0700 Subject: [PATCH] webgl: Validate that depthRange near <= far. Fixes a subtest of webgl-specific.html. --- components/script/dom/webglrenderingcontext.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index dbb774ad87b..a7418921e8a 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -987,6 +987,15 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn DepthRange(&self, near: f32, far: f32) { + // From the WebGL 1.0 spec, 6.12: Viewport Depth Range: + // + // "A call to depthRange will generate an + // INVALID_OPERATION error if zNear is greater than + // zFar." + if near > far { + return self.webgl_error(InvalidOperation); + } + self.ipc_renderer .send(CanvasMsg::WebGL(WebGLCommand::DepthRange(near as f64, far as f64))) .unwrap()