aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/webglframebuffer.rs2
-rw-r--r--components/script/dom/webglrenderbuffer.rs6
2 files changed, 6 insertions, 2 deletions
diff --git a/components/script/dom/webglframebuffer.rs b/components/script/dom/webglframebuffer.rs
index 76be81aee87..b79393a7863 100644
--- a/components/script/dom/webglframebuffer.rs
+++ b/components/script/dom/webglframebuffer.rs
@@ -274,7 +274,7 @@ impl WebGLFramebuffer {
let rb_id = match rb {
Some(rb) => {
- rb.attach(self);
+ rb.attach(self)?;
*binding.borrow_mut() = Some(WebGLFramebufferAttachment::Renderbuffer(Dom::from_ref(rb)));
Some(rb.id())
}
diff --git a/components/script/dom/webglrenderbuffer.rs b/components/script/dom/webglrenderbuffer.rs
index 7ee108ebdc5..9637dae02e1 100644
--- a/components/script/dom/webglrenderbuffer.rs
+++ b/components/script/dom/webglrenderbuffer.rs
@@ -174,8 +174,12 @@ impl WebGLRenderbuffer {
Ok(())
}
- pub fn attach(&self, framebuffer: &WebGLFramebuffer) {
+ pub fn attach(&self, framebuffer: &WebGLFramebuffer) -> WebGLResult<()> {
+ if !self.ever_bound.get() {
+ return Err(WebGLError::InvalidOperation);
+ }
self.attached_framebuffers.borrow_mut().push(Dom::from_ref(framebuffer));
+ Ok(())
}
pub fn unattach(&self, fb: &WebGLFramebuffer) {