diff options
author | Eric Anholt <eric@anholt.net> | 2016-10-30 17:19:04 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2016-11-05 09:42:15 -0700 |
commit | 08938499a0bfbc0b2c52fd1f7d29c57fceab6c76 (patch) | |
tree | a8a9acada5bee78205bbc6a07ff9569213cfad99 /components/script/dom/webglrenderbuffer.rs | |
parent | f7875dad1a43792ff3869f292990d03d30ebd9eb (diff) | |
download | servo-08938499a0bfbc0b2c52fd1f7d29c57fceab6c76.tar.gz servo-08938499a0bfbc0b2c52fd1f7d29c57fceab6c76.zip |
webgl: Add an interface for getting the size of renderbuffers.
We need this for framebuffer status checking.
Diffstat (limited to 'components/script/dom/webglrenderbuffer.rs')
-rw-r--r-- | components/script/dom/webglrenderbuffer.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/components/script/dom/webglrenderbuffer.rs b/components/script/dom/webglrenderbuffer.rs index 9e3c516cfbd..186b2aedf5a 100644 --- a/components/script/dom/webglrenderbuffer.rs +++ b/components/script/dom/webglrenderbuffer.rs @@ -20,6 +20,7 @@ pub struct WebGLRenderbuffer { id: WebGLRenderbufferId, ever_bound: Cell<bool>, is_deleted: Cell<bool>, + size: Cell<Option<(i32, i32)>>, internal_format: Cell<Option<u32>>, #[ignore_heap_size_of = "Defined in ipc-channel"] renderer: IpcSender<CanvasMsg>, @@ -36,6 +37,7 @@ impl WebGLRenderbuffer { is_deleted: Cell::new(false), renderer: renderer, internal_format: Cell::new(None), + size: Cell::new(None), } } @@ -64,6 +66,10 @@ impl WebGLRenderbuffer { self.id } + pub fn size(&self) -> Option<(i32, i32)> { + self.size.get() + } + pub fn bind(&self, target: u32) { self.ever_bound.set(true); let msg = CanvasMsg::WebGL(WebGLCommand::BindRenderbuffer(target, Some(self.id))); @@ -106,6 +112,8 @@ impl WebGLRenderbuffer { internal_format, width, height)); self.renderer.send(msg).unwrap(); + self.size.set(Some((width, height))); + Ok(()) } } |