зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #10291 - #10211: Stop re-exporting webrender_traits WebGL types from canvas_traits (from jfhumann:10211); r=emilio
Source-Repo: https://github.com/servo/servo Source-Revision: 524a004e771b465e3de9ebbc33816e50949d6a25
This commit is contained in:
Родитель
7bc8e96798
Коммит
b60a127aa6
|
@ -2,7 +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::{CanvasCommonMsg, CanvasMsg, CanvasPixelData, CanvasData, CanvasWebGLMsg, FromLayoutMsg};
|
||||
use canvas_traits::{CanvasCommonMsg, CanvasMsg, CanvasPixelData, CanvasData, FromLayoutMsg};
|
||||
use euclid::size::Size2D;
|
||||
use gleam::gl;
|
||||
use ipc_channel::ipc::{self, IpcSender, IpcSharedMemory};
|
||||
|
@ -42,7 +42,7 @@ impl WebGLPaintThread {
|
|||
})
|
||||
}
|
||||
|
||||
pub fn handle_webgl_message(&self, message: CanvasWebGLMsg) {
|
||||
pub fn handle_webgl_message(&self, message: webrender_traits::WebGLCommand) {
|
||||
debug!("WebGL message: {:?}", message);
|
||||
match self.data {
|
||||
WebGLPaintTaskData::WebRender(ref api, id) => {
|
||||
|
|
|
@ -36,9 +36,7 @@ use gfx_traits::color;
|
|||
use ipc_channel::ipc::{IpcSender, IpcSharedMemory};
|
||||
use std::default::Default;
|
||||
use std::str::FromStr;
|
||||
|
||||
pub use webrender_traits::{WebGLFramebufferBindingRequest, WebGLError, WebGLParameter, WebGLResult, WebGLContextId};
|
||||
pub use webrender_traits::WebGLCommand as CanvasWebGLMsg;
|
||||
use webrender_traits::{WebGLCommand, WebGLContextId};
|
||||
|
||||
#[derive(Clone, Deserialize, Serialize)]
|
||||
pub enum FillRule {
|
||||
|
@ -51,7 +49,7 @@ pub enum CanvasMsg {
|
|||
Canvas2d(Canvas2dMsg),
|
||||
Common(CanvasCommonMsg),
|
||||
FromLayout(FromLayoutMsg),
|
||||
WebGL(CanvasWebGLMsg),
|
||||
WebGL(WebGLCommand),
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Serialize)]
|
||||
|
|
|
@ -60,6 +60,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"
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
|
||||
|
|
|
@ -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(())
|
||||
},
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -1746,6 +1746,7 @@ dependencies = [
|
|||
"url 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"util 0.0.1",
|
||||
"uuid 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)",
|
||||
"websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"xml5ever 0.1.1 (git+https://github.com/Ygg01/xml5ever)",
|
||||
]
|
||||
|
|
|
@ -1613,6 +1613,7 @@ dependencies = [
|
|||
"url 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"util 0.0.1",
|
||||
"uuid 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)",
|
||||
"websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"xml5ever 0.1.1 (git+https://github.com/Ygg01/xml5ever)",
|
||||
]
|
||||
|
|
|
@ -1595,6 +1595,7 @@ dependencies = [
|
|||
"url 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"util 0.0.1",
|
||||
"uuid 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)",
|
||||
"websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"xml5ever 0.1.1 (git+https://github.com/Ygg01/xml5ever)",
|
||||
]
|
||||
|
|
Загрузка…
Ссылка в новой задаче