Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace `object` function arguments in WebGL with typed arrays #20396

Merged
merged 9 commits into from Mar 23, 2018

Fix sanity check in vertex attrib

  • Loading branch information
Xanewok committed Mar 23, 2018
commit cb85a95478082b81be86b66244061ff1b9fc2815
@@ -3094,15 +3094,15 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn VertexAttrib1fv(&self, indx: u32, mut v: CustomAutoRooterGuard<Float32Array>) {
let data_vec = unsafe { v.as_slice().to_vec() };

if data_vec.len() < 1 {
return self.webgl_error(InvalidOperation);
}

self.VertexAttrib1fv_(indx, data_vec);
}

// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn VertexAttrib1fv_(&self, indx: u32, values: Vec<f32>) {
if values.len() < 1 {
return self.webgl_error(InvalidOperation);
}

self.vertex_attrib(indx, values[0], 0f32, 0f32, 1f32);
}

@@ -3116,15 +3116,15 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn VertexAttrib2fv(&self, indx: u32, mut v: CustomAutoRooterGuard<Float32Array>) {
let data_vec = unsafe { v.as_slice().to_vec() };

if data_vec.len() < 2 {
return self.webgl_error(InvalidOperation);
}

self.VertexAttrib2fv_(indx, data_vec);
}

// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn VertexAttrib2fv_(&self, indx: u32, values: Vec<f32>) {
if values.len() < 2 {
return self.webgl_error(InvalidOperation);
}

self.vertex_attrib(indx, values[0], values[1], 0f32, 1f32);
}

@@ -3138,15 +3138,15 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn VertexAttrib3fv(&self, indx: u32, mut v: CustomAutoRooterGuard<Float32Array>) {
let data_vec = unsafe { v.as_slice().to_vec() };

if data_vec.len() < 3 {
return self.webgl_error(InvalidOperation);
}

self.VertexAttrib3fv_(indx, data_vec);
}

// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn VertexAttrib3fv_(&self, indx: u32, values: Vec<f32>) {
if values.len() < 3 {
return self.webgl_error(InvalidOperation);
}

self.vertex_attrib(indx, values[0], values[1], values[2], 1f32);
}

@@ -3160,15 +3160,15 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn VertexAttrib4fv(&self, indx: u32, mut v: CustomAutoRooterGuard<Float32Array>) {
let data_vec = unsafe { v.as_slice().to_vec() };

if data_vec.len() < 4 {
return self.webgl_error(InvalidOperation);
}

self.VertexAttrib4fv_(indx, data_vec);
}

// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn VertexAttrib4fv_(&self, indx: u32, values: Vec<f32>) {
if values.len() < 4 {
return self.webgl_error(InvalidOperation);
}

self.vertex_attrib(indx, values[0], values[1], values[2], values[3]);
}

ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.