aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2018-03-22 18:03:16 +0100
committerAnthony Ramine <n.oxyde@gmail.com>2018-03-22 19:17:36 +0100
commite34b19c42cce8fdc19df43d2201d7153ea9c787b (patch)
tree90ed95ac39ea457e204583eafc9553a1f5eb5ef6 /components/script/dom
parentcb6fa6e6b0b98075a7d8ac851d2f3df7fd3698e5 (diff)
downloadservo-e34b19c42cce8fdc19df43d2201d7153ea9c787b.tar.gz
servo-e34b19c42cce8fdc19df43d2201d7153ea9c787b.zip
Implement gl.getParameter(gl.VIEWPORT)
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/webglrenderingcontext.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index cb4dd83fbfd..30c60feea35 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -1305,6 +1305,14 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
return Int32Value(constants::UNSIGNED_BYTE as i32);
}
}
+ constants::VIEWPORT => {
+ let (sender, receiver) = webgl_channel().unwrap();
+ self.send_command(WebGLCommand::GetViewport(sender));
+ let (x, y, width, height) = receiver.recv().unwrap();
+ rooted!(in(cx) let mut rval = UndefinedValue());
+ [x, y, width, height].to_jsval(cx, rval.handle_mut());
+ return rval.get();
+ }
_ => {
if !self.extension_manager.is_get_parameter_name_enabled(parameter) {
self.webgl_error(WebGLError::InvalidEnum);
@@ -3236,7 +3244,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
return self.webgl_error(InvalidValue)
}
- self.send_command(WebGLCommand::Viewport(x, y, width, height))
+ self.send_command(WebGLCommand::SetViewport(x, y, width, height))
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.8