@thi.ng/webgl 6.6.11 → 6.6.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/README.md +1 -1
- package/api/blend.js +36 -32
- package/api/buffers.js +0 -1
- package/api/canvas.js +0 -1
- package/api/ext.js +12 -9
- package/api/glsl.js +0 -1
- package/api/material.js +0 -1
- package/api/model.js +13 -10
- package/api/multipass.js +0 -1
- package/api/shader.js +4 -1
- package/api/stencil.js +26 -22
- package/api/texture.js +589 -252
- package/buffer.js +145 -127
- package/canvas.js +53 -61
- package/checks.js +6 -6
- package/draw.js +84 -69
- package/error.js +7 -3
- package/fbo.js +95 -90
- package/geo/cube.js +28 -26
- package/geo/quad.js +34 -33
- package/logger.js +6 -2
- package/material.js +14 -11
- package/matrices.js +12 -19
- package/multipass.js +155 -146
- package/package.json +22 -19
- package/rbo.js +43 -34
- package/readpixels.js +14 -10
- package/shader.js +342 -335
- package/shaders/lambert.js +79 -48
- package/shaders/phong.js +92 -60
- package/shaders/pipeline.js +35 -27
- package/syntax.js +64 -77
- package/texture.js +277 -230
- package/textures/checkerboard.js +28 -25
- package/textures/stripes.js +19 -18
- package/uniforms.js +70 -67
- package/utils.js +6 -8
package/uniforms.js
CHANGED
|
@@ -2,77 +2,80 @@ import { equivArrayLike } from "@thi.ng/equiv";
|
|
|
2
2
|
import { IDENT22, IDENT33, IDENT44 } from "@thi.ng/matrices/constants";
|
|
3
3
|
import { ZERO2, ZERO3, ZERO4 } from "@thi.ng/vectors/api";
|
|
4
4
|
const uniformS = (fn) => (gl, loc, defaultVal = 0) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
let prev;
|
|
6
|
+
return (x) => {
|
|
7
|
+
x = x === void 0 ? defaultVal : x;
|
|
8
|
+
if (x !== prev) {
|
|
9
|
+
gl["uniform1" + fn](loc, x);
|
|
10
|
+
prev = x;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
13
|
};
|
|
14
14
|
const uniformV = (fn, sysDefault) => (gl, loc, defaultVal = sysDefault) => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
let prev = [];
|
|
16
|
+
return (x) => {
|
|
17
|
+
x = x === void 0 ? defaultVal : x;
|
|
18
|
+
if (!equivArrayLike(prev, x)) {
|
|
19
|
+
gl["uniform" + fn](loc, x);
|
|
20
|
+
prev = [...x];
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
23
|
};
|
|
24
24
|
const uniformM = (fn, sysDefault) => (gl, loc, defaultVal = sysDefault) => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
let prev = [];
|
|
26
|
+
return (x) => {
|
|
27
|
+
x = x === void 0 ? defaultVal : x;
|
|
28
|
+
if (!equivArrayLike(prev, x)) {
|
|
29
|
+
gl["uniformMatrix" + fn](loc, false, x);
|
|
30
|
+
prev = [...x];
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
33
|
};
|
|
34
34
|
const Z1 = [0];
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
35
|
+
const UNIFORM_SETTERS = {
|
|
36
|
+
bool: uniformS("i"),
|
|
37
|
+
float: uniformS("f"),
|
|
38
|
+
int: uniformS("i"),
|
|
39
|
+
uint: uniformS("ui"),
|
|
40
|
+
bvec2: uniformV("2iv", ZERO2),
|
|
41
|
+
bvec3: uniformV("3iv", ZERO3),
|
|
42
|
+
bvec4: uniformV("4iv", ZERO4),
|
|
43
|
+
ivec2: uniformV("2iv", ZERO2),
|
|
44
|
+
ivec3: uniformV("3iv", ZERO3),
|
|
45
|
+
ivec4: uniformV("4iv", ZERO4),
|
|
46
|
+
vec2: uniformV("2fv", ZERO2),
|
|
47
|
+
vec3: uniformV("3fv", ZERO3),
|
|
48
|
+
vec4: uniformV("4fv", ZERO4),
|
|
49
|
+
mat2: uniformM("2fv", IDENT22),
|
|
50
|
+
mat3: uniformM("3fv", IDENT33),
|
|
51
|
+
mat4: uniformM("4fv", IDENT44),
|
|
52
|
+
sampler2D: uniformS("i"),
|
|
53
|
+
sampler2DShadow: uniformS("i"),
|
|
54
|
+
sampler3D: uniformS("i"),
|
|
55
|
+
samplerCube: uniformS("i"),
|
|
56
|
+
samplerCubeShadow: uniformS("i"),
|
|
57
|
+
"bool[]": uniformV("1iv", Z1),
|
|
58
|
+
"float[]": uniformV("1fv", Z1),
|
|
59
|
+
"int[]": uniformV("1iv", Z1),
|
|
60
|
+
"uint[]": uniformV("1uiv", Z1),
|
|
61
|
+
"bvec2[]": uniformV("2iv", ZERO2),
|
|
62
|
+
"bvec3[]": uniformV("3iv", ZERO3),
|
|
63
|
+
"bvec4[]": uniformV("4iv", ZERO4),
|
|
64
|
+
"ivec2[]": uniformV("2iv", ZERO2),
|
|
65
|
+
"ivec3[]": uniformV("3iv", ZERO3),
|
|
66
|
+
"ivec4[]": uniformV("4iv", ZERO4),
|
|
67
|
+
"vec2[]": uniformV("2fv", ZERO2),
|
|
68
|
+
"vec3[]": uniformV("3fv", ZERO3),
|
|
69
|
+
"vec4[]": uniformV("4fv", ZERO4),
|
|
70
|
+
"mat2[]": uniformM("2fv", ZERO2),
|
|
71
|
+
"mat3[]": uniformM("3fv", ZERO3),
|
|
72
|
+
"mat4[]": uniformM("4fv", ZERO4),
|
|
73
|
+
"sampler2D[]": uniformV("1iv", Z1),
|
|
74
|
+
"sampler2DShadow[]": uniformV("1iv", Z1),
|
|
75
|
+
"sampler3D[]": uniformV("1iv", Z1),
|
|
76
|
+
"samplerCube[]": uniformV("1iv", Z1),
|
|
77
|
+
"samplerCubeShadow[]": uniformV("1iv", Z1)
|
|
78
|
+
};
|
|
79
|
+
export {
|
|
80
|
+
UNIFORM_SETTERS
|
|
78
81
|
};
|
package/utils.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { add, mul } from "@thi.ng/shader-ast/ast/ops";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
? mul(attribs[opts.color], fallback)
|
|
9
|
-
: fallback;
|
|
2
|
+
const positionAttrib = (opts, attribs, pos = "position") => opts.instancePos ? add(attribs[pos], attribs[opts.instancePos]) : attribs[pos];
|
|
3
|
+
const colorAttrib = (opts, attribs, fallback) => opts.instanceColor ? mul(attribs[opts.instanceColor], fallback) : opts.color ? mul(attribs[opts.color], fallback) : fallback;
|
|
4
|
+
export {
|
|
5
|
+
colorAttrib,
|
|
6
|
+
positionAttrib
|
|
7
|
+
};
|