Add support for WebGL2 uniform array operations

Adds support for the WebGL2 overloads of `uniform[1234][if]v`.
This commit is contained in:
Mátyás Mustoha 2020-01-16 10:22:52 +01:00
parent bc914381a8
commit 0650fc3199
5 changed files with 187 additions and 423 deletions

View file

@ -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,

View file

@ -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);