aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webglrenderbuffer.rs
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2016-10-30 17:19:04 -0700
committerEric Anholt <eric@anholt.net>2016-11-05 09:42:15 -0700
commit08938499a0bfbc0b2c52fd1f7d29c57fceab6c76 (patch)
treea8a9acada5bee78205bbc6a07ff9569213cfad99 /components/script/dom/webglrenderbuffer.rs
parentf7875dad1a43792ff3869f292990d03d30ebd9eb (diff)
downloadservo-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.rs8
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(())
}
}