@luma.gl/webgl 8.5.9 → 8.5.12
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/dist/dist.js +420 -457
- package/dist/dist.min.js +1 -1
- package/dist/es5/bundle.js +2 -4
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/classes/buffer.js +9 -2
- package/dist/es5/classes/buffer.js.map +1 -1
- package/dist/es5/classes/framebuffer.js +5 -0
- package/dist/es5/classes/framebuffer.js.map +1 -1
- package/dist/es5/classes/program.js +9 -2
- package/dist/es5/classes/program.js.map +1 -1
- package/dist/es5/classes/query.js +6 -1
- package/dist/es5/classes/query.js.map +1 -1
- package/dist/es5/classes/renderbuffer.js +6 -1
- package/dist/es5/classes/renderbuffer.js.map +1 -1
- package/dist/es5/classes/resource.js +13 -6
- package/dist/es5/classes/resource.js.map +1 -1
- package/dist/es5/classes/shader.js +20 -1
- package/dist/es5/classes/shader.js.map +1 -1
- package/dist/es5/classes/texture-2d.js +6 -1
- package/dist/es5/classes/texture-2d.js.map +1 -1
- package/dist/es5/classes/texture-3d.js +6 -1
- package/dist/es5/classes/texture-3d.js.map +1 -1
- package/dist/es5/classes/texture-cube.js +9 -2
- package/dist/es5/classes/texture-cube.js.map +1 -1
- package/dist/es5/classes/texture.js +12 -5
- package/dist/es5/classes/texture.js.map +1 -1
- package/dist/es5/classes/transform-feedback.js +6 -1
- package/dist/es5/classes/transform-feedback.js.map +1 -1
- package/dist/es5/classes/vertex-array-object.js +6 -1
- package/dist/es5/classes/vertex-array-object.js.map +1 -1
- package/dist/es5/init.js +7 -7
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/utils/is-old-ie.js +1 -1
- package/dist/es5/utils/is-old-ie.js.map +1 -1
- package/dist/esm/bundle.js +2 -4
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/classes/buffer.js +4 -0
- package/dist/esm/classes/buffer.js.map +1 -1
- package/dist/esm/classes/framebuffer.js +4 -0
- package/dist/esm/classes/framebuffer.js.map +1 -1
- package/dist/esm/classes/program.js +4 -0
- package/dist/esm/classes/program.js.map +1 -1
- package/dist/esm/classes/query.js +4 -0
- package/dist/esm/classes/query.js.map +1 -1
- package/dist/esm/classes/renderbuffer.js +4 -0
- package/dist/esm/classes/renderbuffer.js.map +1 -1
- package/dist/esm/classes/resource.js +10 -6
- package/dist/esm/classes/resource.js.map +1 -1
- package/dist/esm/classes/shader.js +12 -0
- package/dist/esm/classes/shader.js.map +1 -1
- package/dist/esm/classes/texture-2d.js +4 -0
- package/dist/esm/classes/texture-2d.js.map +1 -1
- package/dist/esm/classes/texture-3d.js +4 -0
- package/dist/esm/classes/texture-3d.js.map +1 -1
- package/dist/esm/classes/texture-cube.js +4 -0
- package/dist/esm/classes/texture-cube.js.map +1 -1
- package/dist/esm/classes/texture.js +10 -3
- package/dist/esm/classes/texture.js.map +1 -1
- package/dist/esm/classes/transform-feedback.js +4 -0
- package/dist/esm/classes/transform-feedback.js.map +1 -1
- package/dist/esm/classes/vertex-array-object.js +4 -0
- package/dist/esm/classes/vertex-array-object.js.map +1 -1
- package/dist/esm/init.js +7 -7
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/utils/is-old-ie.js +1 -1
- package/dist/esm/utils/is-old-ie.js.map +1 -1
- package/package.json +5 -4
- package/src/bundle.js +2 -3
- package/src/classes/buffer.js +4 -0
- package/src/classes/framebuffer.js +4 -0
- package/src/classes/program.js +4 -0
- package/src/classes/query.js +4 -0
- package/src/classes/renderbuffer.js +4 -0
- package/src/classes/resource.js +10 -6
- package/src/classes/shader.js +14 -0
- package/src/classes/texture-2d.js +5 -0
- package/src/classes/texture-3d.js +5 -0
- package/src/classes/texture-cube.js +5 -0
- package/src/classes/texture.js +11 -4
- package/src/classes/transform-feedback.js +4 -0
- package/src/classes/vertex-array-object.js +4 -0
- package/src/init.js +6 -6
- package/src/utils/is-old-ie.js +1 -1
package/src/classes/resource.js
CHANGED
|
@@ -13,6 +13,10 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
13
13
|
// }
|
|
14
14
|
|
|
15
15
|
export default class Resource {
|
|
16
|
+
// eslint-disable-next-line accessor-pairs
|
|
17
|
+
get [Symbol.toStringTag]() {
|
|
18
|
+
return 'Resource';
|
|
19
|
+
}
|
|
16
20
|
constructor(gl, opts = {}) {
|
|
17
21
|
assertWebGLContext(gl);
|
|
18
22
|
|
|
@@ -21,7 +25,7 @@ export default class Resource {
|
|
|
21
25
|
// @ts-ignore
|
|
22
26
|
this.gl2 = gl;
|
|
23
27
|
// this.ext = polyfillContext(gl);
|
|
24
|
-
this.id = id || uid(this.
|
|
28
|
+
this.id = id || uid(this[Symbol.toStringTag]);
|
|
25
29
|
this.userData = userData;
|
|
26
30
|
this._bound = false;
|
|
27
31
|
|
|
@@ -44,7 +48,7 @@ export default class Resource {
|
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
toString() {
|
|
47
|
-
return `${this.constructor.name}(${this.id})`;
|
|
51
|
+
return `${this[Symbol.toStringTag] || this.constructor.name}(${this.id})`;
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
get handle() {
|
|
@@ -275,7 +279,7 @@ export default class Resource {
|
|
|
275
279
|
}
|
|
276
280
|
|
|
277
281
|
_addStats() {
|
|
278
|
-
const name = this.
|
|
282
|
+
const name = this[Symbol.toStringTag];
|
|
279
283
|
const stats = lumaStats.get('Resource Counts');
|
|
280
284
|
|
|
281
285
|
stats.get('Resources Created').incrementCount();
|
|
@@ -284,13 +288,13 @@ export default class Resource {
|
|
|
284
288
|
}
|
|
285
289
|
|
|
286
290
|
_removeStats() {
|
|
287
|
-
const name = this.
|
|
291
|
+
const name = this[Symbol.toStringTag];
|
|
288
292
|
const stats = lumaStats.get('Resource Counts');
|
|
289
293
|
|
|
290
294
|
stats.get(`${name}s Active`).decrementCount();
|
|
291
295
|
}
|
|
292
296
|
|
|
293
|
-
_trackAllocatedMemory(bytes, name = this.
|
|
297
|
+
_trackAllocatedMemory(bytes, name = this[Symbol.toStringTag]) {
|
|
294
298
|
const stats = lumaStats.get('Memory Usage');
|
|
295
299
|
|
|
296
300
|
stats.get('GPU Memory').addCount(bytes);
|
|
@@ -298,7 +302,7 @@ export default class Resource {
|
|
|
298
302
|
this.byteLength = bytes;
|
|
299
303
|
}
|
|
300
304
|
|
|
301
|
-
_trackDeallocatedMemory(name = this.
|
|
305
|
+
_trackDeallocatedMemory(name = this[Symbol.toStringTag]) {
|
|
302
306
|
const stats = lumaStats.get('Memory Usage');
|
|
303
307
|
|
|
304
308
|
stats.get('GPU Memory').subtractCount(this.byteLength);
|
package/src/classes/shader.js
CHANGED
|
@@ -9,6 +9,11 @@ const ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';
|
|
|
9
9
|
|
|
10
10
|
// For now this is an internal class
|
|
11
11
|
export class Shader extends Resource {
|
|
12
|
+
// eslint-disable-next-line accessor-pairs
|
|
13
|
+
get [Symbol.toStringTag]() {
|
|
14
|
+
return 'Shader';
|
|
15
|
+
}
|
|
16
|
+
|
|
12
17
|
static getTypeName(shaderType) {
|
|
13
18
|
switch (shaderType) {
|
|
14
19
|
case GL.VERTEX_SHADER:
|
|
@@ -116,6 +121,11 @@ export class Shader extends Resource {
|
|
|
116
121
|
}
|
|
117
122
|
|
|
118
123
|
export class VertexShader extends Shader {
|
|
124
|
+
// eslint-disable-next-line accessor-pairs
|
|
125
|
+
get [Symbol.toStringTag]() {
|
|
126
|
+
return 'VertexShader';
|
|
127
|
+
}
|
|
128
|
+
|
|
119
129
|
constructor(gl, props) {
|
|
120
130
|
// Signature: new VertexShader(gl, source)
|
|
121
131
|
if (typeof props === 'string') {
|
|
@@ -131,6 +141,10 @@ export class VertexShader extends Shader {
|
|
|
131
141
|
}
|
|
132
142
|
|
|
133
143
|
export class FragmentShader extends Shader {
|
|
144
|
+
// eslint-disable-next-line accessor-pairs
|
|
145
|
+
get [Symbol.toStringTag]() {
|
|
146
|
+
return 'FragmentShader';
|
|
147
|
+
}
|
|
134
148
|
constructor(gl, props) {
|
|
135
149
|
// Signature: new FragmentShader(gl, source)
|
|
136
150
|
if (typeof props === 'string') {
|
|
@@ -4,6 +4,11 @@ import Texture from './texture';
|
|
|
4
4
|
import {loadImage} from '../utils/load-file';
|
|
5
5
|
|
|
6
6
|
export default class Texture2D extends Texture {
|
|
7
|
+
// eslint-disable-next-line accessor-pairs
|
|
8
|
+
get [Symbol.toStringTag]() {
|
|
9
|
+
return 'Texture2D';
|
|
10
|
+
}
|
|
11
|
+
|
|
7
12
|
static isSupported(gl, opts) {
|
|
8
13
|
return Texture.isSupported(gl, opts);
|
|
9
14
|
}
|
|
@@ -5,6 +5,11 @@ import {DATA_FORMAT_CHANNELS, TYPE_SIZES} from './texture-formats';
|
|
|
5
5
|
import Buffer from './buffer';
|
|
6
6
|
|
|
7
7
|
export default class Texture3D extends Texture {
|
|
8
|
+
// eslint-disable-next-line accessor-pairs
|
|
9
|
+
get [Symbol.toStringTag]() {
|
|
10
|
+
return 'Texture3D';
|
|
11
|
+
}
|
|
12
|
+
|
|
8
13
|
static isSupported(gl) {
|
|
9
14
|
return isWebGL2(gl);
|
|
10
15
|
}
|
package/src/classes/texture.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import GL from '@luma.gl/constants';
|
|
2
2
|
import {isWebGL2, assertWebGL2Context, withParameters, log} from '@luma.gl/gltools';
|
|
3
|
-
import {global} from 'probe.gl/env';
|
|
4
3
|
|
|
5
4
|
import Resource from './resource';
|
|
6
5
|
import Buffer from './buffer';
|
|
@@ -19,9 +18,13 @@ const NPOT_MIN_FILTERS = [GL.LINEAR, GL.NEAREST];
|
|
|
19
18
|
|
|
20
19
|
// Polyfill
|
|
21
20
|
// Note (Tarek): Do we really need to support this API?
|
|
22
|
-
const WebGLBuffer =
|
|
21
|
+
const WebGLBuffer = globalThis.WebGLBuffer || function WebGLBuffer() {};
|
|
23
22
|
|
|
24
23
|
export default class Texture extends Resource {
|
|
24
|
+
// eslint-disable-next-line accessor-pairs
|
|
25
|
+
get [Symbol.toStringTag]() {
|
|
26
|
+
return 'Texture';
|
|
27
|
+
}
|
|
25
28
|
static isSupported(gl, opts = {}) {
|
|
26
29
|
const {format, linearFiltering} = opts;
|
|
27
30
|
let supported = true;
|
|
@@ -310,6 +313,8 @@ export default class Texture extends Resource {
|
|
|
310
313
|
|
|
311
314
|
let gl2;
|
|
312
315
|
|
|
316
|
+
let compressedTextureSize = 0;
|
|
317
|
+
|
|
313
318
|
withParameters(this.gl, parameters, () => {
|
|
314
319
|
switch (dataType) {
|
|
315
320
|
case 'null':
|
|
@@ -358,15 +363,17 @@ export default class Texture extends Resource {
|
|
|
358
363
|
border,
|
|
359
364
|
levelData.data
|
|
360
365
|
);
|
|
366
|
+
compressedTextureSize += levelData.levelSize;
|
|
361
367
|
}
|
|
362
|
-
|
|
363
368
|
break;
|
|
364
369
|
default:
|
|
365
370
|
assert(false, 'Unknown image data type');
|
|
366
371
|
}
|
|
367
372
|
});
|
|
368
373
|
|
|
369
|
-
if (
|
|
374
|
+
if (dataType === 'compressed') {
|
|
375
|
+
this._trackAllocatedMemory(compressedTextureSize, 'Texture');
|
|
376
|
+
} else if (data && data.byteLength) {
|
|
370
377
|
this._trackAllocatedMemory(data.byteLength, 'Texture');
|
|
371
378
|
} else {
|
|
372
379
|
// NOTE(Tarek): Default to RGBA bytes
|
|
@@ -8,6 +8,10 @@ import {isObjectEmpty} from '../utils/utils';
|
|
|
8
8
|
// See https://github.com/KhronosGroup/WebGL/issues/2346
|
|
9
9
|
|
|
10
10
|
export default class TransformFeedback extends Resource {
|
|
11
|
+
// eslint-disable-next-line accessor-pairs
|
|
12
|
+
get [Symbol.toStringTag]() {
|
|
13
|
+
return 'TransformFeedback';
|
|
14
|
+
}
|
|
11
15
|
static isSupported(gl) {
|
|
12
16
|
return isWebGL2(gl);
|
|
13
17
|
}
|
|
@@ -9,6 +9,10 @@ import {getBrowser} from 'probe.gl';
|
|
|
9
9
|
const ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';
|
|
10
10
|
|
|
11
11
|
export default class VertexArrayObject extends Resource {
|
|
12
|
+
// eslint-disable-next-line accessor-pairs
|
|
13
|
+
get [Symbol.toStringTag]() {
|
|
14
|
+
return 'VertexArrayObject';
|
|
15
|
+
}
|
|
12
16
|
static isSupported(gl, options = {}) {
|
|
13
17
|
// Attribute 0 can not be disable on most desktop OpenGL based browsers
|
|
14
18
|
// and on iOS Safari browser.
|
package/src/init.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {log} from '@luma.gl/gltools';
|
|
2
2
|
import {Stats} from 'probe.gl';
|
|
3
|
-
import {isBrowser
|
|
3
|
+
import {isBrowser} from '@probe.gl/env';
|
|
4
4
|
|
|
5
5
|
// Version detection using babel plugin
|
|
6
6
|
/* global __VERSION__ */
|
|
@@ -28,16 +28,16 @@ class StatsManager {
|
|
|
28
28
|
|
|
29
29
|
const lumaStats = new StatsManager();
|
|
30
30
|
|
|
31
|
-
if (
|
|
32
|
-
throw new Error(`luma.gl - multiple VERSIONs detected: ${
|
|
31
|
+
if (globalThis.luma && globalThis.luma.VERSION !== VERSION) {
|
|
32
|
+
throw new Error(`luma.gl - multiple VERSIONs detected: ${globalThis.luma.VERSION} vs ${VERSION}`);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
if (!
|
|
35
|
+
if (!globalThis.luma) {
|
|
36
36
|
if (isBrowser()) {
|
|
37
37
|
log.log(1, `luma.gl ${VERSION} - ${STARTUP_MESSAGE}`)();
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
globalThis.luma = globalThis.luma || {
|
|
41
41
|
VERSION,
|
|
42
42
|
version: VERSION,
|
|
43
43
|
log,
|
|
@@ -59,4 +59,4 @@ if (!global.luma) {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
export {lumaStats};
|
|
62
|
-
export default
|
|
62
|
+
export default globalThis.luma;
|
package/src/utils/is-old-ie.js
CHANGED