@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.
- package/lib/dist/camera/camera-node.d.ts +16 -0
- package/lib/dist/camera/camera-node.d.ts.map +1 -0
- package/lib/dist/camera/camera-node.js +18 -0
- package/lib/dist/camera/camera.d.ts +1 -0
- package/lib/dist/camera/camera.d.ts.map +1 -1
- package/lib/dist/camera/camera.js +18 -3
- package/lib/dist/camera/index.d.ts +1 -0
- package/lib/dist/camera/index.d.ts.map +1 -1
- package/lib/dist/camera/index.js +2 -1
- package/lib/dist/context/animation/animation-manager.d.ts.map +1 -1
- package/lib/dist/context/animation/animation-manager.js +9 -1
- package/lib/dist/context/context.d.ts +1 -0
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +2 -2
- package/lib/dist/dataset/dataset.d.ts +7 -0
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +32 -2
- package/lib/dist/debug/debug.d.ts +8 -0
- package/lib/dist/debug/debug.d.ts.map +1 -0
- package/lib/dist/debug/debug.js +32 -0
- package/lib/dist/debug/index.d.ts +3 -0
- package/lib/dist/debug/index.d.ts.map +1 -0
- package/lib/dist/debug/index.js +3 -0
- package/lib/dist/debug/tools.d.ts +2 -0
- package/lib/dist/debug/tools.d.ts.map +1 -0
- package/lib/dist/debug/tools.js +13 -0
- package/lib/dist/geometry/box.d.ts +2 -0
- package/lib/dist/geometry/box.d.ts.map +1 -1
- package/lib/dist/geometry/box.js +10 -1
- package/lib/dist/loader/binary.d.ts +4 -0
- package/lib/dist/loader/binary.d.ts.map +1 -0
- package/lib/dist/loader/binary.js +25 -0
- package/lib/dist/loader/image.d.ts +7 -9
- package/lib/dist/loader/image.d.ts.map +1 -1
- package/lib/dist/loader/image.js +31 -33
- package/lib/dist/loader/index.d.ts +1 -1
- package/lib/dist/loader/index.d.ts.map +1 -1
- package/lib/dist/loader/index.js +2 -2
- package/lib/dist/material/diffuse.d.ts.map +1 -1
- package/lib/dist/material/diffuse.js +3 -2
- package/lib/dist/math/mat4.d.ts +7 -2
- package/lib/dist/math/mat4.d.ts.map +1 -1
- package/lib/dist/math/mat4.js +21 -4
- package/lib/dist/math/quat.d.ts +5 -0
- package/lib/dist/math/quat.d.ts.map +1 -1
- package/lib/dist/math/quat.js +62 -3
- package/lib/dist/math/transfo.d.ts +5 -0
- package/lib/dist/math/transfo.d.ts.map +1 -1
- package/lib/dist/math/transfo.js +25 -1
- package/lib/dist/math/vec3.d.ts +3 -2
- package/lib/dist/math/vec3.d.ts.map +1 -1
- package/lib/dist/math/vec3.js +8 -5
- package/lib/dist/painter/mesh/gltf/gltf.js +3 -3
- package/lib/dist/painter/node.d.ts +6 -0
- package/lib/dist/painter/node.d.ts.map +1 -1
- package/lib/dist/painter/node.js +7 -1
- package/lib/dist/painter/state/state.d.ts +9 -10
- package/lib/dist/painter/state/state.d.ts.map +1 -1
- package/lib/dist/painter/state/state.js +23 -25
- package/lib/dist/painter/state.d.ts +31 -37
- package/lib/dist/painter/state.d.ts.map +1 -1
- package/lib/dist/painter/state.js +1 -1
- package/lib/dist/program/program.d.ts +3 -1
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +25 -7
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +3 -3
- package/lib/dist/texture/textureCube.js +3 -3
- package/lib/dist/tools.d.ts +2 -0
- package/lib/dist/tools.d.ts.map +1 -0
- package/lib/dist/tools.js +13 -0
- package/lib/dist/types/animation.d.ts +4 -0
- package/lib/dist/types/animation.d.ts.map +1 -1
- package/lib/dist/types/mesh.d.ts +2 -3
- package/lib/dist/types/mesh.d.ts.map +1 -1
- package/lib/dist/types/program.d.ts +3 -1
- package/lib/dist/types/program.d.ts.map +1 -1
- package/lib/dist/types/webgl.d.ts +127 -0
- package/lib/dist/types/webgl.d.ts.map +1 -1
- package/lib/dist/types/webgl.js +132 -2
- package/lib/dist/utils/bbox.d.ts +15 -0
- package/lib/dist/utils/bbox.d.ts.map +1 -0
- package/lib/dist/utils/bbox.js +31 -0
- package/lib/dist/utils/bbox.test.d.ts +2 -0
- package/lib/dist/utils/bbox.test.d.ts.map +1 -0
- package/lib/dist/utils/bbox.test.js +46 -0
- package/lib/dist/utils/index.d.ts +2 -0
- package/lib/dist/utils/index.d.ts.map +1 -1
- package/lib/dist/utils/index.js +3 -1
- package/lib/dist/utils/state/blend.d.ts +16 -0
- package/lib/dist/utils/state/blend.d.ts.map +1 -0
- package/lib/dist/utils/state/blend.js +84 -0
- package/lib/dist/utils/state/cull.d.ts +11 -0
- package/lib/dist/utils/state/cull.d.ts.map +1 -0
- package/lib/dist/utils/state/cull.js +50 -0
- package/lib/dist/utils/state/depth.d.ts +14 -0
- package/lib/dist/utils/state/depth.d.ts.map +1 -0
- package/lib/dist/utils/state/depth.js +81 -0
- package/lib/dist/utils/state/index.d.ts +3 -0
- package/lib/dist/utils/state/index.d.ts.map +1 -0
- package/lib/dist/utils/state/index.js +3 -0
- package/lib/dist/utils/webgl.d.ts +1 -1
- package/lib/dist/utils/webgl.d.ts.map +1 -1
- package/lib/dist/utils/webgl.js +1 -1
- package/lib/dist/vao/vao.d.ts +4 -1
- package/lib/dist/vao/vao.d.ts.map +1 -1
- package/lib/dist/vao/vao.js +15 -1
- 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 @@
|
|
|
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"}
|
package/lib/dist/utils/index.js
CHANGED
|
@@ -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,
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvc3RhdGUvYmxlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFZdkUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBRXpCO0lBQ0EsR0FBRyxFQUFFO1FBQ0QsT0FBTyxFQUFFLEtBQUs7UUFDZCxhQUFhLEVBQUUsc0JBQXNCLENBQUMsUUFBUTtRQUM5QyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsUUFBUTtRQUM5QyxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTO1FBQzlDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLG1CQUFtQjtRQUN4RCxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxHQUFHO1FBQ3hDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLElBQUk7S0FDNUM7SUFDRCxLQUFLLEVBQUU7UUFDSCxPQUFPLEVBQUUsSUFBSTtRQUNiLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxRQUFRO1FBQzlDLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxRQUFRO1FBQzlDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLFNBQVM7UUFDOUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsbUJBQW1CO1FBQ3hELGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLEdBQUc7UUFDeEMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsSUFBSTtLQUM1QztDQUNKLENBQUE7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUN6QixFQUEwQixFQUMxQixLQUF3QjtJQUV4QixJQUFJLEtBQUssQ0FBQyxPQUFPO1FBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7O1FBQ2pDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNsRSxFQUFFLENBQUMsaUJBQWlCLENBQ2hCLEtBQUssQ0FBQyxnQkFBZ0IsRUFDdEIsS0FBSyxDQUFDLGdCQUFnQixFQUN0QixLQUFLLENBQUMsZ0JBQWdCLEVBQ3RCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDekIsQ0FBQTtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQTBCO0lBQ3BELE9BQU87UUFDSCxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLGFBQWEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBVztRQUNqRSxhQUFhLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQVc7UUFDL0QsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFXO1FBQy9ELGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBVztRQUMvRCxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQVc7UUFDN0QsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFXO0tBQ2xFLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FDMUIsRUFBMEIsRUFDMUIsS0FBd0IsRUFDeEIsTUFBa0I7SUFFbEIsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3RDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDeEIsSUFBSSxDQUFDO1FBQ0QsTUFBTSxFQUFFLENBQUE7SUFDWixDQUFDO1lBQVMsQ0FBQztRQUNQLGFBQWEsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDbkMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUMzQixFQUEwQixFQUMxQixPQUFPLEdBQUcsZ0JBQWdCO0lBRTFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQy9CLEtBQUssQ0FBQztRQUNGLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzlCO1lBQ0ksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO1lBQ2Y7Z0JBQ0ksS0FBSztnQkFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3BDLEdBQUc7Z0JBQ0gsYUFBYSxDQUFDLE9BQU8sQ0FBQztnQkFDdEIsS0FBSzthQUNSO1lBQ0Q7Z0JBQ0ksMkJBQTJCO2dCQUMzQixhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztnQkFDbEMsSUFBSTtnQkFDSixhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztnQkFDbEMsS0FBSzthQUNSO1lBQ0Q7Z0JBQ0kseUJBQXlCO2dCQUN6QixDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxDQUFDO2dCQUN0RCxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxDQUFDO2dCQUN0RCxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxDQUFDO2dCQUN0RCxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxDQUFDO2dCQUNyRCxLQUFLO2FBQ1I7U0FDSjtLQUNKLENBQUMsQ0FBQTtBQUNOLENBQUMifQ==
|
|
@@ -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 @@
|
|
|
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):
|
|
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,
|
|
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"}
|
package/lib/dist/utils/webgl.js
CHANGED
|
@@ -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,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViZ2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvd2ViZ2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSw4QkFBOEIsQ0FDMUMsVUFBbUM7SUFFbkMsSUFBSSxVQUFVLFlBQVksVUFBVTtRQUNoQyxPQUFPLHNCQUFzQixDQUFDLGFBQWEsQ0FBQTtJQUMvQyxJQUFJLFVBQVUsWUFBWSxXQUFXO1FBQ2pDLE9BQU8sc0JBQXNCLENBQUMsY0FBYyxDQUFBO0lBQ2hELElBQUksVUFBVSxZQUFZLFdBQVc7UUFDakMsT0FBTyxzQkFBc0IsQ0FBQyxZQUFZLENBQUE7SUFFOUMsTUFBTSxLQUFLLENBQ1Asd0lBQXdJLENBQzNJLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLCtCQUErQixDQUMzQyxZQUEwQixFQUMxQixJQUFZO0lBRVosTUFBTSxNQUFNLEdBQ1IsWUFBWSxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFBO0lBQzVFLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDWCxLQUFLLElBQUksRUFBRSxPQUFPO1lBQ2QsT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNoQyxLQUFLLElBQUksRUFBRSxnQkFBZ0I7WUFDdkIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqQyxLQUFLLElBQUksRUFBRSxRQUFRO1lBQ2YsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqQyxLQUFLLElBQUksRUFBRSxpQkFBaUI7WUFDeEIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNsQyxLQUFLLElBQUksRUFBRSxlQUFlO1lBQ3RCLE9BQU8sSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbEMsS0FBSyxJQUFJLEVBQUUsUUFBUTtZQUNmLE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkM7WUFDSSxNQUFNLEtBQUssQ0FDUCxtREFBbUQsV0FBVyxDQUMxRCxJQUFJLENBQ1AsSUFBSSxDQUNSLENBQUE7SUFDVCxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUNwQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ0wsS0FBSyxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNuQixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBbUMsQ0FBQyxDQUFBO1lBQ25ELElBQUksR0FBRyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxHQUFtQyxDQUFBO1FBQ2hFLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxHQUFHLElBQUksRUFBa0MsQ0FBQTtBQUNwRCxDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUMvQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBIn0=
|
package/lib/dist/vao/vao.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/dist/vao/vao.js
CHANGED
|
@@ -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,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Zhby92YW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUl2QyxNQUFNLE9BQU8sY0FBYztJQU9IO0lBQ0M7SUFDQTtJQUNBO0lBVEwsR0FBRyxDQUF3QjtJQUUxQixXQUFXLEdBQWdCLEVBQUUsQ0FBQTtJQUM3QixVQUFVLEdBQXFCLElBQUksQ0FBQTtJQUVwRCxZQUNvQixFQUEwQixFQUN6QixPQUFvQixFQUNwQixRQUFpQyxFQUNqQyxRQUFrQztRQUhuQyxPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQXlCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBRW5ELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxHQUFHO1lBQUUsTUFBTSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQTtRQUU1RCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQTtRQUNkLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUVqQyxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRTtnQkFDM0MsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFBO1lBQ0YsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ2IsT0FBTyxDQUFDLGdCQUFn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
|