aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webglrenderingcontext.rs
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2016-09-16 22:51:37 +0100
committerEric Anholt <eric@anholt.net>2016-10-25 22:18:27 -0700
commit8a0ca2efba71446a7e49d8bd832de2117fa44a7d (patch)
tree5cab843ece0cb059ef120b60637c5ef0399d3cf4 /components/script/dom/webglrenderingcontext.rs
parentcc0955f12d3d124a61a5fa435265ecba3864168c (diff)
downloadservo-8a0ca2efba71446a7e49d8bd832de2117fa44a7d.tar.gz
servo-8a0ca2efba71446a7e49d8bd832de2117fa44a7d.zip
webgl: Add support for checkFramebufferStatus().
For now it's returning the default UNSUPPORTED on user FBOs. object-deletion-behaviour.html starts running a bunch more subtets.
Diffstat (limited to 'components/script/dom/webglrenderingcontext.rs')
-rw-r--r--components/script/dom/webglrenderingcontext.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index 1926bdf8a8d..c93e80d805e 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -2552,6 +2552,23 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn TexParameteri(&self, target: u32, name: u32, value: i32) {
self.tex_parameter(target, name, TexParameterValue::Int(value))
}
+
+ fn CheckFramebufferStatus(&self, target: u32) -> u32 {
+ // From the GLES 2.0.25 spec, 4.4 ("Framebuffer Objects"):
+ //
+ // "If target is not FRAMEBUFFER, INVALID_ENUM is
+ // generated. If CheckFramebufferStatus generates an
+ // error, 0 is returned."
+ if target != constants::FRAMEBUFFER {
+ self.webgl_error(InvalidEnum);
+ return 0;
+ }
+
+ match self.bound_framebuffer.get() {
+ Some(fb) => return fb.check_status(),
+ None => return constants::FRAMEBUFFER_COMPLETE,
+ }
+ }
}
pub trait LayoutCanvasWebGLRenderingContextHelpers {