Skip to content

Commit

Permalink
webgl: Add an interface for getting the size of renderbuffers.
Browse files Browse the repository at this point in the history
We need this for framebuffer status checking.
  • Loading branch information
anholt committed Nov 5, 2016
1 parent f7875da commit 0893849
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions components/script/dom/webglrenderbuffer.rs
Expand Up @@ -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>,
Expand All @@ -36,6 +37,7 @@ impl WebGLRenderbuffer {
is_deleted: Cell::new(false),
renderer: renderer,
internal_format: Cell::new(None),
size: Cell::new(None),
}
}

Expand Down Expand Up @@ -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)));
Expand Down Expand Up @@ -106,6 +112,8 @@ impl WebGLRenderbuffer {
internal_format, width, height));
self.renderer.send(msg).unwrap();

self.size.set(Some((width, height)));

Ok(())
}
}

0 comments on commit 0893849

Please sign in to comment.