@tolokoban/tgd 2.0.12 → 2.0.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.
Files changed (108) hide show
  1. package/lib/dist/camera/camera-node.d.ts +16 -0
  2. package/lib/dist/camera/camera-node.d.ts.map +1 -0
  3. package/lib/dist/camera/camera-node.js +18 -0
  4. package/lib/dist/camera/camera.d.ts +1 -0
  5. package/lib/dist/camera/camera.d.ts.map +1 -1
  6. package/lib/dist/camera/camera.js +18 -3
  7. package/lib/dist/camera/index.d.ts +1 -0
  8. package/lib/dist/camera/index.d.ts.map +1 -1
  9. package/lib/dist/camera/index.js +2 -1
  10. package/lib/dist/context/animation/animation-manager.d.ts.map +1 -1
  11. package/lib/dist/context/animation/animation-manager.js +9 -1
  12. package/lib/dist/context/context.d.ts +1 -0
  13. package/lib/dist/context/context.d.ts.map +1 -1
  14. package/lib/dist/context/context.js +2 -2
  15. package/lib/dist/dataset/dataset.d.ts +7 -0
  16. package/lib/dist/dataset/dataset.d.ts.map +1 -1
  17. package/lib/dist/dataset/dataset.js +32 -2
  18. package/lib/dist/debug/debug.d.ts +8 -0
  19. package/lib/dist/debug/debug.d.ts.map +1 -0
  20. package/lib/dist/debug/debug.js +32 -0
  21. package/lib/dist/debug/index.d.ts +3 -0
  22. package/lib/dist/debug/index.d.ts.map +1 -0
  23. package/lib/dist/debug/index.js +3 -0
  24. package/lib/dist/debug/tools.d.ts +2 -0
  25. package/lib/dist/debug/tools.d.ts.map +1 -0
  26. package/lib/dist/debug/tools.js +13 -0
  27. package/lib/dist/geometry/box.d.ts +2 -0
  28. package/lib/dist/geometry/box.d.ts.map +1 -1
  29. package/lib/dist/geometry/box.js +10 -1
  30. package/lib/dist/loader/binary.d.ts +4 -0
  31. package/lib/dist/loader/binary.d.ts.map +1 -0
  32. package/lib/dist/loader/binary.js +25 -0
  33. package/lib/dist/loader/image.d.ts +7 -9
  34. package/lib/dist/loader/image.d.ts.map +1 -1
  35. package/lib/dist/loader/image.js +31 -33
  36. package/lib/dist/loader/index.d.ts +1 -1
  37. package/lib/dist/loader/index.d.ts.map +1 -1
  38. package/lib/dist/loader/index.js +2 -2
  39. package/lib/dist/material/diffuse.d.ts.map +1 -1
  40. package/lib/dist/material/diffuse.js +3 -2
  41. package/lib/dist/math/mat4.d.ts +7 -2
  42. package/lib/dist/math/mat4.d.ts.map +1 -1
  43. package/lib/dist/math/mat4.js +21 -4
  44. package/lib/dist/math/quat.d.ts +5 -0
  45. package/lib/dist/math/quat.d.ts.map +1 -1
  46. package/lib/dist/math/quat.js +62 -3
  47. package/lib/dist/math/transfo.d.ts +5 -0
  48. package/lib/dist/math/transfo.d.ts.map +1 -1
  49. package/lib/dist/math/transfo.js +25 -1
  50. package/lib/dist/math/vec3.d.ts +3 -2
  51. package/lib/dist/math/vec3.d.ts.map +1 -1
  52. package/lib/dist/math/vec3.js +8 -5
  53. package/lib/dist/painter/mesh/gltf/gltf.js +3 -3
  54. package/lib/dist/painter/node.d.ts +6 -0
  55. package/lib/dist/painter/node.d.ts.map +1 -1
  56. package/lib/dist/painter/node.js +7 -1
  57. package/lib/dist/painter/state/state.d.ts +9 -10
  58. package/lib/dist/painter/state/state.d.ts.map +1 -1
  59. package/lib/dist/painter/state/state.js +23 -25
  60. package/lib/dist/painter/state.d.ts +31 -37
  61. package/lib/dist/painter/state.d.ts.map +1 -1
  62. package/lib/dist/painter/state.js +1 -1
  63. package/lib/dist/program/program.d.ts +3 -1
  64. package/lib/dist/program/program.d.ts.map +1 -1
  65. package/lib/dist/program/program.js +25 -7
  66. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  67. package/lib/dist/texture/texture2d.js +3 -3
  68. package/lib/dist/texture/textureCube.js +3 -3
  69. package/lib/dist/tools.d.ts +2 -0
  70. package/lib/dist/tools.d.ts.map +1 -0
  71. package/lib/dist/tools.js +13 -0
  72. package/lib/dist/types/animation.d.ts +4 -0
  73. package/lib/dist/types/animation.d.ts.map +1 -1
  74. package/lib/dist/types/mesh.d.ts +2 -3
  75. package/lib/dist/types/mesh.d.ts.map +1 -1
  76. package/lib/dist/types/program.d.ts +3 -1
  77. package/lib/dist/types/program.d.ts.map +1 -1
  78. package/lib/dist/types/webgl.d.ts +127 -0
  79. package/lib/dist/types/webgl.d.ts.map +1 -1
  80. package/lib/dist/types/webgl.js +132 -2
  81. package/lib/dist/utils/bbox.d.ts +15 -0
  82. package/lib/dist/utils/bbox.d.ts.map +1 -0
  83. package/lib/dist/utils/bbox.js +31 -0
  84. package/lib/dist/utils/bbox.test.d.ts +2 -0
  85. package/lib/dist/utils/bbox.test.d.ts.map +1 -0
  86. package/lib/dist/utils/bbox.test.js +46 -0
  87. package/lib/dist/utils/index.d.ts +2 -0
  88. package/lib/dist/utils/index.d.ts.map +1 -1
  89. package/lib/dist/utils/index.js +3 -1
  90. package/lib/dist/utils/state/blend.d.ts +16 -0
  91. package/lib/dist/utils/state/blend.d.ts.map +1 -0
  92. package/lib/dist/utils/state/blend.js +84 -0
  93. package/lib/dist/utils/state/cull.d.ts +11 -0
  94. package/lib/dist/utils/state/cull.d.ts.map +1 -0
  95. package/lib/dist/utils/state/cull.js +50 -0
  96. package/lib/dist/utils/state/depth.d.ts +14 -0
  97. package/lib/dist/utils/state/depth.d.ts.map +1 -0
  98. package/lib/dist/utils/state/depth.js +81 -0
  99. package/lib/dist/utils/state/index.d.ts +3 -0
  100. package/lib/dist/utils/state/index.d.ts.map +1 -0
  101. package/lib/dist/utils/state/index.js +3 -0
  102. package/lib/dist/utils/webgl.d.ts +1 -1
  103. package/lib/dist/utils/webgl.d.ts.map +1 -1
  104. package/lib/dist/utils/webgl.js +1 -1
  105. package/lib/dist/vao/vao.d.ts +4 -1
  106. package/lib/dist/vao/vao.d.ts.map +1 -1
  107. package/lib/dist/vao/vao.js +15 -1
  108. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bbox.d.ts","sourceRoot":"","sources":["../../src/utils/bbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACnC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC7B,eAAe,SAAa,EAC5B,SAAS,CAAC,EAAE,OAAO,EACnB,SAAS,CAAC,EAAE,OAAO,GACpB;IACC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IACtB,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CACzB,CAoBA"}
@@ -0,0 +1,31 @@
1
+ import { TgdVec3 } from "./../math/index.js";
2
+ /**
3
+ * Compute the bounding box of a Dataset.
4
+ * @param dataset
5
+ * @param attPositionName Name of an atttribute of type `vec3` holding the vertices positions.
6
+ * @param minVector If specified, it will hold the min bounding box value.
7
+ * @param maxVector If specified, it will hold the max bounding box value.
8
+ * @returns
9
+ */
10
+ export function tgdComputeBoundingBox3D(dataset, attPositionName = "POSITION", minVector, maxVector) {
11
+ const { get } = dataset
12
+ .assertAttribType(attPositionName, "vec3", "vec4")
13
+ .getAttribAccessor(attPositionName);
14
+ const min = minVector ?? new TgdVec3();
15
+ min.reset(get(0, 0), get(0, 1), get(0, 2));
16
+ const max = maxVector ?? new TgdVec3();
17
+ max.from(min);
18
+ for (let index = 1; index < dataset.count; index++) {
19
+ const x = get(index, 0);
20
+ const y = get(index, 1);
21
+ const z = get(index, 2);
22
+ min.x = Math.min(min.x, x);
23
+ max.x = Math.max(max.x, x);
24
+ min.y = Math.min(min.y, y);
25
+ max.y = Math.max(max.y, y);
26
+ min.z = Math.min(min.z, z);
27
+ max.z = Math.max(max.z, z);
28
+ }
29
+ return { min, max };
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9iYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkM7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDbkMsT0FBNkIsRUFDN0IsZUFBZSxHQUFHLFVBQVUsRUFDNUIsU0FBbUIsRUFDbkIsU0FBbUI7SUFLbkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU87U0FDbEIsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7U0FDakQsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDdkMsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUE7SUFDdEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFDLE1BQU0sR0FBRyxHQUFHLFNBQVMsSUFBSSxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBQ3RDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDYixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDdkIsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN2QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3ZCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO0FBQ3ZCLENBQUMifQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bbox.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bbox.test.d.ts","sourceRoot":"","sources":["../../src/utils/bbox.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { TgdDataset } from "./../dataset/index.js";
2
+ import { tgdComputeBoundingBox3D } from "./bbox.js";
3
+ describe("utils/bbox.ts", () => {
4
+ function makeDS(positions) {
5
+ const ds = new TgdDataset({ POSITION: "vec3" });
6
+ const data = new Float32Array(3 * positions.length);
7
+ for (let i = 0; i < positions.length; i++) {
8
+ const ptr = i * 3;
9
+ const [x, y, z] = positions[i];
10
+ data[ptr + 0] = x;
11
+ data[ptr + 1] = y;
12
+ data[ptr + 2] = z;
13
+ }
14
+ ds.set("POSITION", data);
15
+ return ds;
16
+ }
17
+ function checkBBox(ds, min, max) {
18
+ const bbox = tgdComputeBoundingBox3D(ds);
19
+ expect([...bbox.min]).toEqual([...min]);
20
+ expect([...bbox.max]).toEqual([...max]);
21
+ }
22
+ describe("tgdComputeBoundingBox3D()", () => {
23
+ it("should work with only one position", () => {
24
+ const ds = makeDS([[1, 2, 3]]);
25
+ checkBBox(ds, [1, 2, 3], [1, 2, 3]);
26
+ });
27
+ const cases = [
28
+ [
29
+ [
30
+ [9, 2, 5],
31
+ [2, 6, 4],
32
+ [0, 8, 1],
33
+ ],
34
+ [0, 2, 1],
35
+ [9, 8, 5],
36
+ ],
37
+ ];
38
+ for (const [positions, min, max] of cases) {
39
+ it(`should find bbox of ${positions}`, () => {
40
+ const ds = makeDS(positions);
41
+ checkBBox(ds, min, max);
42
+ });
43
+ }
44
+ });
45
+ });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJveC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Jib3gudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUdoRCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUMzQixTQUFTLE1BQU0sQ0FDWCxTQUE4QztRQUU5QyxNQUFNLEVBQUUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQy9DLE1BQU0sSUFBSSxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2pCLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM5QixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNyQixDQUFDO1FBQ0QsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDeEIsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBQ0QsU0FBUyxTQUFTLENBQUMsRUFBYyxFQUFFLEdBQWlCLEVBQUUsR0FBaUI7UUFDbkUsTUFBTSxJQUFJLEdBQUcsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDeEMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDdkMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUNELFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7UUFDdkMsRUFBRSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRTtZQUMxQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzlCLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxLQUFLLEdBTVA7WUFDQTtnQkFDSTtvQkFDSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNULENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ1QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDWjtnQkFDRCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNULENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDWjtTQUNKLENBQUE7UUFDRCxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3hDLEVBQUUsQ0FBQyx1QkFBdUIsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFO2dCQUN4QyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQzVCLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQzNCLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUEifQ==
@@ -1,8 +1,10 @@
1
1
  export * from "./action";
2
2
  export * from "./assert";
3
+ export * from "./bbox";
3
4
  export * from "./canvas";
4
5
  export * from "./ease-func";
5
6
  export * from "./fetch";
6
7
  export * from "./fullscreen";
8
+ export * from "./state";
7
9
  export * from "./webgl";
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
@@ -1,8 +1,10 @@
1
1
  export * from "./action/index.js";
2
2
  export * from "./assert.js";
3
+ export * from "./bbox.js";
3
4
  export * from "./canvas.js";
4
5
  export * from "./ease-func/index.js";
5
6
  export * from "./fetch/index.js";
6
7
  export * from "./fullscreen.js";
8
+ export * from "./state/index.js";
7
9
  export * from "./webgl.js";
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxTQUFTLENBQUEifQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxTQUFTLENBQUEifQ==
@@ -0,0 +1,16 @@
1
+ import { WebglEnumBlendEquation, WebglEnumBlendFunc } from "../../types";
2
+ export interface WebglBlendOptions {
3
+ enabled: boolean;
4
+ equationColor: WebglEnumBlendEquation;
5
+ equationAlpha: WebglEnumBlendEquation;
6
+ functionColorSrc: WebglEnumBlendFunc;
7
+ functionColorDst: WebglEnumBlendFunc;
8
+ functionAlphaSrc: WebglEnumBlendFunc;
9
+ functionAlphaDst: WebglEnumBlendFunc;
10
+ }
11
+ export declare const webglPresetBlend: Readonly<Record<"off" | "alpha", WebglBlendOptions>>;
12
+ export declare function webglBlendSet(gl: WebGL2RenderingContext, blend: WebglBlendOptions): void;
13
+ export declare function webglBlendGet(gl: WebGL2RenderingContext): WebglBlendOptions;
14
+ export declare function webglBlendExec(gl: WebGL2RenderingContext, blend: WebglBlendOptions, action: () => void): void;
15
+ export declare function webglDebugBlend(gl: WebGL2RenderingContext, caption?: string): void;
16
+ //# sourceMappingURL=blend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blend.d.ts","sourceRoot":"","sources":["../../../src/utils/state/blend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEvE,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,sBAAsB,CAAA;IACrC,aAAa,EAAE,sBAAsB,CAAA;IACrC,gBAAgB,EAAE,kBAAkB,CAAA;IACpC,gBAAgB,EAAE,kBAAkB,CAAA;IACpC,gBAAgB,EAAE,kBAAkB,CAAA;IACpC,gBAAgB,EAAE,kBAAkB,CAAA;CACvC;AAED,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CACnC,MAAM,CAAC,KAAK,GAAG,OAAO,EAAE,iBAAiB,CAAC,CAoB7C,CAAA;AAED,wBAAgB,aAAa,CACzB,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,iBAAiB,QAW3B;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,sBAAsB,GAAG,iBAAiB,CAU3E;AAED,wBAAgB,cAAc,CAC1B,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,IAAI,QASrB;AAED,wBAAgB,eAAe,CAC3B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,SAAmB,QAgC7B"}
@@ -0,0 +1,84 @@
1
+ import { debug, highlightEnum } from "./../../debug/debug.js";
2
+ import { WebglEnumBlendEquation, WebglEnumBlendFunc } from "./../../types/index.js";
3
+ export const webglPresetBlend = {
4
+ off: {
5
+ enabled: false,
6
+ equationColor: WebglEnumBlendEquation.FUNC_ADD,
7
+ equationAlpha: WebglEnumBlendEquation.FUNC_ADD,
8
+ functionColorSrc: WebglEnumBlendFunc.SRC_ALPHA,
9
+ functionColorDst: WebglEnumBlendFunc.ONE_MINUS_SRC_ALPHA,
10
+ functionAlphaSrc: WebglEnumBlendFunc.ONE,
11
+ functionAlphaDst: WebglEnumBlendFunc.ZERO,
12
+ },
13
+ alpha: {
14
+ enabled: true,
15
+ equationColor: WebglEnumBlendEquation.FUNC_ADD,
16
+ equationAlpha: WebglEnumBlendEquation.FUNC_ADD,
17
+ functionColorSrc: WebglEnumBlendFunc.SRC_ALPHA,
18
+ functionColorDst: WebglEnumBlendFunc.ONE_MINUS_SRC_ALPHA,
19
+ functionAlphaSrc: WebglEnumBlendFunc.ONE,
20
+ functionAlphaDst: WebglEnumBlendFunc.ZERO,
21
+ },
22
+ };
23
+ export function webglBlendSet(gl, blend) {
24
+ if (blend.enabled)
25
+ gl.enable(gl.BLEND);
26
+ else
27
+ gl.disable(gl.BLEND);
28
+ gl.blendEquationSeparate(blend.equationColor, blend.equationAlpha);
29
+ gl.blendFuncSeparate(blend.functionColorSrc, blend.functionColorDst, blend.functionAlphaSrc, blend.functionAlphaDst);
30
+ }
31
+ export function webglBlendGet(gl) {
32
+ return {
33
+ enabled: Boolean(gl.getParameter(gl.BLEND)),
34
+ equationAlpha: gl.getParameter(gl.BLEND_EQUATION_ALPHA),
35
+ equationColor: gl.getParameter(gl.BLEND_EQUATION_RGB),
36
+ functionAlphaDst: gl.getParameter(gl.BLEND_DST_ALPHA),
37
+ functionAlphaSrc: gl.getParameter(gl.BLEND_SRC_ALPHA),
38
+ functionColorDst: gl.getParameter(gl.BLEND_DST_RGB),
39
+ functionColorSrc: gl.getParameter(gl.BLEND_SRC_ALPHA),
40
+ };
41
+ }
42
+ export function webglBlendExec(gl, blend, action) {
43
+ const currentState = webglBlendGet(gl);
44
+ webglBlendSet(gl, blend);
45
+ try {
46
+ action();
47
+ }
48
+ finally {
49
+ webglBlendSet(gl, currentState);
50
+ }
51
+ }
52
+ export function webglDebugBlend(gl, caption = "Blend enabled:") {
53
+ console.log(caption);
54
+ const blend = webglBlendGet(gl);
55
+ debug([
56
+ [caption, blend.enabled, "\n"],
57
+ [
58
+ { cls: "code" },
59
+ [
60
+ "gl.",
61
+ blend.enabled ? "enable" : "disable",
62
+ "(",
63
+ highlightEnum("BLEND"),
64
+ ")\n",
65
+ ],
66
+ [
67
+ "gl.blendEquationSeparate(",
68
+ highlightEnum(blend.equationColor),
69
+ ", ",
70
+ highlightEnum(blend.equationAlpha),
71
+ ")\n",
72
+ ],
73
+ [
74
+ "gl.blendFuncSeparate(\n",
75
+ [" ", highlightEnum(blend.functionColorSrc), ",\n"],
76
+ [" ", highlightEnum(blend.functionColorDst), ",\n"],
77
+ [" ", highlightEnum(blend.functionAlphaSrc), ",\n"],
78
+ [" ", highlightEnum(blend.functionAlphaDst), "\n"],
79
+ ")\n",
80
+ ],
81
+ ],
82
+ ]);
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvc3RhdGUvYmxlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFZdkUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBRXpCO0lBQ0EsR0FBRyxFQUFFO1FBQ0QsT0FBTyxFQUFFLEtBQUs7UUFDZCxhQUFhLEVBQUUsc0JBQXNCLENBQUMsUUFBUTtRQUM5QyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsUUFBUTtRQUM5QyxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTO1FBQzlDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLG1CQUFtQjtRQUN4RCxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxHQUFHO1FBQ3hDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLElBQUk7S0FDNUM7SUFDRCxLQUFLLEVBQUU7UUFDSCxPQUFPLEVBQUUsSUFBSTtRQUNiLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxRQUFRO1FBQzlDLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxRQUFRO1FBQzlDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLFNBQVM7UUFDOUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsbUJBQW1CO1FBQ3hELGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLEdBQUc7UUFDeEMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsSUFBSTtLQUM1QztDQUNKLENBQUE7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUN6QixFQUEwQixFQUMxQixLQUF3QjtJQUV4QixJQUFJLEtBQUssQ0FBQyxPQUFPO1FBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7O1FBQ2pDLEVBQUUsQ0FB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
@@ -0,0 +1,11 @@
1
+ import { WebglEnumCullFace } from "../../types";
2
+ export interface WebglCullOptions {
3
+ enabled: boolean;
4
+ cullFace: WebglEnumCullFace;
5
+ }
6
+ export declare const webglPresetCull: Record<"back", WebglCullOptions>;
7
+ export declare function webglCullSet(gl: WebGL2RenderingContext, cull: WebglCullOptions): void;
8
+ export declare function webglCullGet(gl: WebGL2RenderingContext): WebglCullOptions;
9
+ export declare function webglCullExec(gl: WebGL2RenderingContext, cull: WebglCullOptions, action: () => void): void;
10
+ export declare function webglDebugCull(gl: WebGL2RenderingContext, caption?: string): void;
11
+ //# sourceMappingURL=cull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cull.d.ts","sourceRoot":"","sources":["../../../src/utils/state/cull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAK5D,CAAA;AAED,wBAAgB,YAAY,CACxB,EAAE,EAAE,sBAAsB,EAC1B,IAAI,EAAE,gBAAgB,QAKzB;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,sBAAsB,GAAG,gBAAgB,CAKzE;AAED,wBAAgB,aAAa,CACzB,EAAE,EAAE,sBAAsB,EAC1B,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,IAAI,QASrB;AAED,wBAAgB,cAAc,CAC1B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,SAAkB,QAkB5B"}
@@ -0,0 +1,50 @@
1
+ import { debug, highlightEnum } from "./../../debug/debug.js";
2
+ import { WebglEnumCullFace } from "./../../types/index.js";
3
+ export const webglPresetCull = {
4
+ back: {
5
+ enabled: true,
6
+ cullFace: WebglEnumCullFace.BACK,
7
+ },
8
+ };
9
+ export function webglCullSet(gl, cull) {
10
+ if (cull.enabled)
11
+ gl.enable(gl.CULL_FACE);
12
+ else
13
+ gl.disable(gl.CULL_FACE);
14
+ gl.cullFace(cull.cullFace);
15
+ }
16
+ export function webglCullGet(gl) {
17
+ return {
18
+ enabled: Boolean(gl.getParameter(gl.CULL_FACE)),
19
+ cullFace: gl.getParameter(gl.CULL_FACE_MODE),
20
+ };
21
+ }
22
+ export function webglCullExec(gl, cull, action) {
23
+ const currentState = webglCullGet(gl);
24
+ webglCullSet(gl, cull);
25
+ try {
26
+ action();
27
+ }
28
+ finally {
29
+ webglCullSet(gl, currentState);
30
+ }
31
+ }
32
+ export function webglDebugCull(gl, caption = "Cull enabled:") {
33
+ console.log(caption);
34
+ const cull = webglCullGet(gl);
35
+ debug([
36
+ [caption, cull.enabled, "\n"],
37
+ [
38
+ { cls: "code" },
39
+ [
40
+ "gl.",
41
+ cull.enabled ? "enable" : "disable",
42
+ "(",
43
+ highlightEnum("CULL_FACE"),
44
+ ")\n",
45
+ ],
46
+ ["gl.cullFace(", highlightEnum(cull.cullFace), ")\n"],
47
+ ],
48
+ ]);
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zdGF0ZS9jdWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBTzlDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBcUM7SUFDN0QsSUFBSSxFQUFFO1FBQ0YsT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtLQUNuQztDQUNKLENBQUE7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUN4QixFQUEwQixFQUMxQixJQUFzQjtJQUV0QixJQUFJLElBQUksQ0FBQyxPQUFPO1FBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7O1FBQ3BDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQzlCLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEVBQTBCO0lBQ25ELE9BQU87UUFDSCxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLFFBQVEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQVc7S0FDekQsQ0FBQTtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUN6QixFQUEwQixFQUMxQixJQUFzQixFQUN0QixNQUFrQjtJQUVsQixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDckMsWUFBWSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN0QixJQUFJLENBQUM7UUFDRCxNQUFNLEVBQUUsQ0FBQTtJQUNaLENBQUM7WUFBUyxDQUFDO1FBQ1AsWUFBWSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQzFCLEVBQTBCLEVBQzFCLE9BQU8sR0FBRyxlQUFlO0lBRXpCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEIsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzdCLEtBQUssQ0FBQztRQUNGLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzdCO1lBQ0ksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO1lBQ2Y7Z0JBQ0ksS0FBSztnQkFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ25DLEdBQUc7Z0JBQ0gsYUFBYSxDQUFDLFdBQVcsQ0FBQztnQkFDMUIsS0FBSzthQUNSO1lBQ0QsQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUM7U0FDeEQ7S0FDSixDQUFDLENBQUE7QUFDTixDQUFDIn0=
@@ -0,0 +1,14 @@
1
+ import { WebglEnumDepthFunc } from "../../types/webgl";
2
+ export interface WebglDepthOptions {
3
+ enabled: boolean;
4
+ func: WebglEnumDepthFunc;
5
+ mask: boolean;
6
+ rangeMin: number;
7
+ rangeMax: number;
8
+ }
9
+ export declare const webglPresetDepth: Readonly<Record<"off" | "less" | "lessOrEqual", WebglDepthOptions>>;
10
+ export declare function webglDepthSet(gl: WebGL2RenderingContext, depth: WebglDepthOptions): void;
11
+ export declare function webglDepthGet(gl: WebGL2RenderingContext): WebglDepthOptions;
12
+ export declare function webglDepthExec(gl: WebGL2RenderingContext, depth: WebglDepthOptions, action: () => void): void;
13
+ export declare function webglDebugDepth(gl: WebGL2RenderingContext, caption?: string): void;
14
+ //# sourceMappingURL=depth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../../src/utils/state/depth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,kBAAkB,CAAA;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CACnC,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,aAAa,EAAE,iBAAiB,CAAC,CAuB5D,CAAA;AAED,wBAAgB,aAAa,CACzB,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,iBAAiB,QAO3B;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,sBAAsB,GAAG,iBAAiB,CAS3E;AAED,wBAAgB,cAAc,CAC1B,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,IAAI,QASrB;AAED,wBAAgB,eAAe,CAC3B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,SAAmB,QA0B7B"}
@@ -0,0 +1,81 @@
1
+ import { debug, highlightEnum } from "./../../debug/debug.js";
2
+ import { WebglEnumDepthFunc } from "./../../types/webgl.js";
3
+ export const webglPresetDepth = {
4
+ off: {
5
+ enabled: false,
6
+ func: WebglEnumDepthFunc.LESS,
7
+ mask: true,
8
+ rangeMin: 0,
9
+ rangeMax: 1,
10
+ },
11
+ less: {
12
+ enabled: true,
13
+ func: WebglEnumDepthFunc.LESS,
14
+ mask: true,
15
+ rangeMin: 0,
16
+ rangeMax: 1,
17
+ },
18
+ lessOrEqual: {
19
+ enabled: true,
20
+ func: WebglEnumDepthFunc.LEQUAL,
21
+ mask: true,
22
+ rangeMin: 0,
23
+ rangeMax: 1,
24
+ },
25
+ };
26
+ export function webglDepthSet(gl, depth) {
27
+ if (depth.enabled)
28
+ gl.enable(gl.DEPTH_TEST);
29
+ else
30
+ gl.disable(gl.DEPTH_TEST);
31
+ gl.depthFunc(depth.func);
32
+ gl.depthMask(depth.mask);
33
+ gl.depthRange(depth.rangeMin, depth.rangeMax);
34
+ }
35
+ export function webglDepthGet(gl) {
36
+ const [rangeMin, rangeMax] = gl.getParameter(gl.DEPTH_RANGE);
37
+ return {
38
+ enabled: Boolean(gl.getParameter(gl.DEPTH_TEST)),
39
+ func: Number(gl.getParameter(gl.DEPTH_FUNC)),
40
+ mask: Boolean(gl.getParameter(gl.DEPTH_WRITEMASK)),
41
+ rangeMin,
42
+ rangeMax,
43
+ };
44
+ }
45
+ export function webglDepthExec(gl, depth, action) {
46
+ const currentState = webglDepthGet(gl);
47
+ webglDepthSet(gl, depth);
48
+ try {
49
+ action();
50
+ }
51
+ finally {
52
+ webglDepthSet(gl, currentState);
53
+ }
54
+ }
55
+ export function webglDebugDepth(gl, caption = "Depth enabled:") {
56
+ console.log(caption);
57
+ const depth = webglDepthGet(gl);
58
+ debug([
59
+ [caption, depth.enabled, "\n"],
60
+ [
61
+ { cls: "code" },
62
+ [
63
+ "gl.",
64
+ depth.enabled ? "enable" : "disable",
65
+ "(",
66
+ highlightEnum("DEPTH_FUNC"),
67
+ ")\n",
68
+ ],
69
+ [
70
+ "gl.depthFunc(",
71
+ highlightEnum(depth.func),
72
+ ")\n",
73
+ "gl.depthMask(",
74
+ depth.mask,
75
+ ")\n",
76
+ `gl.depthRange(${depth.rangeMin}, ${depth.rangeMax})\n`,
77
+ ],
78
+ ],
79
+ ]);
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvc3RhdGUvZGVwdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQVVyRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FFekI7SUFDQSxHQUFHLEVBQUU7UUFDRCxPQUFPLEVBQUUsS0FBSztRQUNkLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJO1FBQzdCLElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFFLENBQUM7UUFDWCxRQUFRLEVBQUUsQ0FBQztLQUNkO0lBQ0QsSUFBSSxFQUFFO1FBQ0YsT0FBTyxFQUFFLElBQUk7UUFDYixJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSTtRQUM3QixJQUFJLEVBQUUsSUFBSTtRQUNWLFFBQVEsRUFBRSxDQUFDO1FBQ1gsUUFBUSxFQUFFLENBQUM7S0FDZDtJQUNELFdBQVcsRUFBRTtRQUNULE9BQU8sRUFBRSxJQUFJO1FBQ2IsSUFBSSxFQUFFLGtCQUFrQixDQUFDLE1BQU07UUFDL0IsSUFBSSxFQUFFLElBQUk7UUFDVixRQUFRLEVBQUUsQ0FBQztRQUNYLFFBQVEsRUFBRSxDQUFDO0tBQ2Q7Q0FDSixDQUFBO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FDekIsRUFBMEIsRUFDMUIsS0FBd0I7SUFFeEIsSUFBSSxLQUFLLENBQUMsT0FBTztRQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFBOztRQUN0QyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUM5QixFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN4QixFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN4QixFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQTBCO0lBQ3BELE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFpQixDQUFBO0lBQzVFLE9BQU87UUFDSCxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNsRCxRQUFRO1FBQ1IsUUFBUTtLQUNYLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FDMUIsRUFBMEIsRUFDMUIsS0FBd0IsRUFDeEIsTUFBa0I7SUFFbEIsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3RDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDeEIsSUFBSSxDQUFDO1FBQ0QsTUFBTSxFQUFFLENBQUE7SUFDWixDQUFDO1lBQVMsQ0FBQztRQUNQLGFBQWEsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDbkMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUMzQixFQUEwQixFQUMxQixPQUFPLEdBQUcsZ0JBQWdCO0lBRTFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQy9CLEtBQUssQ0FBQztRQUNGLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzlCO1lBQ0ksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO1lBQ2Y7Z0JBQ0ksS0FBSztnQkFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3BDLEdBQUc7Z0JBQ0gsYUFBYSxDQUFDLFlBQVksQ0FBQztnQkFDM0IsS0FBSzthQUNSO1lBQ0Q7Z0JBQ0ksZUFBZTtnQkFDZixhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDekIsS0FBSztnQkFDTCxlQUFlO2dCQUNmLEtBQUssQ0FBQyxJQUFJO2dCQUNWLEtBQUs7Z0JBQ0wsaUJBQWlCLEtBQUssQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFFBQVEsS0FBSzthQUMxRDtTQUNKO0tBQ0osQ0FBQyxDQUFBO0FBQ04sQ0FBQyJ9
@@ -0,0 +1,3 @@
1
+ export * from "./blend";
2
+ export * from "./depth";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from "./blend.js";
2
+ export * from "./depth.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvc3RhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxTQUFTLENBQUEifQ==
@@ -9,5 +9,5 @@ import { TgdTypeArrayForElements } from "../types";
9
9
  */
10
10
  export declare function webglElementTypeFromTypedArray(typedArray: TgdTypeArrayForElements): 5121 | 5123 | 5125;
11
11
  export declare function webglTypedArrayFromBufferSource(bufferSource: BufferSource, type: number): Int8Array | Uint8Array | Int16Array | Uint16Array | Uint32Array | Float32Array;
12
- export declare function webglLookup(type: number): string;
12
+ export declare function webglLookup(type: number): keyof WebGL2RenderingContext;
13
13
  //# sourceMappingURL=webgl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgl.d.ts","sourceRoot":"","sources":["../../src/utils/webgl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,uBAAuB,GACpC,IAAI,GAAG,IAAI,GAAG,IAAI,CAWpB;AAED,wBAAgB,+BAA+B,CAC3C,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,kFAwBf;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAQvC"}
1
+ {"version":3,"file":"webgl.d.ts","sourceRoot":"","sources":["../../src/utils/webgl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,uBAAuB,GACpC,IAAI,GAAG,IAAI,GAAG,IAAI,CAWpB;AAED,wBAAgB,+BAA+B,CAC3C,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,kFAwBf;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,sBAAsB,CAQtE"}
@@ -46,4 +46,4 @@ export function webglLookup(type) {
46
46
  }
47
47
  const canvas = document.createElement("canvas");
48
48
  const gl = canvas.getContext("webgl2");
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViZ2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvd2ViZ2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSw4QkFBOEIsQ0FDMUMsVUFBbUM7SUFFbkMsSUFBSSxVQUFVLFlBQVksVUFBVTtRQUNoQyxPQUFPLHNCQUFzQixDQUFDLGFBQWEsQ0FBQTtJQUMvQyxJQUFJLFVBQVUsWUFBWSxXQUFXO1FBQ2pDLE9BQU8sc0JBQXNCLENBQUMsY0FBYyxDQUFBO0lBQ2hELElBQUksVUFBVSxZQUFZLFdBQVc7UUFDakMsT0FBTyxzQkFBc0IsQ0FBQyxZQUFZLENBQUE7SUFFOUMsTUFBTSxLQUFLLENBQ1Asd0lBQXdJLENBQzNJLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLCtCQUErQixDQUMzQyxZQUEwQixFQUMxQixJQUFZO0lBRVosTUFBTSxNQUFNLEdBQ1IsWUFBWSxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFBO0lBQzVFLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDWCxLQUFLLElBQUksRUFBRSxPQUFPO1lBQ2QsT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNoQyxLQUFLLElBQUksRUFBRSxnQkFBZ0I7WUFDdkIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqQyxLQUFLLElBQUksRUFBRSxRQUFRO1lBQ2YsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqQyxLQUFLLElBQUksRUFBRSxpQkFBaUI7WUFDeEIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNsQyxLQUFLLElBQUksRUFBRSxlQUFlO1lBQ3RCLE9BQU8sSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbEMsS0FBSyxJQUFJLEVBQUUsUUFBUTtZQUNmLE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkM7WUFDSSxNQUFNLEtBQUssQ0FDUCxtREFBbUQsV0FBVyxDQUMxRCxJQUFJLENBQ1AsSUFBSSxDQUNSLENBQUE7SUFDVCxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUNwQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ0wsS0FBSyxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNuQixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBbUMsQ0FBQyxDQUFBO1lBQ25ELElBQUksR0FBRyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxHQUFHLENBQUE7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7QUFDL0MsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQSJ9
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViZ2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvd2ViZ2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSw4QkFBOEIsQ0FDMUMsVUFBbUM7SUFFbkMsSUFBSSxVQUFVLFlBQVksVUFBVTtRQUNoQyxPQUFPLHNCQUFzQixDQUFDLGFBQWEsQ0FBQTtJQUMvQyxJQUFJLFVBQVUsWUFBWSxXQUFXO1FBQ2pDLE9BQU8sc0JBQXNCLENBQUMsY0FBYyxDQUFBO0lBQ2hELElBQUksVUFBVSxZQUFZLFdBQVc7UUFDakMsT0FBTyxzQkFBc0IsQ0FBQyxZQUFZLENBQUE7SUFFOUMsTUFBTSxLQUFLLENBQ1Asd0lBQXdJLENBQzNJLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLCtCQUErQixDQUMzQyxZQUEwQixFQUMxQixJQUFZO0lBRVosTUFBTSxNQUFNLEdBQ1IsWUFBWSxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFBO0lBQzVFLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDWCxLQUFLLElBQUksRUFBRSxPQUFPO1lBQ2QsT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNoQyxLQUFLLElBQUksRUFBRSxnQkFBZ0I7WUFDdkIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqQyxLQUFLLElBQUksRUFBRSxRQUFRO1lBQ2YsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqQyxLQUFLLElBQUksRUFBRSxpQkFBaUI7WUFDeEIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNsQyxLQUFLLElBQUksRUFBRSxlQUFlO1lBQ3RCLE9BQU8sSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbEMsS0FBSyxJQUFJLEVBQUUsUUFBUTtZQUNmLE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkM7WUFDSSxNQUFNLEtBQUssQ0FDUCxtREFBbUQsV0FBVyxDQUMxRCxJQUFJLENBQ1AsSUFBSSxDQUNSLENBQUE7SUFDVCxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUNwQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ0wsS0FBSyxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNuQixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBbUMsQ0FBQyxDQUFBO1lBQ25ELElBQUksR0FBRyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxHQUFtQyxDQUFBO1FBQ2hFLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxHQUFHLElBQUksRUFBa0MsQ0FBQTtBQUNwRCxDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUMvQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBIn0=
@@ -3,15 +3,18 @@ import { TgdDataset } from "../dataset";
3
3
  import { TgdProgram, TgdTypeArrayForElements } from "../types";
4
4
  export declare class TgdVertexArray {
5
5
  readonly gl: WebGL2RenderingContext;
6
+ private readonly program?;
6
7
  private readonly datasets?;
8
+ private readonly elements?;
7
9
  readonly vao: WebGLVertexArrayObject;
8
10
  private readonly drawBuffers;
9
11
  private readonly elemBuffer;
10
- constructor(gl: WebGL2RenderingContext, program?: TgdProgram, datasets?: Readonly<TgdDataset>[] | undefined, elements?: TgdTypeArrayForElements);
12
+ constructor(gl: WebGL2RenderingContext, program?: TgdProgram | undefined, datasets?: Readonly<TgdDataset>[] | undefined, elements?: TgdTypeArrayForElements | undefined);
11
13
  getBuffer(index: number): TgdBuffer | undefined;
12
14
  toCode({ indent }?: Partial<{
13
15
  indent: string;
14
16
  }>): string;
17
+ debug(caption?: string): void;
15
18
  bind(): void;
16
19
  unbind(): void;
17
20
  delete(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"vao.d.ts","sourceRoot":"","sources":["../../src/vao/vao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEhE,qBAAa,cAAc;aAOH,EAAE,EAAE,sBAAsB;IAE1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAR9B,SAAgB,GAAG,EAAE,sBAAsB,CAAA;IAE3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;gBAGhC,EAAE,EAAE,sBAAsB,EAC1C,OAAO,CAAC,EAAE,UAAU,EACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAA,EAClD,QAAQ,CAAC,EAAE,uBAAuB;IA4BtC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI/C,MAAM,CAAC,EAAE,MAAW,EAAE,GAAE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAM;IAuBxD,IAAI;IAIJ,MAAM;IAIN,MAAM;CAMT"}
1
+ {"version":3,"file":"vao.d.ts","sourceRoot":"","sources":["../../src/vao/vao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEhE,qBAAa,cAAc;aAOH,EAAE,EAAE,sBAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAT9B,SAAgB,GAAG,EAAE,sBAAsB,CAAA;IAE3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;gBAGhC,EAAE,EAAE,sBAAsB,EACzB,OAAO,CAAC,EAAE,UAAU,YAAA,EACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAA,EACjC,QAAQ,CAAC,EAAE,uBAAuB,YAAA;IA4BvD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI/C,MAAM,CAAC,EAAE,MAAW,EAAE,GAAE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAM;IAuBxD,KAAK,CAAC,OAAO,SAAmB;IAWhC,IAAI;IAIJ,MAAM;IAIN,MAAM;CAMT"}
@@ -1,13 +1,17 @@
1
1
  import { TgdBuffer } from "./../buffer/index.js";
2
2
  export class TgdVertexArray {
3
3
  gl;
4
+ program;
4
5
  datasets;
6
+ elements;
5
7
  vao;
6
8
  drawBuffers = [];
7
9
  elemBuffer = null;
8
10
  constructor(gl, program, datasets, elements) {
9
11
  this.gl = gl;
12
+ this.program = program;
10
13
  this.datasets = datasets;
14
+ this.elements = elements;
11
15
  const vao = gl.createVertexArray();
12
16
  if (!vao)
13
17
  throw Error("Unable to create VertexArrayObject!");
@@ -53,6 +57,16 @@ export class TgdVertexArray {
53
57
  lines.push(" return vao", "}");
54
58
  return lines.map(line => `${indent}${line}`).join("\n");
55
59
  }
60
+ debug(caption = "TgdVertexArray") {
61
+ console.log(caption);
62
+ if (this.program)
63
+ this.program.debug();
64
+ if (this.datasets) {
65
+ this.datasets.forEach((dataset, index) => dataset.debug(` Dataset #${index}`));
66
+ }
67
+ if (this.elements)
68
+ console.log("Elements:", this.elements);
69
+ }
56
70
  bind() {
57
71
  this.gl.bindVertexArray(this.vao);
58
72
  }
@@ -67,4 +81,4 @@ export class TgdVertexArray {
67
81
  elemBuffer.delete();
68
82
  }
69
83
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Zhby92YW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUl2QyxNQUFNLE9BQU8sY0FBYztJQU9IO0lBRUM7SUFSTCxHQUFHLENBQXdCO0lBRTFCLFdBQVcsR0FBZ0IsRUFBRSxDQUFBO0lBQzdCLFVBQVUsR0FBcUIsSUFBSSxDQUFBO0lBRXBELFlBQ29CLEVBQTBCLEVBQzFDLE9BQW9CLEVBQ0gsUUFBaUMsRUFDbEQsUUFBa0M7UUFIbEIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUFFekIsYUFBUSxHQUFSLFFBQVEsQ0FBeUI7UUFHbEQsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDbEMsSUFBSSxDQUFDLEdBQUc7WUFBRSxNQUFNLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO1FBRTVELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1FBQ2QsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBRWpDLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFO2dCQUMzQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07Z0JBQ3RCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSzthQUN2QixDQUFDLENBQUE7WUFDRixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDYixPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ3JDLE9BQU8sTUFBTSxDQUFBO1FBQ2pCLENBQUMs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
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Zhby92YW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUl2QyxNQUFNLE9BQU8sY0FBYztJQU9IO0lBQ0M7SUFDQTtJQUNBO0lBVEwsR0FBRyxDQUF3QjtJQUUxQixXQUFXLEdBQWdCLEVBQUUsQ0FBQTtJQUM3QixVQUFVLEdBQXFCLElBQUksQ0FBQTtJQUVwRCxZQUNvQixFQUEwQixFQUN6QixPQUFvQixFQUNwQixRQUFpQyxFQUNqQyxRQUFrQztRQUhuQyxPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQXlCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBRW5ELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxHQUFHO1lBQUUsTUFBTSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQTtRQUU1RCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQTtRQUNkLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUVqQyxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRTtnQkFDM0MsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFBO1lBQ0YsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ2IsT0FBTyxDQUFDLGdCQUFn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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tolokoban/tgd",
3
- "version": "2.0.12",
3
+ "version": "2.0.13",
4
4
  "description": "ToloGameDev library for WebGL2",
5
5
  "homepage": "https://tolokoban.github.io/tgd2",
6
6
  "main": "./lib/dist/index.js",