diff options
Diffstat (limited to 'components/script/dom/webgltexture.rs')
-rw-r--r-- | components/script/dom/webgltexture.rs | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/components/script/dom/webgltexture.rs b/components/script/dom/webgltexture.rs index 88d5faaf5c8..048af5d10e0 100644 --- a/components/script/dom/webgltexture.rs +++ b/components/script/dom/webgltexture.rs @@ -3,7 +3,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl -use canvas_traits::CanvasMsg; + +use canvas_traits::webgl::{webgl_channel, WebGLCommand, WebGLError, WebGLMsgSender, WebGLResult, WebGLTextureId}; use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants; use dom::bindings::codegen::Bindings::WebGLTextureBinding; @@ -13,11 +14,8 @@ use dom::webgl_validations::types::{TexImageTarget, TexFormat, TexDataType}; use dom::webglobject::WebGLObject; use dom::window::Window; use dom_struct::dom_struct; -use ipc_channel::ipc::IpcSender; use std::cell::Cell; use std::cmp; -use webrender_api; -use webrender_api::{WebGLCommand, WebGLError, WebGLResult, WebGLTextureId}; pub enum TexParameterValue { Float(f32), @@ -46,11 +44,11 @@ pub struct WebGLTexture { min_filter: Cell<Option<u32>>, mag_filter: Cell<Option<u32>>, #[ignore_heap_size_of = "Defined in ipc-channel"] - renderer: IpcSender<CanvasMsg>, + renderer: WebGLMsgSender, } impl WebGLTexture { - fn new_inherited(renderer: IpcSender<CanvasMsg>, + fn new_inherited(renderer: WebGLMsgSender, id: WebGLTextureId) -> WebGLTexture { WebGLTexture { @@ -67,17 +65,17 @@ impl WebGLTexture { } } - pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>) + pub fn maybe_new(window: &Window, renderer: WebGLMsgSender) -> Option<Root<WebGLTexture>> { - let (sender, receiver) = webrender_api::channel::msg_channel().unwrap(); - renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateTexture(sender))).unwrap(); + let (sender, receiver) = webgl_channel().unwrap(); + renderer.send(WebGLCommand::CreateTexture(sender)).unwrap(); let result = receiver.recv().unwrap(); result.map(|texture_id| WebGLTexture::new(window, renderer, texture_id)) } pub fn new(window: &Window, - renderer: IpcSender<CanvasMsg>, + renderer: WebGLMsgSender, id: WebGLTextureId) -> Root<WebGLTexture> { reflect_dom_object(box WebGLTexture::new_inherited(renderer, id), @@ -113,7 +111,7 @@ impl WebGLTexture { self.target.set(Some(target)); } - let msg = CanvasMsg::WebGL(WebGLCommand::BindTexture(target, Some(self.id))); + let msg = WebGLCommand::BindTexture(target, Some(self.id)); self.renderer.send(msg).unwrap(); Ok(()) @@ -168,7 +166,7 @@ impl WebGLTexture { return Err(WebGLError::InvalidOperation); } - self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GenerateMipmap(target))).unwrap(); + self.renderer.send(WebGLCommand::GenerateMipmap(target)).unwrap(); if self.base_mipmap_level + base_image_info.get_max_mimap_levels() == 0 { return Err(WebGLError::InvalidOperation); @@ -181,7 +179,7 @@ impl WebGLTexture { pub fn delete(&self) { if !self.is_deleted.get() { self.is_deleted.set(true); - let _ = self.renderer.send(CanvasMsg::WebGL(WebGLCommand::DeleteTexture(self.id))); + let _ = self.renderer.send(WebGLCommand::DeleteTexture(self.id)); } } @@ -216,7 +214,7 @@ impl WebGLTexture { constants::LINEAR_MIPMAP_LINEAR => { self.min_filter.set(Some(int_value as u32)); self.renderer - .send(CanvasMsg::WebGL(WebGLCommand::TexParameteri(target, name, int_value))) + .send(WebGLCommand::TexParameteri(target, name, int_value)) .unwrap(); Ok(()) }, @@ -230,7 +228,7 @@ impl WebGLTexture { constants::LINEAR => { self.mag_filter.set(Some(int_value as u32)); self.renderer - .send(CanvasMsg::WebGL(WebGLCommand::TexParameteri(target, name, int_value))) + .send(WebGLCommand::TexParameteri(target, name, int_value)) .unwrap(); Ok(()) }, @@ -245,7 +243,7 @@ impl WebGLTexture { constants::MIRRORED_REPEAT | constants::REPEAT => { self.renderer - .send(CanvasMsg::WebGL(WebGLCommand::TexParameteri(target, name, int_value))) + .send(WebGLCommand::TexParameteri(target, name, int_value)) .unwrap(); Ok(()) }, |