webgl: Add an interface for getting the size of renderbuffers.

We need this for framebuffer status checking.
This commit is contained in:
Eric Anholt 2016-10-30 17:19:04 -07:00
parent f7875dad1a
commit 08938499a0

View file

@ -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(())
}
}