aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-04-14 17:41:12 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2016-04-14 17:41:12 +0530
commit7845d670d0c0af7c4782c547e62c4b737e345fad (patch)
tree7f20da7f0d087003e6a83aa54210de32beb11246
parent11f4d3f35609552feded6de56cc95aaf73ccc699 (diff)
parent89c432b2d2622c316b193bc3bda14cd2a7fdd1c9 (diff)
downloadservo-7845d670d0c0af7c4782c547e62c4b737e345fad.tar.gz
servo-7845d670d0c0af7c4782c547e62c4b737e345fad.zip
Auto merge of #10436 - autrilla:uniform2, r=emilio
Added Uniform{2i, 2iv, 2fv, 3f, 3i, 3iv, 3fv} @emilio r? <!-- 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/10436) <!-- Reviewable:end -->
-rw-r--r--components/script/dom/webglrenderingcontext.rs333
-rw-r--r--components/script/dom/webidls/WebGLRenderingContext.webidl11
-rw-r--r--components/servo/Cargo.lock26
-rw-r--r--ports/cef/Cargo.lock28
-rw-r--r--ports/gonk/Cargo.lock26
5 files changed, 262 insertions, 162 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index 4c6996cbb90..197dcce55f5 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -3,6 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use canvas_traits::{CanvasCommonMsg, CanvasMsg};
+use dom::bindings::codegen::Bindings::WebGLActiveInfoBinding::WebGLActiveInfoMethods;
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::{WebGLRenderingContextMethods};
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::{self, WebGLContextAttributes};
@@ -66,6 +67,45 @@ bitflags! {
}
}
+pub enum UniformType {
+ Int,
+ IntVec2,
+ IntVec3,
+ IntVec4,
+ Float,
+ FloatVec2,
+ FloatVec3,
+ FloatVec4,
+}
+
+impl UniformType {
+ fn element_count(&self) -> usize {
+ match *self {
+ UniformType::Int => 1,
+ UniformType::IntVec2 => 2,
+ UniformType::IntVec3 => 3,
+ UniformType::IntVec4 => 4,
+ UniformType::Float => 1,
+ UniformType::FloatVec2 => 2,
+ UniformType::FloatVec3 => 3,
+ UniformType::FloatVec4 => 4,
+ }
+ }
+
+ fn as_gl_constant(&self) -> u32 {
+ match *self {
+ UniformType::Int => constants::INT,
+ UniformType::IntVec2 => constants::INT_VEC2,
+ UniformType::IntVec3 => constants::INT_VEC3,
+ UniformType::IntVec4 => constants::INT_VEC4,
+ UniformType::Float => constants::FLOAT,
+ UniformType::FloatVec2 => constants::FLOAT_VEC2,
+ UniformType::FloatVec3 => constants::FLOAT_VEC3,
+ UniformType::FloatVec4 => constants::FLOAT_VEC4,
+ }
+ }
+}
+
#[dom_struct]
pub struct WebGLRenderingContext {
reflector_: Reflector,
@@ -178,6 +218,59 @@ impl WebGLRenderingContext {
.send(CanvasMsg::WebGL(WebGLCommand::VertexAttrib(indx, x, y, z, w)))
.unwrap();
}
+
+ // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
+ // https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml
+ // https://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.25.pdf#nameddest=section-2.10.4
+ fn validate_uniform_parameters<T>(&self,
+ uniform: Option<&WebGLUniformLocation>,
+ type_: UniformType,
+ data: Option<&[T]>) -> bool {
+ let uniform = match uniform {
+ Some(uniform) => uniform,
+ None => return false,
+ };
+
+ let program = self.current_program.get();
+ let program = match program {
+ Some(ref program) if program.id() == uniform.program_id() => program,
+ _ => {
+ self.webgl_error(InvalidOperation);
+ return false;
+ },
+ };
+
+ let data = match data {
+ Some(data) => data,
+ None => {
+ self.webgl_error(InvalidOperation);
+ return false;
+ },
+ };
+
+ // TODO(autrilla): Don't request this every time, cache it
+ let active_uniform = match program.get_active_uniform(
+ uniform.id() as u32) {
+ Ok(active_uniform) => active_uniform,
+ Err(_) => {
+ self.webgl_error(InvalidOperation);
+ return false;
+ },
+ };
+
+ if data.len() % type_.element_count() != 0 ||
+ (data.len() / type_.element_count() > active_uniform.Size() as usize) {
+ self.webgl_error(InvalidOperation);
+ return false;
+ }
+
+ if type_.as_gl_constant() != active_uniform.Type() {
+ self.webgl_error(InvalidOperation);
+ return false;
+ }
+
+ return true;
+ }
}
impl Drop for WebGLRenderingContext {
@@ -1018,38 +1111,22 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn Uniform1f(&self,
uniform: Option<&WebGLUniformLocation>,
val: f32) {
- let uniform = match uniform {
- Some(uniform) => uniform,
- None => return,
- };
-
- match self.current_program.get() {
- Some(ref program) if program.id() == uniform.program_id() => {},
- _ => return self.webgl_error(InvalidOperation),
- };
-
- self.ipc_renderer
- .send(CanvasMsg::WebGL(WebGLCommand::Uniform1f(uniform.id(), val)))
- .unwrap()
+ if self.validate_uniform_parameters(uniform, UniformType::Float, Some(&[val])) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform1f(uniform.unwrap().id(), val)))
+ .unwrap()
+ }
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn Uniform1i(&self,
uniform: Option<&WebGLUniformLocation>,
val: i32) {
- let uniform = match uniform {
- Some(uniform) => uniform,
- None => return,
- };
-
- match self.current_program.get() {
- Some(ref program) if program.id() == uniform.program_id() => {},
- _ => return self.webgl_error(InvalidOperation),
- };
-
- self.ipc_renderer
- .send(CanvasMsg::WebGL(WebGLCommand::Uniform1i(uniform.id(), val)))
- .unwrap()
+ if self.validate_uniform_parameters(uniform, UniformType::Int, Some(&[val])) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform1i(uniform.unwrap().id(), val)))
+ .unwrap()
+ }
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
@@ -1057,90 +1134,132 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
_cx: *mut JSContext,
uniform: Option<&WebGLUniformLocation>,
data: Option<*mut JSObject>) {
- let data = match data {
- Some(data) => data,
- None => return self.webgl_error(InvalidValue),
- };
-
- if let Some(data) = array_buffer_view_to_vec_checked::<i32>(data) {
- if data.len() < 1 {
- return self.webgl_error(InvalidOperation);
- }
-
- self.Uniform1i(uniform, data[0]);
- } else {
- self.webgl_error(InvalidValue);
+ let data_vec = data.and_then(|d| array_buffer_view_to_vec::<i32>(d));
+ if self.validate_uniform_parameters(uniform, UniformType::Int, data_vec.as_ref().map(Vec::as_slice)) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform1iv(uniform.unwrap().id(), data_vec.unwrap())))
+ .unwrap()
}
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn Uniform1fv(&self,
+ _cx: *mut JSContext,
uniform: Option<&WebGLUniformLocation>,
- data: Vec<f32>) {
- if data.is_empty() {
- return self.webgl_error(InvalidValue);
+ data: Option<*mut JSObject>) {
+ let data_vec = data.and_then(|d| array_buffer_view_to_vec::<f32>(d));
+ if self.validate_uniform_parameters(uniform, UniformType::Float, data_vec.as_ref().map(Vec::as_slice)) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform1fv(uniform.unwrap().id(), data_vec.unwrap())))
+ .unwrap()
}
-
- self.Uniform1f(uniform, data[0]);
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn Uniform2f(&self,
uniform: Option<&WebGLUniformLocation>,
x: f32, y: f32) {
- let uniform = match uniform {
- Some(uniform) => uniform,
- None => return,
- };
+ if self.validate_uniform_parameters(uniform, UniformType::FloatVec2, Some(&[x, y])) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform2f(uniform.unwrap().id(), x, y)))
+ .unwrap()
+ }
+ }
- match self.current_program.get() {
- Some(ref program) if program.id() == uniform.program_id() => {},
- _ => return self.webgl_error(InvalidOperation),
- };
+ // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
+ fn Uniform2fv(&self,
+ _cx: *mut JSContext,
+ uniform: Option<&WebGLUniformLocation>,
+ data: Option<*mut JSObject>) {
+ let data_vec = data.and_then(|d| array_buffer_view_to_vec::<f32>(d));
+ if self.validate_uniform_parameters(uniform, UniformType::FloatVec2, data_vec.as_ref().map(Vec::as_slice)) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform2fv(uniform.unwrap().id(), data_vec.unwrap())))
+ .unwrap()
+ }
+ }
- self.ipc_renderer
- .send(CanvasMsg::WebGL(WebGLCommand::Uniform2f(uniform.id(), x, y)))
- .unwrap()
+ // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
+ fn Uniform2i(&self,
+ uniform: Option<&WebGLUniformLocation>,
+ x: i32, y: i32) {
+ if self.validate_uniform_parameters(uniform, UniformType::IntVec2, Some(&[x, y])) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform2i(uniform.unwrap().id(), x, y)))
+ .unwrap()
+ }
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
- fn Uniform2fv(&self,
+ fn Uniform2iv(&self,
_cx: *mut JSContext,
uniform: Option<&WebGLUniformLocation>,
data: Option<*mut JSObject>) {
- let data = match data {
- Some(data) => data,
- None => return self.webgl_error(InvalidValue),
- };
+ let data_vec = data.and_then(|d| array_buffer_view_to_vec::<i32>(d));
+ if self.validate_uniform_parameters(uniform, UniformType::IntVec2, data_vec.as_ref().map(Vec::as_slice)) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform2iv(uniform.unwrap().id(), data_vec.unwrap())))
+ .unwrap()
+ }
+ }
- if let Some(data) = array_buffer_view_to_vec_checked::<f32>(data) {
- if data.len() < 2 {
- return self.webgl_error(InvalidOperation);
- }
+ // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
+ fn Uniform3f(&self,
+ uniform: Option<&WebGLUniformLocation>,
+ x: f32, y: f32, z: f32) {
+ if self.validate_uniform_parameters(uniform, UniformType::FloatVec3, Some(&[x, y, z])) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform3f(uniform.unwrap().id(), x, y, z)))
+ .unwrap()
+ }
+ }
- self.Uniform2f(uniform, data[0], data[1]);
- } else {
- self.webgl_error(InvalidValue);
+ // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
+ fn Uniform3fv(&self,
+ _cx: *mut JSContext,
+ uniform: Option<&WebGLUniformLocation>,
+ data: Option<*mut JSObject>) {
+ let data_vec = data.and_then(|d| array_buffer_view_to_vec::<f32>(d));
+ if self.validate_uniform_parameters(uniform, UniformType::FloatVec3, data_vec.as_ref().map(Vec::as_slice)) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform3fv(uniform.unwrap().id(), data_vec.unwrap())))
+ .unwrap()
}
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
- fn Uniform4i(&self,
+ fn Uniform3i(&self,
uniform: Option<&WebGLUniformLocation>,
- x: i32, y: i32, z: i32, w: i32) {
- let uniform = match uniform {
- Some(uniform) => uniform,
- None => return,
- };
+ x: i32, y: i32, z: i32) {
+ if self.validate_uniform_parameters(uniform, UniformType::IntVec3, Some(&[x, y, z])) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform3i(uniform.unwrap().id(), x, y, z)))
+ .unwrap()
+ }
+ }
- match self.current_program.get() {
- Some(ref program) if program.id() == uniform.program_id() => {},
- _ => return self.webgl_error(InvalidOperation),
- };
+ // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
+ fn Uniform3iv(&self,
+ _cx: *mut JSContext,
+ uniform: Option<&WebGLUniformLocation>,
+ data: Option<*mut JSObject>) {
+ let data_vec = data.and_then(|d| array_buffer_view_to_vec::<i32>(d));
+ if self.validate_uniform_parameters(uniform, UniformType::IntVec3, data_vec.as_ref().map(Vec::as_slice)) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform3iv(uniform.unwrap().id(), data_vec.unwrap())))
+ .unwrap()
+ }
+ }
- self.ipc_renderer
- .send(CanvasMsg::WebGL(WebGLCommand::Uniform4i(uniform.id(), x, y, z, w)))
- .unwrap()
+ // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
+ fn Uniform4i(&self,
+ uniform: Option<&WebGLUniformLocation>,
+ x: i32, y: i32, z: i32, w: i32) {
+ if self.validate_uniform_parameters(uniform, UniformType::IntVec4, Some(&[x, y, z, w])) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform4i(uniform.unwrap().id(), x, y, z, w)))
+ .unwrap()
+ }
}
@@ -1149,19 +1268,11 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
_cx: *mut JSContext,
uniform: Option<&WebGLUniformLocation>,
data: Option<*mut JSObject>) {
- let data = match data {
- Some(data) => data,
- None => return self.webgl_error(InvalidValue),
- };
-
- if let Some(data) = array_buffer_view_to_vec_checked::<i32>(data) {
- if data.len() < 4 {
- return self.webgl_error(InvalidOperation);
- }
-
- self.Uniform4i(uniform, data[0], data[1], data[2], data[3]);
- } else {
- self.webgl_error(InvalidValue);
+ let data_vec = data.and_then(|d| array_buffer_view_to_vec::<i32>(d));
+ if self.validate_uniform_parameters(uniform, UniformType::IntVec4, data_vec.as_ref().map(Vec::as_slice)) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform4iv(uniform.unwrap().id(), data_vec.unwrap())))
+ .unwrap()
}
}
@@ -1169,19 +1280,11 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn Uniform4f(&self,
uniform: Option<&WebGLUniformLocation>,
x: f32, y: f32, z: f32, w: f32) {
- let uniform = match uniform {
- Some(uniform) => uniform,
- None => return,
- };
-
- match self.current_program.get() {
- Some(ref program) if program.id() == uniform.program_id() => {},
- _ => return self.webgl_error(InvalidOperation),
- };
-
- self.ipc_renderer
- .send(CanvasMsg::WebGL(WebGLCommand::Uniform4f(uniform.id(), x, y, z, w)))
- .unwrap()
+ if self.validate_uniform_parameters(uniform, UniformType::FloatVec4, Some(&[x, y, z, w])) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform4f(uniform.unwrap().id(), x, y, z, w)))
+ .unwrap()
+ }
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
@@ -1189,19 +1292,11 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
_cx: *mut JSContext,
uniform: Option<&WebGLUniformLocation>,
data: Option<*mut JSObject>) {
- let data = match data {
- Some(data) => data,
- None => return self.webgl_error(InvalidValue),
- };
-
- if let Some(data) = array_buffer_view_to_vec_checked::<f32>(data) {
- if data.len() < 4 {
- return self.webgl_error(InvalidOperation);
- }
-
- self.Uniform4f(uniform, data[0], data[1], data[2], data[3]);
- } else {
- self.webgl_error(InvalidValue);
+ let data_vec = data.and_then(|d| array_buffer_view_to_vec::<f32>(d));
+ if self.validate_uniform_parameters(uniform, UniformType::FloatVec4, data_vec.as_ref().map(Vec::as_slice)) {
+ self.ipc_renderer
+ .send(CanvasMsg::WebGL(WebGLCommand::Uniform4fv(uniform.unwrap().id(), data_vec.unwrap())))
+ .unwrap()
}
}
diff --git a/components/script/dom/webidls/WebGLRenderingContext.webidl b/components/script/dom/webidls/WebGLRenderingContext.webidl
index d2c93d9a3c5..6c36844f313 100644
--- a/components/script/dom/webidls/WebGLRenderingContext.webidl
+++ b/components/script/dom/webidls/WebGLRenderingContext.webidl
@@ -646,7 +646,8 @@ interface WebGLRenderingContextBase
void uniform1f(WebGLUniformLocation? location, GLfloat x);
//void uniform1fv(WebGLUniformLocation? location, Float32Array v);
- void uniform1fv(WebGLUniformLocation? location, sequence<GLfloat> v);
+ //void uniform1fv(WebGLUniformLocation? location, sequence<GLfloat> v);
+ void uniform1fv(WebGLUniformLocation? location, optional object v);
void uniform1i(WebGLUniformLocation? location, GLint x);
//void uniform1iv(WebGLUniformLocation? location, Int32Array v);
//void uniform1iv(WebGLUniformLocation? location, sequence<long> v);
@@ -656,14 +657,18 @@ interface WebGLRenderingContextBase
//void uniform2fv(WebGLUniformLocation? location, sequence<GLfloat> v);
void uniform2fv(WebGLUniformLocation? location, optional object v);
//void uniform2i(WebGLUniformLocation? location, GLint x, GLint y);
+ void uniform2i(WebGLUniformLocation? location, GLint x, GLint y);
//void uniform2iv(WebGLUniformLocation? location, Int32Array v);
//void uniform2iv(WebGLUniformLocation? location, sequence<long> v);
- //void uniform3f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z);
+ void uniform2iv(WebGLUniformLocation? location, optional object v);
+ void uniform3f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z);
+ void uniform3fv(WebGLUniformLocation? location, optional object v);
//void uniform3fv(WebGLUniformLocation? location, Float32Array v);
//void uniform3fv(WebGLUniformLocation? location, sequence<GLfloat> v);
- //void uniform3i(WebGLUniformLocation? location, GLint x, GLint y, GLint z);
+ void uniform3i(WebGLUniformLocation? location, GLint x, GLint y, GLint z);
//void uniform3iv(WebGLUniformLocation? location, Int32Array v);
//void uniform3iv(WebGLUniformLocation? location, sequence<long> v);
+ void uniform3iv(WebGLUniformLocation? location, optional object v);
void uniform4f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
// FIXME(dmarcos) The function below is the original function in the webIdl:
//void uniform4fv(WebGLUniformLocation? location, Float32Array v);
diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock
index 73bf74a008c..85f65250dbe 100644
--- a/components/servo/Cargo.lock
+++ b/components/servo/Cargo.lock
@@ -16,7 +16,7 @@ dependencies = [
"gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1",
"gfx_tests 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin_app 0.0.1",
"image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
@@ -166,7 +166,7 @@ dependencies = [
"canvas_traits 0.0.1",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -215,7 +215,7 @@ name = "cgl"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -296,7 +296,7 @@ dependencies = [
"gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1",
"gfx_traits 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
@@ -761,7 +761,7 @@ dependencies = [
[[package]]
name = "gleam"
-version = "0.2.13"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gl_generator 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -780,7 +780,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"compositing 0.0.1",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -950,7 +950,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1022,7 +1022,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1420,7 +1420,7 @@ dependencies = [
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1914,7 +1914,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2330,7 +2330,7 @@ dependencies = [
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2344,13 +2344,13 @@ dependencies = [
[[package]]
name = "webrender_traits"
version = "0.1.0"
-source = "git+https://github.com/servo/webrender_traits#96f95c059c68aed3576334fe9d532bc5779c4138"
+source = "git+https://github.com/servo/webrender_traits#227867554a07769ed10ce7cdb7b6dddda4a0a445"
dependencies = [
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"offscreen_gl_context 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock
index c15817549a0..2d36666b76b 100644
--- a/ports/cef/Cargo.lock
+++ b/ports/cef/Cargo.lock
@@ -12,7 +12,7 @@ dependencies = [
"devtools 0.0.1",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin_app 0.0.1",
"js 0.1.2 (git+https://github.com/servo/rust-mozjs)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
@@ -150,7 +150,7 @@ dependencies = [
"canvas_traits 0.0.1",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -199,7 +199,7 @@ name = "cgl"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -265,7 +265,7 @@ dependencies = [
"gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1",
"gfx_traits 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
@@ -680,7 +680,7 @@ dependencies = [
[[package]]
name = "gleam"
-version = "0.2.13"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gl_generator 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -699,7 +699,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"compositing 0.0.1",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -869,7 +869,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -941,7 +941,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1306,7 +1306,7 @@ dependencies = [
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1714,7 +1714,7 @@ dependencies = [
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin_app 0.0.1",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
@@ -1808,7 +1808,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2196,7 +2196,7 @@ dependencies = [
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2210,13 +2210,13 @@ dependencies = [
[[package]]
name = "webrender_traits"
version = "0.1.0"
-source = "git+https://github.com/servo/webrender_traits#96f95c059c68aed3576334fe9d532bc5779c4138"
+source = "git+https://github.com/servo/webrender_traits#227867554a07769ed10ce7cdb7b6dddda4a0a445"
dependencies = [
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"offscreen_gl_context 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/ports/gonk/Cargo.lock b/ports/gonk/Cargo.lock
index 5aaedff2fa4..94f16308b37 100644
--- a/ports/gonk/Cargo.lock
+++ b/ports/gonk/Cargo.lock
@@ -8,7 +8,7 @@ dependencies = [
"errno 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"layout 0.0.1",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -143,7 +143,7 @@ dependencies = [
"canvas_traits 0.0.1",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -192,7 +192,7 @@ name = "cgl"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -258,7 +258,7 @@ dependencies = [
"gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1",
"gfx_traits 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
@@ -683,7 +683,7 @@ dependencies = [
[[package]]
name = "gleam"
-version = "0.2.13"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gl_generator 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -851,7 +851,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -923,7 +923,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1288,7 +1288,7 @@ dependencies = [
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1696,7 +1696,7 @@ dependencies = [
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"layout 0.0.1",
@@ -1788,7 +1788,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2146,7 +2146,7 @@ dependencies = [
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2160,13 +2160,13 @@ dependencies = [
[[package]]
name = "webrender_traits"
version = "0.1.0"
-source = "git+https://github.com/servo/webrender_traits#96f95c059c68aed3576334fe9d532bc5779c4138"
+source = "git+https://github.com/servo/webrender_traits#227867554a07769ed10ce7cdb7b6dddda4a0a445"
dependencies = [
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"offscreen_gl_context 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",