diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/Cargo.toml | 3 | ||||
-rw-r--r-- | components/script/dom/bindings/trace.rs | 3 | ||||
-rw-r--r-- | components/script/dom/webglbuffer.rs | 11 | ||||
-rw-r--r-- | components/script/dom/webglframebuffer.rs | 9 | ||||
-rw-r--r-- | components/script/dom/webglprogram.rs | 21 | ||||
-rw-r--r-- | components/script/dom/webglrenderbuffer.rs | 9 | ||||
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 90 | ||||
-rw-r--r-- | components/script/dom/webglshader.rs | 11 | ||||
-rw-r--r-- | components/script/dom/webgltexture.rs | 15 | ||||
-rw-r--r-- | components/script/lib.rs | 1 |
10 files changed, 91 insertions, 82 deletions
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index 2b350fcdd55..4b45959f252 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -63,6 +63,9 @@ features = ["unstable"] [dependencies.gfx_traits] path = "../gfx_traits" +[dependencies.webrender_traits] +git = "https://github.com/servo/webrender_traits" + [dependencies] app_units = {version = "0.2.3", features = ["plugins"]} bitflags = "0.3" diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 7bfb6978ee6..2491058750c 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -29,7 +29,6 @@ //! The `no_jsmanaged_fields!()` macro adds an empty implementation of `JSTraceable` to //! a datatype. -use canvas_traits::WebGLError; use canvas_traits::{CanvasGradientStop, LinearGradientStyle, RadialGradientStyle}; use canvas_traits::{CompositionOrBlending, LineCapStyle, LineJoinStyle, RepetitionStyle}; use cssparser::RGBA; @@ -91,7 +90,7 @@ use style::values::specified::Length; use url::Url; use util::str::{DOMString, LengthOrPercentageOrAuto}; use uuid::Uuid; - +use webrender_traits::WebGLError; /// A trait to allow tracing (only) DOM objects. pub trait JSTraceable { diff --git a/components/script/dom/webglbuffer.rs b/components/script/dom/webglbuffer.rs index cfb9cdc4810..0fedc762f4c 100644 --- a/components/script/dom/webglbuffer.rs +++ b/components/script/dom/webglbuffer.rs @@ -3,7 +3,7 @@ * 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, CanvasWebGLMsg, WebGLError, WebGLResult}; +use canvas_traits::CanvasMsg; use dom::bindings::codegen::Bindings::WebGLBufferBinding; use dom::bindings::global::GlobalRef; use dom::bindings::js::Root; @@ -11,6 +11,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::webglobject::WebGLObject; use ipc_channel::ipc::{self, IpcSender}; use std::cell::Cell; +use webrender_traits::{WebGLCommand, WebGLError, WebGLResult}; #[dom_struct] pub struct WebGLBuffer { @@ -39,7 +40,7 @@ impl WebGLBuffer { pub fn maybe_new(global: GlobalRef, renderer: IpcSender<CanvasMsg>) -> Option<Root<WebGLBuffer>> { let (sender, receiver) = ipc::channel().unwrap(); - renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::CreateBuffer(sender))).unwrap(); + renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateBuffer(sender))).unwrap(); let result = receiver.recv().unwrap(); result.map(|buffer_id| WebGLBuffer::new(global, renderer, *buffer_id)) @@ -65,7 +66,7 @@ impl WebGLBuffer { } else { self.target.set(Some(target)); } - self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::BindBuffer(target, self.id))).unwrap(); + self.renderer.send(CanvasMsg::WebGL(WebGLCommand::BindBuffer(target, self.id))).unwrap(); Ok(()) } @@ -78,7 +79,7 @@ impl WebGLBuffer { } self.capacity.set(data.len()); self.renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::BufferData(target, data.to_vec(), usage))) + .send(CanvasMsg::WebGL(WebGLCommand::BufferData(target, data.to_vec(), usage))) .unwrap(); Ok(()) @@ -91,7 +92,7 @@ impl WebGLBuffer { pub fn delete(&self) { if !self.is_deleted.get() { self.is_deleted.set(true); - let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteBuffer(self.id))); + let _ = self.renderer.send(CanvasMsg::WebGL(WebGLCommand::DeleteBuffer(self.id))); } } } diff --git a/components/script/dom/webglframebuffer.rs b/components/script/dom/webglframebuffer.rs index 86ed0e61b30..9dc4d7c16be 100644 --- a/components/script/dom/webglframebuffer.rs +++ b/components/script/dom/webglframebuffer.rs @@ -3,7 +3,7 @@ * 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, CanvasWebGLMsg, WebGLFramebufferBindingRequest}; +use canvas_traits::{CanvasMsg}; use dom::bindings::codegen::Bindings::WebGLFramebufferBinding; use dom::bindings::global::GlobalRef; use dom::bindings::js::Root; @@ -11,6 +11,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::webglobject::WebGLObject; use ipc_channel::ipc::{self, IpcSender}; use std::cell::Cell; +use webrender_traits::{WebGLCommand, WebGLFramebufferBindingRequest}; #[dom_struct] pub struct WebGLFramebuffer { @@ -34,7 +35,7 @@ impl WebGLFramebuffer { pub fn maybe_new(global: GlobalRef, renderer: IpcSender<CanvasMsg>) -> Option<Root<WebGLFramebuffer>> { let (sender, receiver) = ipc::channel().unwrap(); - renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::CreateFramebuffer(sender))).unwrap(); + renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateFramebuffer(sender))).unwrap(); let result = receiver.recv().unwrap(); result.map(|fb_id| WebGLFramebuffer::new(global, renderer, *fb_id)) @@ -53,14 +54,14 @@ impl WebGLFramebuffer { } pub fn bind(&self, target: u32) { - let cmd = CanvasWebGLMsg::BindFramebuffer(target, WebGLFramebufferBindingRequest::Explicit(self.id)); + let cmd = WebGLCommand::BindFramebuffer(target, WebGLFramebufferBindingRequest::Explicit(self.id)); self.renderer.send(CanvasMsg::WebGL(cmd)).unwrap(); } pub fn delete(&self) { if !self.is_deleted.get() { self.is_deleted.set(true); - let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteFramebuffer(self.id))); + let _ = self.renderer.send(CanvasMsg::WebGL(WebGLCommand::DeleteFramebuffer(self.id))); } } } diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs index 9df581f9afc..338a1e8d46b 100644 --- a/components/script/dom/webglprogram.rs +++ b/components/script/dom/webglprogram.rs @@ -3,7 +3,7 @@ * 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, CanvasWebGLMsg, WebGLError, WebGLResult, WebGLParameter}; +use canvas_traits::CanvasMsg; use dom::bindings::codegen::Bindings::WebGLProgramBinding; use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants; use dom::bindings::global::GlobalRef; @@ -15,6 +15,7 @@ use dom::webglshader::WebGLShader; use ipc_channel::ipc::{self, IpcSender}; use std::cell::Cell; use util::str::DOMString; +use webrender_traits::{WebGLCommand, WebGLError, WebGLParameter, WebGLResult}; #[dom_struct] pub struct WebGLProgram { @@ -42,7 +43,7 @@ impl WebGLProgram { pub fn maybe_new(global: GlobalRef, renderer: IpcSender<CanvasMsg>) -> Option<Root<WebGLProgram>> { let (sender, receiver) = ipc::channel().unwrap(); - renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::CreateProgram(sender))).unwrap(); + renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateProgram(sender))).unwrap(); let result = receiver.recv().unwrap(); result.map(|program_id| WebGLProgram::new(global, renderer, *program_id)) @@ -63,13 +64,13 @@ impl WebGLProgram { pub fn delete(&self) { if !self.is_deleted.get() { self.is_deleted.set(true); - let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteProgram(self.id))); + let _ = self.renderer.send(CanvasMsg::WebGL(WebGLCommand::DeleteProgram(self.id))); } } /// glLinkProgram pub fn link(&self) { - self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::LinkProgram(self.id))).unwrap(); + self.renderer.send(CanvasMsg::WebGL(WebGLCommand::LinkProgram(self.id))).unwrap(); } /// glUseProgram @@ -84,7 +85,7 @@ impl WebGLProgram { _ => return Err(WebGLError::InvalidOperation), } - self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::UseProgram(self.id))).unwrap(); + self.renderer.send(CanvasMsg::WebGL(WebGLCommand::UseProgram(self.id))).unwrap(); Ok(()) } @@ -104,7 +105,7 @@ impl WebGLProgram { shader_slot.set(Some(shader)); - self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::AttachShader(self.id, shader.id()))).unwrap(); + self.renderer.send(CanvasMsg::WebGL(WebGLCommand::AttachShader(self.id, shader.id()))).unwrap(); Ok(()) } @@ -121,7 +122,7 @@ impl WebGLProgram { } self.renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::BindAttribLocation(self.id, index, String::from(name)))) + .send(CanvasMsg::WebGL(WebGLCommand::BindAttribLocation(self.id, index, String::from(name)))) .unwrap(); Ok(()) } @@ -139,7 +140,7 @@ impl WebGLProgram { let (sender, receiver) = ipc::channel().unwrap(); self.renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::GetAttribLocation(self.id, String::from(name), sender))) + .send(CanvasMsg::WebGL(WebGLCommand::GetAttribLocation(self.id, String::from(name), sender))) .unwrap(); Ok(receiver.recv().unwrap()) } @@ -157,7 +158,7 @@ impl WebGLProgram { let (sender, receiver) = ipc::channel().unwrap(); self.renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::GetUniformLocation(self.id, String::from(name), sender))) + .send(CanvasMsg::WebGL(WebGLCommand::GetUniformLocation(self.id, String::from(name), sender))) .unwrap(); Ok(receiver.recv().unwrap()) } @@ -165,7 +166,7 @@ impl WebGLProgram { /// glGetProgramParameter pub fn parameter(&self, param_id: u32) -> WebGLResult<WebGLParameter> { let (sender, receiver) = ipc::channel().unwrap(); - self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::GetProgramParameter(self.id, param_id, sender))).unwrap(); + self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GetProgramParameter(self.id, param_id, sender))).unwrap(); receiver.recv().unwrap() } } diff --git a/components/script/dom/webglrenderbuffer.rs b/components/script/dom/webglrenderbuffer.rs index 5257c4782a9..a63bd1c975a 100644 --- a/components/script/dom/webglrenderbuffer.rs +++ b/components/script/dom/webglrenderbuffer.rs @@ -3,7 +3,7 @@ * 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, CanvasWebGLMsg}; +use canvas_traits::CanvasMsg; use dom::bindings::codegen::Bindings::WebGLRenderbufferBinding; use dom::bindings::global::GlobalRef; use dom::bindings::js::Root; @@ -11,6 +11,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::webglobject::WebGLObject; use ipc_channel::ipc::{self, IpcSender}; use std::cell::Cell; +use webrender_traits::WebGLCommand; #[dom_struct] pub struct WebGLRenderbuffer { @@ -34,7 +35,7 @@ impl WebGLRenderbuffer { pub fn maybe_new(global: GlobalRef, renderer: IpcSender<CanvasMsg>) -> Option<Root<WebGLRenderbuffer>> { let (sender, receiver) = ipc::channel().unwrap(); - renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::CreateRenderbuffer(sender))).unwrap(); + renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateRenderbuffer(sender))).unwrap(); let result = receiver.recv().unwrap(); result.map(|renderbuffer_id| WebGLRenderbuffer::new(global, renderer, *renderbuffer_id)) @@ -53,13 +54,13 @@ impl WebGLRenderbuffer { } pub fn bind(&self, target: u32) { - self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::BindRenderbuffer(target, self.id))).unwrap(); + self.renderer.send(CanvasMsg::WebGL(WebGLCommand::BindRenderbuffer(target, self.id))).unwrap(); } pub fn delete(&self) { if !self.is_deleted.get() { self.is_deleted.set(true); - let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteRenderbuffer(self.id))); + let _ = self.renderer.send(CanvasMsg::WebGL(WebGLCommand::DeleteRenderbuffer(self.id))); } } } diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index c5070cca69e..e614b7afc6f 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -2,9 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use canvas_traits::WebGLError::*; -use canvas_traits::{CanvasCommonMsg, CanvasMsg, CanvasWebGLMsg, WebGLError}; -use canvas_traits::{WebGLFramebufferBindingRequest, WebGLParameter}; +use canvas_traits::{CanvasCommonMsg, CanvasMsg}; use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants; use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::{WebGLRenderingContextMethods}; use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::{self, WebGLContextAttributes}; @@ -37,6 +35,8 @@ use script_traits::ScriptMsg as ConstellationMsg; use std::cell::Cell; use util::str::DOMString; use util::vec::byte_swap; +use webrender_traits::WebGLError::*; +use webrender_traits::{WebGLCommand, WebGLError, WebGLFramebufferBindingRequest, WebGLParameter}; pub const MAX_UNIFORM_AND_ATTRIBUTE_LEN: usize = 256; @@ -164,7 +164,7 @@ impl WebGLRenderingContext { fn vertex_attrib(&self, indx: u32, x: f32, y: f32, z: f32, w: f32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::VertexAttrib(indx, x, y, z, w))) + .send(CanvasMsg::WebGL(WebGLCommand::VertexAttrib(indx, x, y, z, w))) .unwrap(); } } @@ -185,7 +185,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { fn DrawingBufferWidth(&self) -> i32 { let (sender, receiver) = ipc::channel().unwrap(); self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::DrawingBufferWidth(sender))) + .send(CanvasMsg::WebGL(WebGLCommand::DrawingBufferWidth(sender))) .unwrap(); receiver.recv().unwrap() } @@ -194,7 +194,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { fn DrawingBufferHeight(&self) -> i32 { let (sender, receiver) = ipc::channel().unwrap(); self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::DrawingBufferHeight(sender))) + .send(CanvasMsg::WebGL(WebGLCommand::DrawingBufferHeight(sender))) .unwrap(); receiver.recv().unwrap() } @@ -204,7 +204,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { fn GetBufferParameter(&self, _cx: *mut JSContext, target: u32, parameter: u32) -> JSVal { let (sender, receiver) = ipc::channel().unwrap(); self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::GetBufferParameter(target, parameter, sender))) + .send(CanvasMsg::WebGL(WebGLCommand::GetBufferParameter(target, parameter, sender))) .unwrap(); match handle_potential_webgl_error!(self, receiver.recv().unwrap(), WebGLParameter::Invalid) { WebGLParameter::Int(val) => Int32Value(val), @@ -220,7 +220,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { fn GetParameter(&self, cx: *mut JSContext, parameter: u32) -> JSVal { let (sender, receiver) = ipc::channel().unwrap(); self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::GetParameter(parameter, sender))) + .send(CanvasMsg::WebGL(WebGLCommand::GetParameter(parameter, sender))) .unwrap(); match handle_potential_webgl_error!(self, receiver.recv().unwrap(), WebGLParameter::Invalid) { WebGLParameter::Int(val) => Int32Value(val), @@ -260,7 +260,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // If the send does not succeed, assume context lost if let Err(_) = self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::GetContextAttributes(sender))) { + .send(CanvasMsg::WebGL(WebGLCommand::GetContextAttributes(sender))) { return None; } let attrs = receiver.recv().unwrap(); @@ -289,37 +289,37 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn ActiveTexture(&self, texture: u32) { - self.ipc_renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::ActiveTexture(texture))).unwrap(); + self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::ActiveTexture(texture))).unwrap(); } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn BlendColor(&self, r: f32, g: f32, b: f32, a: f32) { - self.ipc_renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::BlendColor(r, g, b, a))).unwrap(); + self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::BlendColor(r, g, b, a))).unwrap(); } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn BlendEquation(&self, mode: u32) { - self.ipc_renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::BlendEquation(mode))).unwrap(); + self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::BlendEquation(mode))).unwrap(); } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn BlendEquationSeparate(&self, mode_rgb: u32, mode_alpha: u32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::BlendEquationSeparate(mode_rgb, mode_alpha))) + .send(CanvasMsg::WebGL(WebGLCommand::BlendEquationSeparate(mode_rgb, mode_alpha))) .unwrap(); } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn BlendFunc(&self, src_factor: u32, dest_factor: u32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::BlendFunc(src_factor, dest_factor))) + .send(CanvasMsg::WebGL(WebGLCommand::BlendFunc(src_factor, dest_factor))) .unwrap(); } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn BlendFuncSeparate(&self, src_rgb: u32, dest_rgb: u32, src_alpha: u32, dest_alpha: u32) { self.ipc_renderer.send( - CanvasMsg::WebGL(CanvasWebGLMsg::BlendFuncSeparate(src_rgb, dest_rgb, src_alpha, dest_alpha))).unwrap(); + CanvasMsg::WebGL(WebGLCommand::BlendFuncSeparate(src_rgb, dest_rgb, src_alpha, dest_alpha))).unwrap(); } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9 @@ -356,7 +356,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { } else { // Unbind the current buffer self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::BindBuffer(target, 0))) + .send(CanvasMsg::WebGL(WebGLCommand::BindBuffer(target, 0))) .unwrap() } } @@ -371,7 +371,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { framebuffer.bind(target) } else { // Bind the default framebuffer - let cmd = CanvasWebGLMsg::BindFramebuffer(target, WebGLFramebufferBindingRequest::Default); + let cmd = WebGLCommand::BindFramebuffer(target, WebGLFramebufferBindingRequest::Default); self.ipc_renderer.send(CanvasMsg::WebGL(cmd)).unwrap(); } } @@ -387,7 +387,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { } else { // Unbind the currently bound renderbuffer self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::BindRenderbuffer(target, 0))) + .send(CanvasMsg::WebGL(WebGLCommand::BindRenderbuffer(target, 0))) .unwrap() } } @@ -409,7 +409,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { } else { // Unbind the currently bound texture self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::BindTexture(target, 0))) + .send(CanvasMsg::WebGL(WebGLCommand::BindTexture(target, 0))) .unwrap() } } @@ -470,7 +470,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { return self.webgl_error(InvalidValue); } self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::BufferSubData(target, offset as isize, data_vec))) + .send(CanvasMsg::WebGL(WebGLCommand::BufferSubData(target, offset as isize, data_vec))) .unwrap() } else { self.webgl_error(InvalidValue); @@ -496,35 +496,35 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.11 fn Clear(&self, mask: u32) { - self.ipc_renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::Clear(mask))).unwrap(); + self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::Clear(mask))).unwrap(); self.mark_as_dirty(); } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn ClearColor(&self, red: f32, green: f32, blue: f32, alpha: f32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::ClearColor(red, green, blue, alpha))) + .send(CanvasMsg::WebGL(WebGLCommand::ClearColor(red, green, blue, alpha))) .unwrap() } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn ClearDepth(&self, depth: f32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::ClearDepth(depth as f64))) + .send(CanvasMsg::WebGL(WebGLCommand::ClearDepth(depth as f64))) .unwrap() } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn ClearStencil(&self, stencil: i32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::ClearStencil(stencil))) + .send(CanvasMsg::WebGL(WebGLCommand::ClearStencil(stencil))) .unwrap() } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn ColorMask(&self, r: bool, g: bool, b: bool, a: bool) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::ColorMask(r, g, b, a))) + .send(CanvasMsg::WebGL(WebGLCommand::ColorMask(r, g, b, a))) .unwrap() } @@ -533,7 +533,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { match mode { constants::FRONT | constants::BACK | constants::FRONT_AND_BACK => self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::CullFace(mode))) + .send(CanvasMsg::WebGL(WebGLCommand::CullFace(mode))) .unwrap(), _ => self.webgl_error(InvalidEnum), } @@ -544,7 +544,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { match mode { constants::CW | constants::CCW => self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::FrontFace(mode))) + .send(CanvasMsg::WebGL(WebGLCommand::FrontFace(mode))) .unwrap(), _ => self.webgl_error(InvalidEnum), } @@ -557,7 +557,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { constants::GREATER | constants::NOTEQUAL | constants::GEQUAL | constants::ALWAYS => self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::DepthFunc(func))) + .send(CanvasMsg::WebGL(WebGLCommand::DepthFunc(func))) .unwrap(), _ => self.webgl_error(InvalidEnum), } @@ -566,14 +566,14 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn DepthMask(&self, flag: bool) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::DepthMask(flag))) + .send(CanvasMsg::WebGL(WebGLCommand::DepthMask(flag))) .unwrap() } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn DepthRange(&self, near: f32, far: f32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::DepthRange(near as f64, far as f64))) + .send(CanvasMsg::WebGL(WebGLCommand::DepthRange(near as f64, far as f64))) .unwrap() } @@ -584,7 +584,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { constants::POLYGON_OFFSET_FILL | constants::SAMPLE_ALPHA_TO_COVERAGE | constants::SAMPLE_COVERAGE | constants::SAMPLE_COVERAGE_INVERT | constants::SCISSOR_TEST => self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::Enable(cap))) + .send(CanvasMsg::WebGL(WebGLCommand::Enable(cap))) .unwrap(), _ => self.webgl_error(InvalidEnum), } @@ -597,7 +597,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { constants::POLYGON_OFFSET_FILL | constants::SAMPLE_ALPHA_TO_COVERAGE | constants::SAMPLE_COVERAGE | constants::SAMPLE_COVERAGE_INVERT | constants::SCISSOR_TEST => self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::Disable(cap))) + .send(CanvasMsg::WebGL(WebGLCommand::Disable(cap))) .unwrap(), _ => self.webgl_error(InvalidEnum), } @@ -699,7 +699,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { self.webgl_error(InvalidValue); } else { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::DrawArrays(mode, first, count))) + .send(CanvasMsg::WebGL(WebGLCommand::DrawArrays(mode, first, count))) .unwrap(); self.mark_as_dirty(); } @@ -739,7 +739,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { constants::TRIANGLE_STRIP | constants::TRIANGLE_FAN | constants::TRIANGLES => { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::DrawElements(mode, count, type_, offset))) + .send(CanvasMsg::WebGL(WebGLCommand::DrawElements(mode, count, type_, offset))) .unwrap(); self.mark_as_dirty(); }, @@ -750,7 +750,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10 fn EnableVertexAttribArray(&self, attrib_id: u32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::EnableVertexAttribArray(attrib_id))) + .send(CanvasMsg::WebGL(WebGLCommand::EnableVertexAttribArray(attrib_id))) .unwrap() } @@ -825,7 +825,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { } self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::Hint(target, mode))) + .send(CanvasMsg::WebGL(WebGLCommand::Hint(target, mode))) .unwrap() } @@ -836,7 +836,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { } self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::LineWidth(width))) + .send(CanvasMsg::WebGL(WebGLCommand::LineWidth(width))) .unwrap() } @@ -889,21 +889,21 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { } self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::PixelStorei(param_name, param_value))) + .send(CanvasMsg::WebGL(WebGLCommand::PixelStorei(param_name, param_value))) .unwrap() } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn PolygonOffset(&self, factor: f32, units: f32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::PolygonOffset(factor, units))) + .send(CanvasMsg::WebGL(WebGLCommand::PolygonOffset(factor, units))) .unwrap() } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.4 fn Scissor(&self, x: i32, y: i32, width: i32, height: i32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::Scissor(x, y, width, height))) + .send(CanvasMsg::WebGL(WebGLCommand::Scissor(x, y, width, height))) .unwrap() } @@ -945,7 +945,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { }; self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::Uniform1f(uniform.id(), val))) + .send(CanvasMsg::WebGL(WebGLCommand::Uniform1f(uniform.id(), val))) .unwrap() } @@ -975,7 +975,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { }; self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::Uniform4f(uniform.id(), x, y, z, w))) + .send(CanvasMsg::WebGL(WebGLCommand::Uniform4f(uniform.id(), x, y, z, w))) .unwrap() } @@ -1086,7 +1086,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { normalized: bool, stride: i32, offset: i64) { if let constants::FLOAT = data_type { let msg = CanvasMsg::WebGL( - CanvasWebGLMsg::VertexAttribPointer2f(attrib_id, size, normalized, stride, offset as u32)); + WebGLCommand::VertexAttribPointer2f(attrib_id, size, normalized, stride, offset as u32)); self.ipc_renderer.send(msg).unwrap() } else { panic!("VertexAttribPointer: Data Type not supported") @@ -1096,7 +1096,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.4 fn Viewport(&self, x: i32, y: i32, width: i32, height: i32) { self.ipc_renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::Viewport(x, y, width, height))) + .send(CanvasMsg::WebGL(WebGLCommand::Viewport(x, y, width, height))) .unwrap() } @@ -1170,7 +1170,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { }; // TODO(emilio): Invert axis, convert colorspace, premultiply alpha if requested - let msg = CanvasWebGLMsg::TexImage2D(target, level, internal_format as i32, + let msg = WebGLCommand::TexImage2D(target, level, internal_format as i32, size.width, size.height, format, data_type, pixels); diff --git a/components/script/dom/webglshader.rs b/components/script/dom/webglshader.rs index 9c4548f1675..03c39b698b0 100644 --- a/components/script/dom/webglshader.rs +++ b/components/script/dom/webglshader.rs @@ -4,7 +4,7 @@ // https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl use angle::hl::{BuiltInResources, Output, ShaderValidator}; -use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLResult, WebGLParameter}; +use canvas_traits::CanvasMsg; use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::WebGLShaderBinding; use dom::bindings::global::GlobalRef; @@ -15,6 +15,7 @@ use ipc_channel::ipc::{self, IpcSender}; use std::cell::Cell; use std::sync::{ONCE_INIT, Once}; use util::str::DOMString; +use webrender_traits::{WebGLCommand, WebGLParameter, WebGLResult}; #[derive(Clone, Copy, PartialEq, Debug, JSTraceable, HeapSizeOf)] pub enum ShaderCompilationStatus { @@ -63,7 +64,7 @@ impl WebGLShader { renderer: IpcSender<CanvasMsg>, shader_type: u32) -> Option<Root<WebGLShader>> { let (sender, receiver) = ipc::channel().unwrap(); - renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::CreateShader(shader_type, sender))).unwrap(); + renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateShader(shader_type, sender))).unwrap(); let result = receiver.recv().unwrap(); result.map(|shader_id| WebGLShader::new(global, renderer, *shader_id, shader_type)) @@ -103,7 +104,7 @@ impl WebGLShader { // NOTE: At this point we should be pretty sure that the compilation in the paint thread // will succeed. // It could be interesting to retrieve the info log from the paint thread though - let msg = CanvasWebGLMsg::CompileShader(self.id, translated_source); + let msg = WebGLCommand::CompileShader(self.id, translated_source); self.renderer.send(CanvasMsg::WebGL(msg)).unwrap(); self.compilation_status.set(ShaderCompilationStatus::Succeeded); }, @@ -122,7 +123,7 @@ impl WebGLShader { pub fn delete(&self) { if !self.is_deleted.get() { self.is_deleted.set(true); - let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteShader(self.id))); + let _ = self.renderer.send(CanvasMsg::WebGL(WebGLCommand::DeleteShader(self.id))); } } @@ -134,7 +135,7 @@ impl WebGLShader { /// glGetParameter pub fn parameter(&self, param_id: u32) -> WebGLResult<WebGLParameter> { let (sender, receiver) = ipc::channel().unwrap(); - self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::GetShaderParameter(self.id, param_id, sender))).unwrap(); + self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GetShaderParameter(self.id, param_id, sender))).unwrap(); receiver.recv().unwrap() } diff --git a/components/script/dom/webgltexture.rs b/components/script/dom/webgltexture.rs index e7f645ce235..e40938d84f1 100644 --- a/components/script/dom/webgltexture.rs +++ b/components/script/dom/webgltexture.rs @@ -3,7 +3,7 @@ * 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, CanvasWebGLMsg, WebGLError, WebGLResult}; +use canvas_traits::CanvasMsg; use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants; use dom::bindings::codegen::Bindings::WebGLTextureBinding; use dom::bindings::global::GlobalRef; @@ -12,6 +12,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::webglobject::WebGLObject; use ipc_channel::ipc::{self, IpcSender}; use std::cell::Cell; +use webrender_traits::{WebGLCommand, WebGLError, WebGLResult}; pub enum TexParameterValue { Float(f32), @@ -43,7 +44,7 @@ impl WebGLTexture { pub fn maybe_new(global: GlobalRef, renderer: IpcSender<CanvasMsg>) -> Option<Root<WebGLTexture>> { let (sender, receiver) = ipc::channel().unwrap(); - renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::CreateTexture(sender))).unwrap(); + renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateTexture(sender))).unwrap(); let result = receiver.recv().unwrap(); result.map(|texture_id| WebGLTexture::new(global, renderer, *texture_id)) @@ -70,7 +71,7 @@ impl WebGLTexture { self.target.set(Some(target)); } - self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::BindTexture(target, self.id))).unwrap(); + self.renderer.send(CanvasMsg::WebGL(WebGLCommand::BindTexture(target, self.id))).unwrap(); Ok(()) } @@ -78,7 +79,7 @@ impl WebGLTexture { pub fn delete(&self) { if !self.is_deleted.get() { self.is_deleted.set(true); - let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteTexture(self.id))); + let _ = self.renderer.send(CanvasMsg::WebGL(WebGLCommand::DeleteTexture(self.id))); } } @@ -104,7 +105,7 @@ impl WebGLTexture { constants::NEAREST_MIPMAP_LINEAR | constants::LINEAR_MIPMAP_LINEAR => { self.renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::TexParameteri(target, name, int_value))) + .send(CanvasMsg::WebGL(WebGLCommand::TexParameteri(target, name, int_value))) .unwrap(); Ok(()) }, @@ -117,7 +118,7 @@ impl WebGLTexture { constants::NEAREST | constants::LINEAR => { self.renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::TexParameteri(target, name, int_value))) + .send(CanvasMsg::WebGL(WebGLCommand::TexParameteri(target, name, int_value))) .unwrap(); Ok(()) }, @@ -132,7 +133,7 @@ impl WebGLTexture { constants::MIRRORED_REPEAT | constants::REPEAT => { self.renderer - .send(CanvasMsg::WebGL(CanvasWebGLMsg::TexParameteri(target, name, int_value))) + .send(CanvasMsg::WebGL(WebGLCommand::TexParameteri(target, name, int_value))) .unwrap(); Ok(()) }, diff --git a/components/script/lib.rs b/components/script/lib.rs index feb7a5fee26..fa6dc8a385e 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -76,6 +76,7 @@ extern crate url; #[macro_use] extern crate util; extern crate uuid; +extern crate webrender_traits; extern crate websocket; extern crate xml5ever; |