aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webglrenderingcontext.rs
diff options
context:
space:
mode:
authorImanol Fernandez <mortimergoro@gmail.com>2017-08-21 22:37:19 +0200
committerImanol Fernandez <mortimergoro@gmail.com>2017-08-22 15:01:26 +0200
commit1dd3899c370a9fe763b57f8dd9a0139fb09e7b7e (patch)
tree483cd388fb51d6ecf954a06645081a86eecc6c45 /components/script/dom/webglrenderingcontext.rs
parentd4e43d9d7668d55f6cbf2586115c9a856525e88e (diff)
downloadservo-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.rs11
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);
}