mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Auto merge of #10432 - autrilla:uniform, r=emilio
Added Uniform{1iv, 2f, 2fv} The remaining ones need changes to webrender_traits, so I'll have to open a PR there too. r? @emilio <!-- 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/10432) <!-- Reviewable:end -->
This commit is contained in:
commit
a5bc74be2f
2 changed files with 44 additions and 0 deletions
|
@ -1008,6 +1008,27 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
.unwrap()
|
||||
}
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
|
||||
fn Uniform1iv(&self,
|
||||
_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);
|
||||
}
|
||||
}
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
|
||||
fn Uniform1fv(&self,
|
||||
uniform: Option<&WebGLUniformLocation>,
|
||||
|
@ -1038,6 +1059,27 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
.unwrap()
|
||||
}
|
||||
|
||||
// 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 = 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() < 2 {
|
||||
return self.webgl_error(InvalidOperation);
|
||||
}
|
||||
|
||||
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 Uniform4i(&self,
|
||||
uniform: Option<&WebGLUniformLocation>,
|
||||
|
|
|
@ -650,9 +650,11 @@ interface WebGLRenderingContextBase
|
|||
void uniform1i(WebGLUniformLocation? location, GLint x);
|
||||
//void uniform1iv(WebGLUniformLocation? location, Int32Array v);
|
||||
//void uniform1iv(WebGLUniformLocation? location, sequence<long> v);
|
||||
void uniform1iv(WebGLUniformLocation? location, optional object v);
|
||||
void uniform2f(WebGLUniformLocation? location, GLfloat x, GLfloat y);
|
||||
//void uniform2fv(WebGLUniformLocation? location, Float32Array v);
|
||||
//void uniform2fv(WebGLUniformLocation? location, sequence<GLfloat> v);
|
||||
void uniform2fv(WebGLUniformLocation? location, optional object v);
|
||||
//void uniform2i(WebGLUniformLocation? location, GLint x, GLint y);
|
||||
//void uniform2iv(WebGLUniformLocation? location, Int32Array v);
|
||||
//void uniform2iv(WebGLUniformLocation? location, sequence<long> v);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue