mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Auto merge of #25538 - szeged:mmatyas__webgl_fns_uniforms_p2, r=jdm
Add support for WebGL2 uniform array operations Adds support for the WebGL2 overloads of `uniform[1234][if]v`. <!-- Please describe your changes on the following line: --> WebGL2 adds two optional parameters for the `uniform[1234][if]v` functions to allow specifying input data ranges. However, because they have the same name and overlapping parameters, the Codegen cannot make a difference between their GL1 and 2 variants. As a workaround, I've added the new parameters to the WebGL1 side, which which isn't strictly what the spec says, but shouldn't break things either. (Note: Firefox devs also run into this issue: [[1](https://searchfox.org/mozilla-central/source/dom/webidl/WebGLRenderingContext.webidl#794), [2](https://bugzilla.mozilla.org/show_bug.cgi?id=1324543)]). cc @jdm @zakorgy @imiklos --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] There are tests for these changes <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
This commit is contained in:
commit
d3b37ead0a
5 changed files with 187 additions and 423 deletions
|
@ -430,24 +430,6 @@ interface mixin WebGL2RenderingContextBase
|
|||
void uniform3ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2);
|
||||
void uniform4ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
|
||||
|
||||
// void uniform1fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
|
||||
// optional GLuint srcLength = 0);
|
||||
// void uniform2fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
|
||||
// optional GLuint srcLength = 0);
|
||||
// void uniform3fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
|
||||
// optional GLuint srcLength = 0);
|
||||
// void uniform4fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
|
||||
// optional GLuint srcLength = 0);
|
||||
|
||||
// void uniform1iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
|
||||
// optional GLuint srcLength = 0);
|
||||
// void uniform2iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
|
||||
// optional GLuint srcLength = 0);
|
||||
// void uniform3iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
|
||||
// optional GLuint srcLength = 0);
|
||||
// void uniform4iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
|
||||
// optional GLuint srcLength = 0);
|
||||
|
||||
void uniform1uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0,
|
||||
optional GLuint srcLength = 0);
|
||||
void uniform2uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0,
|
||||
|
|
|
@ -650,15 +650,23 @@ interface mixin WebGLRenderingContextBase
|
|||
void uniform3i(WebGLUniformLocation? location, GLint x, GLint y, GLint z);
|
||||
void uniform4i(WebGLUniformLocation? location, GLint x, GLint y, GLint z, GLint w);
|
||||
|
||||
void uniform1fv(WebGLUniformLocation? location, Float32List v);
|
||||
void uniform2fv(WebGLUniformLocation? location, Float32List v);
|
||||
void uniform3fv(WebGLUniformLocation? location, Float32List v);
|
||||
void uniform4fv(WebGLUniformLocation? location, Float32List v);
|
||||
void uniform1fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
|
||||
optional GLuint srcLength = 0);
|
||||
void uniform2fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
|
||||
optional GLuint srcLength = 0);
|
||||
void uniform3fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
|
||||
optional GLuint srcLength = 0);
|
||||
void uniform4fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
|
||||
optional GLuint srcLength = 0);
|
||||
|
||||
void uniform1iv(WebGLUniformLocation? location, Int32List v);
|
||||
void uniform2iv(WebGLUniformLocation? location, Int32List v);
|
||||
void uniform3iv(WebGLUniformLocation? location, Int32List v);
|
||||
void uniform4iv(WebGLUniformLocation? location, Int32List v);
|
||||
void uniform1iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
|
||||
optional GLuint srcLength = 0);
|
||||
void uniform2iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
|
||||
optional GLuint srcLength = 0);
|
||||
void uniform3iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
|
||||
optional GLuint srcLength = 0);
|
||||
void uniform4iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
|
||||
optional GLuint srcLength = 0);
|
||||
|
||||
void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List value);
|
||||
void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List value);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue