mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Auto merge of #11426 - DDEFISHER:master, r=emilio
Implement IsBuffer, IsFramebuffer and IsRenderbuffer for WebGLRenderingContext - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy --faster` does not report any errors - [X] These changes fix #11357 - [X] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11426) <!-- Reviewable:end -->
This commit is contained in:
commit
b11648903b
6 changed files with 50 additions and 4 deletions
|
@ -17,6 +17,8 @@ use webrender_traits::{WebGLCommand, WebGLFramebufferBindingRequest};
|
|||
pub struct WebGLFramebuffer {
|
||||
webgl_object: WebGLObject,
|
||||
id: u32,
|
||||
/// target can only be gl::FRAMEBUFFER at the moment
|
||||
target: Cell<Option<u32>>,
|
||||
is_deleted: Cell<bool>,
|
||||
#[ignore_heap_size_of = "Defined in ipc-channel"]
|
||||
renderer: IpcSender<CanvasMsg>,
|
||||
|
@ -27,6 +29,7 @@ impl WebGLFramebuffer {
|
|||
WebGLFramebuffer {
|
||||
webgl_object: WebGLObject::new_inherited(),
|
||||
id: id,
|
||||
target: Cell::new(None),
|
||||
is_deleted: Cell::new(false),
|
||||
renderer: renderer,
|
||||
}
|
||||
|
@ -54,6 +57,7 @@ impl WebGLFramebuffer {
|
|||
}
|
||||
|
||||
pub fn bind(&self, target: u32) {
|
||||
self.target.set(Some(target));
|
||||
let cmd = WebGLCommand::BindFramebuffer(target, WebGLFramebufferBindingRequest::Explicit(self.id));
|
||||
self.renderer.send(CanvasMsg::WebGL(cmd)).unwrap();
|
||||
}
|
||||
|
@ -64,6 +68,14 @@ impl WebGLFramebuffer {
|
|||
let _ = self.renderer.send(CanvasMsg::WebGL(WebGLCommand::DeleteFramebuffer(self.id)));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_deleted(&self) -> bool {
|
||||
self.is_deleted.get()
|
||||
}
|
||||
|
||||
pub fn target(&self) -> Option<u32> {
|
||||
self.target.get()
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for WebGLFramebuffer {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue