aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webglrenderingcontext.rs
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2016-12-31 11:08:27 -0800
committerEric Anholt <eric@anholt.net>2016-12-31 11:37:38 -0800
commitdaa64bf84f1f17e82e77bea896bf86a6b2a6672d (patch)
treefd83f476c2828bf29a125f40307fdc7521297bc1 /components/script/dom/webglrenderingcontext.rs
parentb06f4aec67ff93b1d667a5817084b0952e56664e (diff)
downloadservo-daa64bf84f1f17e82e77bea896bf86a6b2a6672d.tar.gz
servo-daa64bf84f1f17e82e77bea896bf86a6b2a6672d.zip
webgl: Validate enums for blendEquation.
Improves a conformance test that tried passing in desktop GL enums for blending.
Diffstat (limited to 'components/script/dom/webglrenderingcontext.rs')
-rw-r--r--components/script/dom/webglrenderingcontext.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index 81dfe804278..7ac39c13e1f 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -788,11 +788,19 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
fn BlendEquation(&self, mode: u32) {
+ if mode != constants::FUNC_ADD {
+ return self.webgl_error(InvalidEnum);
+ }
+
self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::BlendEquation(mode))).unwrap();
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
fn BlendEquationSeparate(&self, mode_rgb: u32, mode_alpha: u32) {
+ if mode_rgb != constants::FUNC_ADD || mode_alpha != constants::FUNC_ADD {
+ return self.webgl_error(InvalidEnum);
+ }
+
self.ipc_renderer
.send(CanvasMsg::WebGL(WebGLCommand::BlendEquationSeparate(mode_rgb, mode_alpha)))
.unwrap();