@tolokoban/tgd 2.0.29 → 2.0.30
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/canvas/gizmo/gizmo.js +2 -2
- package/lib/dist/canvas/landscape/landscape.js +2 -2
- package/lib/dist/context/context.d.ts +14 -31
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +54 -69
- package/lib/dist/factory/mesh-glb.js +2 -2
- package/lib/dist/geometry/gltf.d.ts +12 -0
- package/lib/dist/geometry/gltf.d.ts.map +1 -0
- package/lib/dist/geometry/gltf.js +36 -0
- package/lib/dist/geometry/index.d.ts +1 -0
- package/lib/dist/geometry/index.d.ts.map +1 -1
- package/lib/dist/geometry/index.js +2 -1
- package/lib/dist/geometry/tools/marching-cubes/marching-cubes.js +15 -5
- package/lib/dist/index.d.ts +1 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +2 -1
- package/lib/dist/loader/binary.d.ts.map +1 -1
- package/lib/dist/loader/binary.js +3 -1
- package/lib/dist/material/face-orientation.d.ts +4 -0
- package/lib/dist/material/face-orientation.d.ts.map +1 -1
- package/lib/dist/material/face-orientation.js +6 -2
- package/lib/dist/material/ghost.d.ts +2 -2
- package/lib/dist/material/ghost.d.ts.map +1 -1
- package/lib/dist/material/ghost.js +1 -1
- package/lib/dist/material/hull.d.ts +14 -1
- package/lib/dist/material/hull.d.ts.map +1 -1
- package/lib/dist/material/hull.js +18 -6
- package/lib/dist/material/index.d.ts +1 -0
- package/lib/dist/material/index.d.ts.map +1 -1
- package/lib/dist/material/index.js +2 -1
- package/lib/dist/material/material.d.ts +7 -2
- package/lib/dist/material/material.d.ts.map +1 -1
- package/lib/dist/material/material.js +9 -1
- package/lib/dist/material/toon.d.ts +38 -0
- package/lib/dist/material/toon.d.ts.map +1 -0
- package/lib/dist/material/toon.js +95 -0
- package/lib/dist/math/mat4.d.ts +1 -0
- package/lib/dist/math/mat4.d.ts.map +1 -1
- package/lib/dist/math/mat4.js +18 -1
- package/lib/dist/math/transfo.d.ts.map +1 -1
- package/lib/dist/math/transfo.js +13 -4
- package/lib/dist/painter/axes/axes.d.ts +4 -0
- package/lib/dist/painter/axes/axes.d.ts.map +1 -1
- package/lib/dist/painter/axes/axes.js +14 -1
- package/lib/dist/painter/framebuffer-msaa.d.ts +87 -0
- package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -0
- package/lib/dist/painter/framebuffer-msaa.js +241 -0
- package/lib/dist/painter/framebuffer.js +11 -5
- package/lib/dist/painter/group.d.ts +9 -3
- package/lib/dist/painter/group.d.ts.map +1 -1
- package/lib/dist/painter/group.js +42 -4
- package/lib/dist/painter/index.d.ts +3 -1
- package/lib/dist/painter/index.d.ts.map +1 -1
- package/lib/dist/painter/index.js +4 -2
- package/lib/dist/painter/mesh/gltf/gltf.d.ts +2 -2
- package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.js +6 -4
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +22 -16
- package/lib/dist/painter/node/node.d.ts +1 -1
- package/lib/dist/painter/node/node.d.ts.map +1 -1
- package/lib/dist/painter/node/node.js +1 -1
- package/lib/dist/painter/painter.d.ts +2 -2
- package/lib/dist/painter/painter.d.ts.map +1 -1
- package/lib/dist/painter/painter.js +2 -2
- package/lib/dist/painter/segments/capsule.d.ts +11 -0
- package/lib/dist/painter/segments/capsule.d.ts.map +1 -0
- package/lib/dist/painter/segments/capsule.js +109 -0
- package/lib/dist/painter/segments/segments.d.ts +22 -27
- package/lib/dist/painter/segments/segments.d.ts.map +1 -1
- package/lib/dist/painter/segments/segments.js +134 -139
- package/lib/dist/painter/segments.backup/index.d.ts +2 -0
- package/lib/dist/painter/segments.backup/index.d.ts.map +1 -0
- package/lib/dist/painter/segments.backup/index.js +2 -0
- package/lib/dist/painter/segments.backup/segments.d.ts +95 -0
- package/lib/dist/painter/segments.backup/segments.d.ts.map +1 -0
- package/lib/dist/painter/segments.backup/segments.frag +22 -0
- package/lib/dist/painter/segments.backup/segments.js +223 -0
- package/lib/dist/painter/segments.backup/segments.vert +121 -0
- package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
- package/lib/dist/painter/skybox/skybox.js +4 -3
- package/lib/dist/painter/x-ray/index.d.ts +2 -0
- package/lib/dist/painter/x-ray/index.d.ts.map +1 -0
- package/lib/dist/painter/x-ray/index.js +2 -0
- package/lib/dist/painter/x-ray/x-ray.d.ts +20 -0
- package/lib/dist/painter/x-ray/x-ray.d.ts.map +1 -0
- package/lib/dist/painter/x-ray/x-ray.js +60 -0
- package/lib/dist/parser/gltf/gltf.d.ts +4 -4
- package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/parser/gltf/gltf.js +29 -17
- package/lib/dist/program/program.js +2 -2
- package/lib/dist/sound.d.ts +8 -0
- package/lib/dist/sound.d.ts.map +1 -0
- package/lib/dist/sound.js +43 -0
- package/lib/dist/texture/texture-cube.d.ts +2 -3
- package/lib/dist/texture/texture-cube.d.ts.map +1 -1
- package/lib/dist/texture/texture-cube.js +14 -19
- package/lib/dist/texture/texture2d.d.ts +3 -2
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +56 -19
- package/lib/dist/utils/action/camera.d.ts.map +1 -1
- package/lib/dist/utils/action/camera.js +1 -2
- package/lib/dist/utils/framebuffer.d.ts +1 -0
- package/lib/dist/utils/framebuffer.d.ts.map +1 -1
- package/lib/dist/utils/framebuffer.js +19 -1
- package/lib/dist/webgl/texture/texture2d.js +3 -3
- package/package.json +1 -1
|
@@ -43,13 +43,12 @@ export class TgdTexture2D {
|
|
|
43
43
|
}
|
|
44
44
|
createTexture() {
|
|
45
45
|
this.delete();
|
|
46
|
-
const
|
|
46
|
+
const { gl } = this;
|
|
47
|
+
const texture = gl.createTexture();
|
|
47
48
|
if (!texture)
|
|
48
49
|
throw new Error("Unable to create a WebGLTexture!");
|
|
49
|
-
const { gl } = this;
|
|
50
|
-
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, this.storage.flipY);
|
|
51
|
-
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.storage.premultipliedAlpha);
|
|
52
50
|
this._texture = texture;
|
|
51
|
+
this.bind();
|
|
53
52
|
this.setParams(this.params);
|
|
54
53
|
}
|
|
55
54
|
resize(width, height) {
|
|
@@ -61,9 +60,6 @@ export class TgdTexture2D {
|
|
|
61
60
|
this._height = height;
|
|
62
61
|
storage.width = width;
|
|
63
62
|
storage.height = height;
|
|
64
|
-
this.bind();
|
|
65
|
-
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, this.storage.flipY);
|
|
66
|
-
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.storage.premultipliedAlpha);
|
|
67
63
|
const { internalFormat, levels } = this.storage;
|
|
68
64
|
if (internalFormat.startsWith("COMPRESSED_")) {
|
|
69
65
|
// We need to load an extension for that.
|
|
@@ -71,14 +67,25 @@ export class TgdTexture2D {
|
|
|
71
67
|
if (!extension)
|
|
72
68
|
throw new Error('Your browser does not support extension "WEBGL_compressed_texture_etc" on this device!');
|
|
73
69
|
}
|
|
70
|
+
this.bind();
|
|
71
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, this.storage.flipY);
|
|
72
|
+
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.storage.premultipliedAlpha);
|
|
74
73
|
gl.texStorage2D(gl.TEXTURE_2D, levels, gl[internalFormat], width, height);
|
|
75
|
-
this.checkError()
|
|
74
|
+
this.checkError(`resize(${width}, ${height})
|
|
75
|
+
gl.texStorage2D(
|
|
76
|
+
gl.TEXTURE_2D,
|
|
77
|
+
${levels},
|
|
78
|
+
gl.${internalFormat},
|
|
79
|
+
${width},
|
|
80
|
+
${height}
|
|
81
|
+
)`);
|
|
82
|
+
this.unbind();
|
|
76
83
|
}
|
|
77
|
-
checkError() {
|
|
84
|
+
checkError(caption) {
|
|
78
85
|
const { gl } = this;
|
|
79
86
|
const error = gl.getError();
|
|
80
87
|
if (error !== gl.NO_ERROR) {
|
|
81
|
-
console.error(`[TgdTexture2D::${this.name}] Error:`, webglLookup(error));
|
|
88
|
+
console.error(`[TgdTexture2D::${this.name}] Error in ${caption}:`, webglLookup(error), this);
|
|
82
89
|
}
|
|
83
90
|
}
|
|
84
91
|
get glTexture() {
|
|
@@ -89,6 +96,9 @@ export class TgdTexture2D {
|
|
|
89
96
|
bind() {
|
|
90
97
|
this.gl.bindTexture(this.gl.TEXTURE_2D, this.glTexture);
|
|
91
98
|
}
|
|
99
|
+
unbind() {
|
|
100
|
+
this.gl.bindTexture(this.gl.TEXTURE_2D, null);
|
|
101
|
+
}
|
|
92
102
|
loadBitmap(bmp, options = {}) {
|
|
93
103
|
var _a, _b, _c;
|
|
94
104
|
if (!bmp)
|
|
@@ -105,12 +115,21 @@ export class TgdTexture2D {
|
|
|
105
115
|
this._width = bmp.width;
|
|
106
116
|
this._height = bmp.height;
|
|
107
117
|
this.bind();
|
|
118
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, this.storage.flipY);
|
|
119
|
+
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.storage.premultipliedAlpha);
|
|
108
120
|
gl.texImage2D(gl.TEXTURE_2D, level, gl[storage.internalFormat], gl[figureOutCompatibleFormat(storage.internalFormat)], gl.UNSIGNED_BYTE, bmp);
|
|
109
|
-
this.checkError(
|
|
121
|
+
this.checkError(`loadBitmap(${JSON.stringify({
|
|
122
|
+
width: bmp.width,
|
|
123
|
+
height: bmp.height,
|
|
124
|
+
})})\ngl.texImage2D(gl.TEXTURE_2D, ${level}, gl.${storage.internalFormat}, gl.${figureOutCompatibleFormat(storage.internalFormat)}, gl.UNSIGNED_BYTE, bmp)`);
|
|
110
125
|
if (options.generateMipmap) {
|
|
111
126
|
this.generateMipmap();
|
|
112
|
-
this.checkError(
|
|
127
|
+
this.checkError(`loadBitmap(${JSON.stringify({
|
|
128
|
+
width: bmp.width,
|
|
129
|
+
height: bmp.height,
|
|
130
|
+
})})\ngl.texImage2D(gl.TEXTURE_2D, ${level}, gl.${storage.internalFormat}, gl.${figureOutCompatibleFormat(storage.internalFormat)}, gl.UNSIGNED_BYTE, bmp)\ngenerateMipmap()`);
|
|
113
131
|
}
|
|
132
|
+
this.unbind();
|
|
114
133
|
(_b = (_a = this.context).paint) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
115
134
|
(_c = options.onLoad) === null || _c === void 0 ? void 0 : _c.call(options);
|
|
116
135
|
this.eventChange.dispatch(this);
|
|
@@ -122,10 +141,13 @@ export class TgdTexture2D {
|
|
|
122
141
|
} = options;
|
|
123
142
|
const { gl } = this;
|
|
124
143
|
this.bind();
|
|
144
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, this.storage.flipY);
|
|
145
|
+
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.storage.premultipliedAlpha);
|
|
125
146
|
gl.texImage2D(gl.TEXTURE_2D, level, gl[internalFormat], width, height, 0, gl[format], gl.UNSIGNED_BYTE, data
|
|
126
147
|
// offset
|
|
127
148
|
);
|
|
128
|
-
this.checkError();
|
|
149
|
+
this.checkError(`loadData(${printArray(data)}, ${JSON.stringify(options)})`);
|
|
150
|
+
this.unbind();
|
|
129
151
|
this.eventChange.dispatch(this);
|
|
130
152
|
return this;
|
|
131
153
|
}
|
|
@@ -133,7 +155,7 @@ export class TgdTexture2D {
|
|
|
133
155
|
*
|
|
134
156
|
* @param unit Unit to link the texture to
|
|
135
157
|
* @param program The program that owns the uniform to update
|
|
136
|
-
* @param uniformName The uniform that
|
|
158
|
+
* @param uniformName The uniform that holds the texture
|
|
137
159
|
*/
|
|
138
160
|
activate(unit, program, uniformName) {
|
|
139
161
|
const { gl } = this;
|
|
@@ -148,38 +170,47 @@ export class TgdTexture2D {
|
|
|
148
170
|
const { gl } = this;
|
|
149
171
|
this.bind();
|
|
150
172
|
gl.generateMipmap(gl.TEXTURE_2D);
|
|
173
|
+
this.unbind();
|
|
151
174
|
return this;
|
|
152
175
|
}
|
|
153
176
|
setParams(parameters) {
|
|
154
177
|
this.bind();
|
|
155
178
|
webglTextureParametersSet(this.gl, parameters);
|
|
156
179
|
this.params = Object.assign(Object.assign({}, this.params), parameters);
|
|
180
|
+
this.unbind();
|
|
157
181
|
return this;
|
|
158
182
|
}
|
|
159
183
|
set textureBaseLevel(value) {
|
|
160
184
|
const { gl } = this;
|
|
161
185
|
this.bind();
|
|
162
186
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_BASE_LEVEL, value);
|
|
187
|
+
this.unbind();
|
|
163
188
|
}
|
|
164
189
|
get textureBaseLevel() {
|
|
165
190
|
const { gl } = this;
|
|
166
191
|
this.bind();
|
|
167
|
-
|
|
192
|
+
const value = gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_BASE_LEVEL);
|
|
193
|
+
this.unbind();
|
|
194
|
+
return value;
|
|
168
195
|
}
|
|
169
196
|
set textureMaxLevel(value) {
|
|
170
197
|
const { gl } = this;
|
|
171
198
|
this.bind();
|
|
172
199
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAX_LEVEL, value);
|
|
200
|
+
this.unbind();
|
|
173
201
|
}
|
|
174
202
|
get textureMaxLevel() {
|
|
175
203
|
const { gl } = this;
|
|
176
204
|
this.bind();
|
|
177
|
-
|
|
205
|
+
const value = gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_MAX_LEVEL);
|
|
206
|
+
this.unbind();
|
|
207
|
+
return value;
|
|
178
208
|
}
|
|
179
209
|
getParameter(parameter) {
|
|
180
|
-
const { gl
|
|
181
|
-
|
|
210
|
+
const { gl } = this;
|
|
211
|
+
this.bind();
|
|
182
212
|
const value = gl.getTexParameter(gl.TEXTURE_2D, gl[parameter]);
|
|
213
|
+
this.unbind();
|
|
183
214
|
return value;
|
|
184
215
|
}
|
|
185
216
|
debug(title) {
|
|
@@ -256,4 +287,10 @@ function figureOutCompatibleFormat(internalFormat) {
|
|
|
256
287
|
}
|
|
257
288
|
throw new Error(`There is no compatible format for internalFormat "${internalFormat}" and type "UNSIGNED_BYTE"!`);
|
|
258
289
|
}
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZTJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RleHR1cmUvdGV4dHVyZTJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQWlDLE1BQU0sWUFBWSxDQUFBO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUdILHlCQUF5QixHQUM1QixNQUFNLFlBQVksQ0FBQTtBQWdEbkIsTUFBTSxPQUFPLFlBQVk7SUFtQnJCLFlBQ3FCLE9BR2hCLEVBQ0QsT0FBc0M7UUFKckIsWUFBTyxHQUFQLE9BQU8sQ0FHdkI7UUFwQlcsZ0JBQVcsR0FBRyxJQUFJLFFBQVEsRUFBZ0IsQ0FBQTtRQUVsRCxhQUFRLEdBQXdCLElBQUksQ0FBQTtRQUNwQyxXQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDWCxZQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFFWixXQUFNLEdBQTJCO1lBQ3JDLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsUUFBUTtTQUNsQixDQUFBO1FBV0csTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQTtRQUNqRCxJQUFJLENBQUMsT0FBTyxtQkFDUixLQUFLLEVBQUUsQ0FBQyxFQUNSLE1BQU0sRUFBRSxDQUFDLEVBQ1QsY0FBYyxFQUFFLE9BQU8sRUFDdkIsTUFBTSxFQUFFLENB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
|
|
290
|
+
function printArray(data) {
|
|
291
|
+
if (data.length > 10) {
|
|
292
|
+
return `[${data.slice(0, 10).join(", ")}, ...] (${data.length} elements)`;
|
|
293
|
+
}
|
|
294
|
+
return JSON.stringify(data);
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZTJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RleHR1cmUvdGV4dHVyZTJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQWlDLE1BQU0sWUFBWSxDQUFBO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUdILHlCQUF5QixHQUM1QixNQUFNLFlBQVksQ0FBQTtBQWdEbkIsTUFBTSxPQUFPLFlBQVk7SUFtQnJCLFlBQ3FCLE9BR2hCLEVBQ0QsT0FBc0M7UUFKckIsWUFBTyxHQUFQLE9BQU8sQ0FHdkI7UUFwQlcsZ0JBQVcsR0FBRyxJQUFJLFFBQVEsRUFBZ0IsQ0FBQTtRQUVsRCxhQUFRLEdBQXdCLElBQUksQ0FBQTtRQUNwQyxXQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDWCxZQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFFWixXQUFNLEdBQTJCO1lBQ3JDLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsUUFBUTtTQUNsQixDQUFBO1FBV0csTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQTtRQUNqRCxJQUFJLENBQUMsT0FBTyxtQkFDUixLQUFLLEVBQUUsQ0FBQyxFQUNSLE1BQU0sRUFBRSxDQUFDLEVBQ1QsY0FBYyxFQUFFLE9BQU8sRUFDdkIsTUFBTSxFQUFFLENB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../src/utils/action/camera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAKvD,wBAAgB,kCAAkC,CAC9C,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../src/utils/action/camera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAKvD,wBAAgB,kCAAkC,CAC9C,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,IAgB5B,GAAG,MAAM,UAWpB"}
|
|
@@ -4,7 +4,6 @@ import { tgdActionCreateTransfoInterpolation } from "./transfo.js";
|
|
|
4
4
|
export function tgdActionCreateCameraInterpolation(camera, destination) {
|
|
5
5
|
var _a, _b;
|
|
6
6
|
const transfoDestination = new TgdTransfo(camera.transfo).from(destination);
|
|
7
|
-
transfoDestination.debug();
|
|
8
7
|
if (typeof destination.distance === "number")
|
|
9
8
|
transfoDestination.distance = destination.distance;
|
|
10
9
|
const beginZoom = camera.zoom;
|
|
@@ -20,4 +19,4 @@ export function tgdActionCreateCameraInterpolation(camera, destination) {
|
|
|
20
19
|
camera.zoom = tgdCalcMix(beginZoom, endZoom, t);
|
|
21
20
|
};
|
|
22
21
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2FjdGlvbi9jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUUvRCxNQUFNLFVBQVUsa0NBQWtDLENBQzlDLE1BQWlCLEVBQ2pCLFdBQW9DOztJQUVwQyxNQUFNLGtCQUFrQixHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDM0UsSUFBSSxPQUFPLFdBQVcsQ0FBQyxRQUFRLEtBQUssUUFBUTtRQUN4QyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQTtJQUN0RCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFBO0lBQzdCLE1BQU0sT0FBTyxHQUFHLE1BQUEsV0FBVyxDQUFDLElBQUksbUNBQUksU0FBUyxDQUFBO0lBQzdDLE1BQU0sTUFBTSxHQUFHLG1DQUFtQyxDQUM5QyxNQUFNLENBQUMsT0FBTyxFQUNkLEVBQUUsRUFDRixrQkFBa0IsQ0FDckIsQ0FBQTtJQUNELE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFBO0lBQzNELE1BQU0sc0JBQXNCLEdBQ3hCLE1BQUEsV0FBVyxDQUFDLG1CQUFtQixtQ0FBSSxNQUFNLENBQUMsbUJBQW1CLENBQUE7SUFFakUsT0FBTyxDQUFDLENBQVMsRUFBRSxFQUFFO1FBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNULElBQUksT0FBTyxXQUFXLENBQUMsbUJBQW1CLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdEQsTUFBTSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FDbkMsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixDQUFDLENBQ0osQ0FBQTtRQUNMLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ25ELENBQUMsQ0FBQTtBQUNMLENBQUMifQ==
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export declare function webglCreateFramebuffer(gl: WebGL2RenderingContext): WebGLFramebuffer;
|
|
2
|
+
export declare function webglRenderbufferStorageMultisample(gl: WebGL2RenderingContext, samples: number, internalFormat: number, width: number, height: number): boolean;
|
|
2
3
|
//# sourceMappingURL=framebuffer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framebuffer.d.ts","sourceRoot":"","sources":["../../src/utils/framebuffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"framebuffer.d.ts","sourceRoot":"","sources":["../../src/utils/framebuffer.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAClC,EAAE,EAAE,sBAAsB,GAC3B,gBAAgB,CAKlB;AAED,wBAAgB,mCAAmC,CAC/C,EAAE,EAAE,sBAAsB,EAC1B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,WAsCjB"}
|
|
@@ -1,7 +1,25 @@
|
|
|
1
|
+
import { webglLookup } from "./webgl.js";
|
|
1
2
|
export function webglCreateFramebuffer(gl) {
|
|
2
3
|
const fb = gl.createFramebuffer();
|
|
3
4
|
if (!fb)
|
|
4
5
|
throw new Error("Unable to create a WebGLFramebuffer!");
|
|
5
6
|
return fb;
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
+
export function webglRenderbufferStorageMultisample(gl, samples, internalFormat, width, height) {
|
|
9
|
+
gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, internalFormat, width, height);
|
|
10
|
+
const error = gl.getError();
|
|
11
|
+
if (error !== gl.NO_ERROR) {
|
|
12
|
+
console.error(`WebGL Error in renderbufferStorageMultisample: ${webglLookup(error)} (${error})\n
|
|
13
|
+
samples: ${samples}
|
|
14
|
+
internalFormat: gl.${webglLookup(internalFormat)}
|
|
15
|
+
width: ${width}
|
|
16
|
+
height: ${height}`, webglLookup(error));
|
|
17
|
+
const availableSamples = gl.getInternalformatParameter(gl.RENDERBUFFER, internalFormat, gl.SAMPLES);
|
|
18
|
+
if (!availableSamples.includes(samples)) {
|
|
19
|
+
console.error(`Available samples for format gl.${webglLookup(internalFormat)} are ${JSON.stringify(availableSamples)}, but you provided ${samples}!`);
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVidWZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZnJhbWVidWZmZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUVyQyxNQUFNLFVBQVUsc0JBQXNCLENBQ2xDLEVBQTBCO0lBRTFCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQ2pDLElBQUksQ0FBQyxFQUFFO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0lBRWhFLE9BQU8sRUFBRSxDQUFBO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxtQ0FBbUMsQ0FDL0MsRUFBMEIsRUFDMUIsT0FBZSxFQUNmLGNBQXNCLEVBQ3RCLEtBQWEsRUFDYixNQUFjO0lBRWQsRUFBRSxDQUFDLDhCQUE4QixDQUM3QixFQUFFLENBQUMsWUFBWSxFQUNmLE9BQU8sRUFDUCxjQUFjLEVBQ2QsS0FBSyxFQUNMLE1BQU0sQ0FDVCxDQUFBO0lBQ0QsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQzNCLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QixPQUFPLENBQUMsS0FBSyxDQUNULGtEQUFrRCxXQUFXLENBQ3pELEtBQUssQ0FDUixLQUFLLEtBQUs7a0JBQ0wsT0FBTztxQkFDSixXQUFXLENBQUMsY0FBYyxDQUFDO2tCQUM5QixLQUFLO2tCQUNMLE1BQU0sRUFBRSxFQUNkLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDckIsQ0FBQTtRQUNELE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUNsRCxFQUFFLENBQUMsWUFBWSxFQUNmLGNBQWMsRUFDZCxFQUFFLENBQUMsT0FBTyxDQUNiLENBQUE7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FDVCxtQ0FBbUMsV0FBVyxDQUMxQyxjQUFjLENBQ2pCLFFBQVEsSUFBSSxDQUFDLFNBQVMsQ0FDbkIsZ0JBQWdCLENBQ25CLHNCQUFzQixPQUFPLEdBQUcsQ0FDcEMsQ0FBQTtRQUNMLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDZixDQUFDIn0=
|
|
@@ -24,12 +24,12 @@ export function webglTextureCreate2DFromArray(gl, data, options) {
|
|
|
24
24
|
const texture = webglTextureCreate(gl);
|
|
25
25
|
gl.activeTexture(gl.TEXTURE0 + ((_a = options.unit) !== null && _a !== void 0 ? _a : 0));
|
|
26
26
|
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
27
|
-
if (options.flipY)
|
|
28
|
-
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, options.flipY);
|
|
29
27
|
webglTextureParametersSet(gl, options);
|
|
30
28
|
const { level = 0, internalFormat = "RGBA8", width, height, format = "RGBA", type = "UNSIGNED_BYTE", offset = 0, } = options;
|
|
29
|
+
if (options.flipY)
|
|
30
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, options.flipY);
|
|
31
31
|
gl.texImage2D(gl.TEXTURE_2D, level, gl[internalFormat], width, height, 0, gl[format], gl[type], data, offset);
|
|
32
32
|
return texture;
|
|
33
33
|
}
|
|
34
34
|
// @TODO: webglTextureCreateFromImage and webglTextureCreateFomBuffer
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZTJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dlYmdsL3RleHR1cmUvdGV4dHVyZTJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVDQSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsRUFBMEI7SUFDekQsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzlCLElBQUksQ0FBQyxHQUFHO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0lBRTlELE9BQU8sR0FBRyxDQUFBO0FBQ2QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUNyQyxFQUEwQixFQUMxQixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQTBCO0lBRXJFLElBQUksS0FBSztRQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3hFLElBQUksS0FBSztRQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3hFLElBQUksS0FBSztRQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3hFLElBQUksU0FBUztRQUNULEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7SUFDekUsSUFBSSxTQUFTO1FBQ1QsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtBQUM3RSxDQUFDO0FBRUQsTUFBTSxVQUFVLDZCQUE2QixDQUN6QyxFQUEwQixFQUMxQixJQVFrQixFQUNsQixPQUE2Qzs7SUFFN0MsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDdEMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBQSxPQUFPLENBQUMsSUFBSSxtQ0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ25ELEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUN0Qyx5QkFBeUIsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDdEMsTUFBTSxFQUNGLEtBQUssR0FBRyxDQUFDLEVBQ1QsY0FBYyxHQUFHLE9BQU8sRUFDeEIsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQUcsTUFBTSxFQUNmLElBQUksR0FBRyxlQUFlLEVBQ3RCLE1BQU0sR0FBRyxDQUFDLEdBQ2IsR0FBRyxPQUFPLENBQUE7SUFDWCxJQUFJLE9BQU8sQ0FBQyxLQUFLO1FBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3hFLEVBQUUsQ0FBQyxVQUFVLENBQ1QsRUFBRSxDQUFDLFVBQVUsRUFDYixLQUFLLEVBQ0wsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUNsQixLQUFLLEVBQ0wsTUFBTSxFQUNOLENBQUMsRUFDRCxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQ1YsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNSLElBQUksRUFDSixNQUFNLENBQ1QsQ0FBQTtJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxxRUFBcUUifQ==
|