diff options
author | Eric Anholt <eric@anholt.net> | 2016-09-16 22:51:37 +0100 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2016-10-25 22:18:27 -0700 |
commit | 8a0ca2efba71446a7e49d8bd832de2117fa44a7d (patch) | |
tree | 5cab843ece0cb059ef120b60637c5ef0399d3cf4 /components/script/dom/webglrenderingcontext.rs | |
parent | cc0955f12d3d124a61a5fa435265ecba3864168c (diff) | |
download | servo-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.rs | 17 |
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 { |