From 08938499a0bfbc0b2c52fd1f7d29c57fceab6c76 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Sun, 30 Oct 2016 17:19:04 -0700 Subject: [PATCH] webgl: Add an interface for getting the size of renderbuffers. We need this for framebuffer status checking. --- components/script/dom/webglrenderbuffer.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/script/dom/webglrenderbuffer.rs b/components/script/dom/webglrenderbuffer.rs index 9e3c516cfbde..186b2aedf5a7 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, is_deleted: Cell, + size: Cell>, internal_format: Cell>, #[ignore_heap_size_of = "Defined in ipc-channel"] renderer: IpcSender, @@ -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(()) } }