diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-05-29 20:03:56 -0500 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-05-29 20:03:56 -0500 |
commit | b11648903bb07a31ec93f3030058ed41b3472b17 (patch) | |
tree | 529cfe72e407ce08c14ded7c0a99d1609d2660ca /components/script/dom/webglframebuffer.rs | |
parent | e8e7c6545d714a64d7971fad74f2b2c538dbed65 (diff) | |
parent | c017438428acdb59d1b3127f0c3e249f2b2658b4 (diff) | |
download | servo-b11648903bb07a31ec93f3030058ed41b3472b17.tar.gz servo-b11648903bb07a31ec93f3030058ed41b3472b17.zip |
Auto merge of #11426 - DDEFISHER:master, r=emilio
Implement IsBuffer, IsFramebuffer and IsRenderbuffer for WebGLRenderingContext
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy --faster` does not report any errors
- [X] These changes fix #11357
- [X] There are tests for these changes
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11426)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/webglframebuffer.rs')
-rw-r--r-- | components/script/dom/webglframebuffer.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/components/script/dom/webglframebuffer.rs b/components/script/dom/webglframebuffer.rs index 93522addf35..06c0095b1c9 100644 --- a/components/script/dom/webglframebuffer.rs +++ b/components/script/dom/webglframebuffer.rs @@ -17,6 +17,8 @@ use webrender_traits::{WebGLCommand, WebGLFramebufferBindingRequest}; pub struct WebGLFramebuffer { webgl_object: WebGLObject, id: u32, + /// target can only be gl::FRAMEBUFFER at the moment + target: Cell<Option<u32>>, is_deleted: Cell<bool>, #[ignore_heap_size_of = "Defined in ipc-channel"] renderer: IpcSender<CanvasMsg>, @@ -27,6 +29,7 @@ impl WebGLFramebuffer { WebGLFramebuffer { webgl_object: WebGLObject::new_inherited(), id: id, + target: Cell::new(None), is_deleted: Cell::new(false), renderer: renderer, } @@ -54,6 +57,7 @@ impl WebGLFramebuffer { } pub fn bind(&self, target: u32) { + self.target.set(Some(target)); let cmd = WebGLCommand::BindFramebuffer(target, WebGLFramebufferBindingRequest::Explicit(self.id)); self.renderer.send(CanvasMsg::WebGL(cmd)).unwrap(); } @@ -64,6 +68,14 @@ impl WebGLFramebuffer { let _ = self.renderer.send(CanvasMsg::WebGL(WebGLCommand::DeleteFramebuffer(self.id))); } } + + pub fn is_deleted(&self) -> bool { + self.is_deleted.get() + } + + pub fn target(&self) -> Option<u32> { + self.target.get() + } } impl Drop for WebGLFramebuffer { |