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();
|
> = new Map();
|
||||||
converters.set(WebGLRenderingContext.SAMPLER_2D, (gl, v, l) => gl.uniform1i(l, v));
|
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(
|
converters.set(
|
||||||
WebGLRenderingContext.FLOAT,
|
WebGLRenderingContext.FLOAT,
|
||||||
(gl, v: number | Array<number> | Float32Array, l) => {
|
(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 */
|
/** @internal */
|
||||||
export const loadUniform = (
|
export const loadUniform = (
|
||||||
gl: UniversalRenderingContext,
|
gl: UniversalRenderingContext,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue