Fix int and bool array loading
This commit is contained in:
parent
6144d98b2e
commit
5e936b9654
1 changed files with 24 additions and 3 deletions
|
|
@ -11,6 +11,30 @@ const converters: Map<
|
|||
> = new Map();
|
||||
converters.set(WebGLRenderingContext.SAMPLER_2D, (gl, v, l) => gl.uniform1i(l, v));
|
||||
|
||||
converters.set(WebGLRenderingContext.INT, (gl, v: number | Array<number>, l) => {
|
||||
if (v instanceof Array) {
|
||||
if (v.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
gl.uniform1iv(l, new Int32Array(v));
|
||||
} else {
|
||||
gl.uniform1i(l, v);
|
||||
}
|
||||
});
|
||||
|
||||
converters.set(WebGLRenderingContext.BOOL, (gl, v: boolean | Array<boolean>, l) => {
|
||||
if (v instanceof Array) {
|
||||
if (v.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
gl.uniform1iv(l, new Int32Array(v.map((b) => +b)));
|
||||
} else {
|
||||
gl.uniform1i(l, +v);
|
||||
}
|
||||
});
|
||||
|
||||
converters.set(
|
||||
WebGLRenderingContext.FLOAT,
|
||||
(gl, v: number | Array<number> | Float32Array, l) => {
|
||||
|
|
@ -106,9 +130,6 @@ converters.set(WebGLRenderingContext.FLOAT_MAT3, (gl, v, l) => {
|
|||
}
|
||||
});
|
||||
|
||||
converters.set(WebGLRenderingContext.BOOL, (gl, v: number, l) => gl.uniform1i(l, v));
|
||||
converters.set(WebGLRenderingContext.INT, (gl, v: number, l) => gl.uniform1i(l, v));
|
||||
|
||||
/** @internal */
|
||||
export const loadUniform = (
|
||||
gl: UniversalRenderingContext,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue