diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/webglframebuffer.rs | 2 | ||||
-rw-r--r-- | components/script/dom/webglrenderbuffer.rs | 6 |
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) { |