diff options
author | Imanol Fernandez <mortimergoro@gmail.com> | 2017-08-21 22:37:19 +0200 |
---|---|---|
committer | Imanol Fernandez <mortimergoro@gmail.com> | 2017-08-22 15:01:26 +0200 |
commit | 1dd3899c370a9fe763b57f8dd9a0139fb09e7b7e (patch) | |
tree | 483cd388fb51d6ecf954a06645081a86eecc6c45 /components/script/dom/webglrenderingcontext.rs | |
parent | d4e43d9d7668d55f6cbf2586115c9a856525e88e (diff) | |
download | servo-1dd3899c370a9fe763b57f8dd9a0139fb09e7b7e.tar.gz servo-1dd3899c370a9fe763b57f8dd9a0139fb09e7b7e.zip |
Implement WebGL OES_standard_derivatives extension.
Diffstat (limited to 'components/script/dom/webglrenderingcontext.rs')
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 78e6c1e312c..a4e11c89c5e 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -1222,7 +1222,12 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { return Int32Value(constants::UNSIGNED_BYTE as i32); } } - _ => {} + _ => { + if !self.extension_manager.is_get_parameter_name_enabled(parameter) { + self.webgl_error(WebGLError::InvalidEnum); + return NullValue(); + } + } } // Handle GetParameter getters injected via WebGL extensions @@ -1832,7 +1837,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9 fn CompileShader(&self, shader: Option<&WebGLShader>) { if let Some(shader) = shader { - shader.compile() + shader.compile(&self.extension_manager) } } @@ -2284,7 +2289,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn Hint(&self, target: u32, mode: u32) { - if target != constants::GENERATE_MIPMAP_HINT { + if target != constants::GENERATE_MIPMAP_HINT && !self.extension_manager.is_hint_target_enabled(target) { return self.webgl_error(InvalidEnum); } |