@luma.gl/webgl 9.0.0-alpha.10 → 9.0.0-alpha.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/adapter/converters/device-parameters.js +1 -12
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +0 -9
- package/dist/adapter/converters/texture-formats.js.map +1 -1
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/vertex-formats.js +3 -0
- package/dist/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +4 -0
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.d.ts +1 -1
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +2 -4
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +1 -1
- package/dist/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/adapter/objects/webgl-resource.d.ts +2 -4
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +1 -7
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts +0 -1
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +0 -2
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +0 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +2 -2
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +4 -32
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +1 -0
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +4 -0
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +2 -2
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +1 -3
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +4 -3
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +34 -29
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +37 -28
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/buffer.d.ts.map +1 -1
- package/dist/classic/buffer.js.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +1 -7
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +103 -103
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +15 -14
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfill/context-data.d.ts +13 -0
- package/dist/context/polyfill/context-data.d.ts.map +1 -0
- package/dist/context/polyfill/context-data.js +14 -0
- package/dist/context/polyfill/context-data.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +4 -4
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts +7 -7
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +5 -4
- package/dist/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +0 -1
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +1 -1
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/device-parameters.js +1 -12
- package/dist/es5/adapter/converters/device-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/texture-formats.js +1 -10
- package/dist/es5/adapter/converters/texture-formats.js.map +1 -1
- package/dist/es5/adapter/converters/vertex-formats.js +3 -0
- package/dist/es5/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +4 -0
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/es5/adapter/helpers/get-shader-layout.js +2 -4
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/es5/adapter/helpers/set-uniform.js +1 -1
- package/dist/es5/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +1 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-resource.js +1 -6
- package/dist/es5/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +0 -1
- package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +2 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +2 -38
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +5 -0
- package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-texture.js +1 -7
- package/dist/es5/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/es5/adapter/webgl-canvas-context.js +3 -4
- package/dist/es5/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/es5/adapter/webgl-device.js +38 -27
- package/dist/es5/adapter/webgl-device.js.map +1 -1
- package/dist/es5/classic/buffer.js.map +1 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +1 -7
- package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +10 -9
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/es5/context/polyfill/context-data.js +21 -0
- package/dist/es5/context/polyfill/context-data.js.map +1 -0
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-context.js +4 -4
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-table.js +5 -4
- package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/es5/context/state-tracker/track-context-state.js +0 -1
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/context/state-tracker/with-parameters.js +4 -2
- package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/es5/index.js +0 -14
- package/dist/es5/index.js.map +1 -1
- package/dist/esm/adapter/converters/device-parameters.js +1 -12
- package/dist/esm/adapter/converters/device-parameters.js.map +1 -1
- package/dist/esm/adapter/converters/texture-formats.js +0 -9
- package/dist/esm/adapter/converters/texture-formats.js.map +1 -1
- package/dist/esm/adapter/converters/vertex-formats.js +3 -0
- package/dist/esm/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +4 -0
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/esm/adapter/helpers/get-shader-layout.js +2 -4
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/esm/adapter/helpers/set-uniform.js +1 -1
- package/dist/esm/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +1 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-resource.js +1 -7
- package/dist/esm/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +0 -2
- package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +2 -2
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +4 -32
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +4 -0
- package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-texture.js +1 -3
- package/dist/esm/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/esm/adapter/webgl-canvas-context.js +4 -3
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/esm/adapter/webgl-device.js +37 -28
- package/dist/esm/adapter/webgl-device.js.map +1 -1
- package/dist/esm/classic/buffer.js.map +1 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +1 -7
- package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +15 -14
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/esm/context/polyfill/context-data.js +14 -0
- package/dist/esm/context/polyfill/context-data.js.map +1 -0
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-context.js +4 -4
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-table.js +5 -4
- package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/esm/context/state-tracker/track-context-state.js +0 -1
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/esm/context/state-tracker/with-parameters.js +1 -1
- package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/adapter/converters/device-parameters.ts +11 -11
- package/src/adapter/converters/texture-formats.ts +12 -12
- package/src/adapter/converters/vertex-formats.ts +1 -0
- package/src/adapter/device-helpers/device-features.ts +0 -1
- package/src/adapter/device-helpers/get-device-info.ts +5 -1
- package/src/adapter/helpers/get-shader-layout.ts +18 -15
- package/src/adapter/helpers/set-uniform.ts +1 -1
- package/src/adapter/objects/constants-to-keys.ts +4 -1
- package/src/adapter/objects/webgl-renderbuffer.ts +5 -5
- package/src/adapter/objects/webgl-resource.ts +7 -12
- package/src/adapter/objects/webgl-vertex-array-object.ts +4 -4
- package/src/adapter/resources/webgl-buffer.ts +4 -4
- package/src/adapter/resources/webgl-command-encoder.ts +4 -4
- package/src/adapter/resources/webgl-framebuffer.ts +6 -5
- package/src/adapter/resources/webgl-render-pipeline.ts +24 -23
- package/src/adapter/resources/webgl-sampler.ts +5 -1
- package/src/adapter/resources/webgl-shader.ts +1 -1
- package/src/adapter/resources/webgl-texture.ts +5 -7
- package/src/adapter/webgl-canvas-context.ts +2 -3
- package/src/adapter/webgl-device.ts +69 -59
- package/src/classic/buffer.ts +7 -4
- package/src/context/debug/webgl-developer-tools.ts +7 -7
- package/src/context/parameters/unified-parameter-api.ts +1 -1
- package/src/context/parameters/webgl-parameter-tables.ts +113 -94
- package/src/context/polyfill/context-data.ts +27 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +7 -6
- package/src/context/polyfill/polyfill-context.ts +5 -5
- package/src/context/polyfill/polyfill-table.ts +14 -13
- package/src/context/state-tracker/track-context-state.ts +0 -1
- package/src/context/state-tracker/with-parameters.ts +2 -1
- package/src/index.ts +0 -3
- package/dist/context/context/context-state.d.ts +0 -18
- package/dist/context/context/context-state.d.ts.map +0 -1
- package/dist/context/context/context-state.js +0 -26
- package/dist/context/context/context-state.js.map +0 -1
- package/dist/context/context/device-pixels.d.ts +0 -25
- package/dist/context/context/device-pixels.d.ts.map +0 -1
- package/dist/context/context/device-pixels.js +0 -103
- package/dist/context/context/device-pixels.js.map +0 -1
- package/dist/es5/context/context/context-state.js +0 -31
- package/dist/es5/context/context/context-state.js.map +0 -1
- package/dist/es5/context/context/device-pixels.js +0 -121
- package/dist/es5/context/context/device-pixels.js.map +0 -1
- package/dist/esm/context/context/context-state.js +0 -26
- package/dist/esm/context/context/context-state.js.map +0 -1
- package/dist/esm/context/context/device-pixels.js +0 -103
- package/dist/esm/context/context/device-pixels.js.map +0 -1
- package/src/context/context/context-state.ts +0 -41
- package/src/context/context/device-pixels.ts +0 -158
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
ShaderLayout,
|
|
5
|
-
BindingLayout,
|
|
5
|
+
// BindingLayout,
|
|
6
6
|
UniformBinding,
|
|
7
7
|
UniformBlockBinding,
|
|
8
8
|
ProgramBindings,
|
|
9
9
|
AttributeBinding,
|
|
10
10
|
VaryingBinding,
|
|
11
|
-
AttributeLayout,
|
|
11
|
+
// AttributeLayout,
|
|
12
12
|
AccessorObject
|
|
13
13
|
} from '@luma.gl/api';
|
|
14
14
|
import GL from '@luma.gl/constants';
|
|
@@ -17,6 +17,7 @@ import Accessor from '../../classic/accessor'; // TODO - should NOT depend on cl
|
|
|
17
17
|
import {decodeUniformType, decodeAttributeType} from './uniforms';
|
|
18
18
|
import {getVertexFormat} from '../converters/vertex-formats';
|
|
19
19
|
import {isSamplerUniform} from './uniforms';
|
|
20
|
+
|
|
20
21
|
/**
|
|
21
22
|
* Extract metadata describing binding information for a program's shaders
|
|
22
23
|
* Note: `linkProgram()` needs to have been called
|
|
@@ -31,9 +32,11 @@ export function getShaderLayout(gl: WebGLRenderingContext, program: WebGLProgram
|
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
for (const attribute of programBindings.attributes) {
|
|
35
|
+
// TODO - multicolumn attributes like a matrix4 can be up to 16 elts...
|
|
36
|
+
const size = Math.min(attribute.accessor.size, 4);
|
|
34
37
|
const format =
|
|
35
38
|
// attribute.accessor.format ||
|
|
36
|
-
getVertexFormat(attribute.accessor.type || GL.FLOAT,
|
|
39
|
+
getVertexFormat(attribute.accessor.type || GL.FLOAT, size);
|
|
37
40
|
shaderLayout.attributes.push({
|
|
38
41
|
name: attribute.name,
|
|
39
42
|
location: attribute.location,
|
|
@@ -262,19 +265,19 @@ function readUniformBlocks(
|
|
|
262
265
|
|
|
263
266
|
const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE); // Array of GLenum indicating the types of the uniforms.
|
|
264
267
|
const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE); // Array of GLuint indicating the sizes of the uniforms.
|
|
265
|
-
const uniformBlockIndex = gl2.getActiveUniforms(
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
); // Array of GLint indicating the block indices of the uniforms.
|
|
268
|
+
// const uniformBlockIndex = gl2.getActiveUniforms(
|
|
269
|
+
// program,
|
|
270
|
+
// uniformIndices,
|
|
271
|
+
// GL.UNIFORM_BLOCK_INDEX
|
|
272
|
+
// ); // Array of GLint indicating the block indices of the uniforms.
|
|
270
273
|
const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET); // Array of GLint indicating the uniform buffer offsets.
|
|
271
274
|
const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE); // Array of GLint indicating the strides between the elements.
|
|
272
|
-
const uniformMatrixStride = gl2.getActiveUniforms(
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.
|
|
277
|
-
const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);
|
|
275
|
+
// const uniformMatrixStride = gl2.getActiveUniforms(
|
|
276
|
+
// program,
|
|
277
|
+
// uniformIndices,
|
|
278
|
+
// GL.UNIFORM_MATRIX_STRIDE
|
|
279
|
+
// ); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.
|
|
280
|
+
// const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);
|
|
278
281
|
for (let i = 0; i < blockInfo.uniformCount; ++i) {
|
|
279
282
|
const activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);
|
|
280
283
|
if (!activeInfo) {
|
|
@@ -370,7 +373,7 @@ function parseUniformName(name: string): {name: string; length: number; isArray:
|
|
|
370
373
|
* Extract info about all "active" uniform blocks
|
|
371
374
|
* ("Active" just means that unused (inactive) blocks may have been optimized away during linking)
|
|
372
375
|
*
|
|
373
|
-
function getUniformBlockBindings(gl, program): Binding[] {
|
|
376
|
+
function getUniformBlockBindings(gl: WebGLRenderingContext, program): Binding[] {
|
|
374
377
|
if (!isWebGL2(gl)) {
|
|
375
378
|
return;
|
|
376
379
|
}
|
|
@@ -60,7 +60,7 @@ export function setUniform(
|
|
|
60
60
|
case GL.BOOL: return gl.uniform1iv(location, arrayValue);
|
|
61
61
|
case GL.BOOL_VEC2: return gl.uniform2iv(location, arrayValue);
|
|
62
62
|
case GL.BOOL_VEC3: return gl.uniform3iv(location, arrayValue);
|
|
63
|
-
case GL.BOOL_VEC4: gl.uniform4iv(location, arrayValue);
|
|
63
|
+
case GL.BOOL_VEC4: return gl.uniform4iv(location, arrayValue);
|
|
64
64
|
|
|
65
65
|
// WEBGL2 - unsigned integers
|
|
66
66
|
case GL.UNSIGNED_INT: return gl2.uniform1uiv(location, arrayValue, 1);
|
|
@@ -16,16 +16,18 @@ export function getKeyValue(gl: WebGLRenderingContext, name: string | GL): GL {
|
|
|
16
16
|
|
|
17
17
|
// Look up string, after removing any 'GL.' or 'gl.' prefix
|
|
18
18
|
name = name.replace(/^.*\./, '');
|
|
19
|
+
// @ts-ignore expect-error depends on settings
|
|
19
20
|
const value = gl[name];
|
|
20
21
|
assert(value !== undefined, `Accessing undefined constant GL.${name}`);
|
|
21
22
|
return value;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
export function getKey(gl: WebGLRenderingContext, value: any): string {
|
|
25
|
-
// @ts-expect-error
|
|
26
|
+
// @ts-ignore expect-error depends on settings
|
|
26
27
|
gl = gl.gl || gl;
|
|
27
28
|
value = Number(value);
|
|
28
29
|
for (const key in gl) {
|
|
30
|
+
// @ts-ignore expect-error depends on settings
|
|
29
31
|
if (gl[key] === value) {
|
|
30
32
|
return `GL.${key}`;
|
|
31
33
|
}
|
|
@@ -37,6 +39,7 @@ export function getKeyType(gl: WebGLRenderingContext, value: any): string {
|
|
|
37
39
|
assert(value !== undefined, 'undefined key');
|
|
38
40
|
value = Number(value);
|
|
39
41
|
for (const key in gl) {
|
|
42
|
+
// @ts-ignore expect-error depends on settings
|
|
40
43
|
if (gl[key] === value) {
|
|
41
44
|
return `GL.${key}`;
|
|
42
45
|
}
|
|
@@ -35,7 +35,7 @@ const DEFAULT_RENDERBUFFER_PROPS: Required<RenderbufferProps> = {
|
|
|
35
35
|
* Renderbuffer objects also natively accommodate Multisampling (MSAA).
|
|
36
36
|
*/
|
|
37
37
|
export default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {
|
|
38
|
-
|
|
38
|
+
override get [Symbol.toStringTag](): string { return 'Renderbuffer'; }
|
|
39
39
|
|
|
40
40
|
get width(): number { return this.props.width; }
|
|
41
41
|
get height(): number { return this.props.height; }
|
|
@@ -43,7 +43,7 @@ export default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps>
|
|
|
43
43
|
get samples(): number { return this.props.samples; }
|
|
44
44
|
|
|
45
45
|
static isSupported(gl: WebGLRenderingContext, options?: {format?: number}): boolean {
|
|
46
|
-
return !options
|
|
46
|
+
return !options?.format || isRenderbufferFormatSupported(gl, options.format);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
constructor(device: WebGLDevice, props: RenderbufferProps) {
|
|
@@ -89,16 +89,16 @@ export default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps>
|
|
|
89
89
|
|
|
90
90
|
// RESOURCE IMPLEMENTATION
|
|
91
91
|
|
|
92
|
-
_createHandle() {
|
|
92
|
+
override _createHandle() {
|
|
93
93
|
return this.gl.createRenderbuffer();
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
_deleteHandle(): void {
|
|
96
|
+
override _deleteHandle(): void {
|
|
97
97
|
this.gl.deleteRenderbuffer(this.handle);
|
|
98
98
|
this.trackDeallocatedMemory();
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
_bindHandle(handle: WEBGLRenderbuffer): void {
|
|
101
|
+
override _bindHandle(handle: WEBGLRenderbuffer): void {
|
|
102
102
|
this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
@@ -13,9 +13,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
13
13
|
/**
|
|
14
14
|
* Base class for WebGL object wrappers
|
|
15
15
|
*/
|
|
16
|
-
export default abstract class WebGLResource<Props> extends Resource<Props> {
|
|
17
|
-
id: string;
|
|
18
|
-
userData: any;
|
|
16
|
+
export default abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {
|
|
19
17
|
readonly device: WebGLDevice;
|
|
20
18
|
readonly gl: WebGLRenderingContext;
|
|
21
19
|
readonly gl2: WebGL2RenderingContext;
|
|
@@ -34,12 +32,10 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
34
32
|
assertWebGLContext(gl);
|
|
35
33
|
|
|
36
34
|
// extends
|
|
37
|
-
|
|
38
|
-
const {id, userData = {}} = props || {};
|
|
35
|
+
const {id} = props || {};
|
|
39
36
|
this.gl = gl;
|
|
40
37
|
this.gl2 = gl as WebGL2RenderingContext;
|
|
41
38
|
this.id = id || uid(this.constructor.name);
|
|
42
|
-
this.userData = userData;
|
|
43
39
|
|
|
44
40
|
// Set the handle
|
|
45
41
|
// If handle was provided, use it, otherwise create a new handle
|
|
@@ -48,7 +44,6 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
48
44
|
// this.glCount = glGetContextLossCount(this.gl);
|
|
49
45
|
|
|
50
46
|
// Default VertexArray needs to be created with null handle, so compare against undefined
|
|
51
|
-
// @ts-expect-error
|
|
52
47
|
this._handle = props?.handle;
|
|
53
48
|
if (this._handle === undefined) {
|
|
54
49
|
this._handle = this._createHandle();
|
|
@@ -57,7 +52,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
57
52
|
this.byteLength = 0;
|
|
58
53
|
}
|
|
59
54
|
|
|
60
|
-
toString(): string {
|
|
55
|
+
override toString(): string {
|
|
61
56
|
return `${this.constructor.name}(${this.id})`;
|
|
62
57
|
}
|
|
63
58
|
|
|
@@ -74,11 +69,11 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
74
69
|
return this._handle;
|
|
75
70
|
}
|
|
76
71
|
|
|
77
|
-
destroy(): void {
|
|
72
|
+
override destroy(): void {
|
|
78
73
|
this.delete();
|
|
79
74
|
}
|
|
80
75
|
|
|
81
|
-
delete({deleteChildren = false} = {}) {
|
|
76
|
+
override delete({deleteChildren = false} = {}) {
|
|
82
77
|
// Delete this object, and get refs to any children
|
|
83
78
|
// @ts-expect-error
|
|
84
79
|
const children = this._handle && this._deleteHandle(this._handle);
|
|
@@ -130,7 +125,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
130
125
|
* @param name
|
|
131
126
|
* @return param
|
|
132
127
|
*/
|
|
133
|
-
getParameter(pname: number, props = {}): any {
|
|
128
|
+
getParameter(pname: number, props: any = {}): any {
|
|
134
129
|
pname = getKeyValue(this.gl, pname);
|
|
135
130
|
assert(pname);
|
|
136
131
|
|
|
@@ -163,7 +158,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
163
158
|
// Many resources support a getParameter call -
|
|
164
159
|
// getParameters will get all parameters - slow but useful for debugging
|
|
165
160
|
// eslint-disable-next-line complexity
|
|
166
|
-
getParameters(options: {parameters
|
|
161
|
+
getParameters(options: {parameters?: any, keys?: any} = {}) {
|
|
167
162
|
const {parameters, keys} = options;
|
|
168
163
|
|
|
169
164
|
// Get parameter definitions for this Resource
|
|
@@ -17,7 +17,7 @@ export type VertexArrayObjectProps = ResourceProps & {
|
|
|
17
17
|
|
|
18
18
|
/** VertexArrayObject wrapper */
|
|
19
19
|
export default class WEBGLVertexArrayObject extends WebGLResource<VertexArrayObjectProps> {
|
|
20
|
-
|
|
20
|
+
override get [Symbol.toStringTag](): string {
|
|
21
21
|
return 'BaseVertexArrayObject';
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -26,18 +26,18 @@ export default class WEBGLVertexArrayObject extends WebGLResource<VertexArrayObj
|
|
|
26
26
|
super(device, props, {});
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
_createHandle() {
|
|
29
|
+
override _createHandle() {
|
|
30
30
|
return this.gl2.createVertexArray();
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
_deleteHandle(): void {
|
|
33
|
+
override _deleteHandle(): void {
|
|
34
34
|
this.gl2.deleteVertexArray(this.handle);
|
|
35
35
|
// @ts-expect-error
|
|
36
36
|
return [this.elements];
|
|
37
37
|
// return [this.elements, ...this.buffers];
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
_bindHandle(handle: WEBGLVertexArrayObject): void {
|
|
40
|
+
override _bindHandle(handle: WEBGLVertexArrayObject): void {
|
|
41
41
|
this.gl2.bindVertexArray(handle);
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -19,7 +19,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
19
19
|
|
|
20
20
|
webglUsage: number;
|
|
21
21
|
|
|
22
|
-
accessor: {};
|
|
22
|
+
// accessor: {};
|
|
23
23
|
|
|
24
24
|
constructor(device: WebGLDevice, props: BufferProps = {}) {
|
|
25
25
|
super(device, props);
|
|
@@ -101,7 +101,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
101
101
|
return this;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
destroy(): void {
|
|
104
|
+
override destroy(): void {
|
|
105
105
|
if (this.handle) {
|
|
106
106
|
this.removeStats();
|
|
107
107
|
this.trackDeallocatedMemory();
|
|
@@ -111,7 +111,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
write(data: ArrayBufferView, byteOffset: number = 0): void {
|
|
114
|
+
override write(data: ArrayBufferView, byteOffset: number = 0): void {
|
|
115
115
|
const srcOffset = 0;
|
|
116
116
|
const byteLength = data.byteLength;
|
|
117
117
|
|
|
@@ -135,7 +135,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
/** Read data from the buffer */
|
|
138
|
-
async readAsync(
|
|
138
|
+
override async readAsync(
|
|
139
139
|
byteOffset: number = 0,
|
|
140
140
|
byteLength?: number
|
|
141
141
|
): Promise<ArrayBuffer> {
|
|
@@ -19,7 +19,7 @@ export default class WEBGLCommandEncoder extends CommandEncoder {
|
|
|
19
19
|
this.device = device;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
destroy() {}
|
|
22
|
+
override destroy(): void {}
|
|
23
23
|
|
|
24
24
|
// beginRenderPass(GPURenderPassDescriptor descriptor): GPURenderPassEncoder;
|
|
25
25
|
// beginComputePass(optional GPUComputePassDescriptor descriptor = {}): GPUComputePassEncoder;
|
|
@@ -41,10 +41,10 @@ export default class WEBGLCommandEncoder extends CommandEncoder {
|
|
|
41
41
|
this.commandBuffer.commands.push({name: 'copy-texture-to-texture', options});
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
pushDebugGroup(groupLabel: string): void {}
|
|
45
|
-
popDebugGroup() {}
|
|
44
|
+
override pushDebugGroup(groupLabel: string): void {}
|
|
45
|
+
override popDebugGroup() {}
|
|
46
46
|
|
|
47
|
-
insertDebugMarker(markerLabel: string): void {}
|
|
47
|
+
override insertDebugMarker(markerLabel: string): void {}
|
|
48
48
|
|
|
49
49
|
// writeTimestamp(querySet: Query, queryIndex: number): void {}
|
|
50
50
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// luma.gl, MIT license
|
|
2
2
|
|
|
3
|
-
import type {FramebufferProps,
|
|
3
|
+
import type {FramebufferProps, ColorTextureFormat} from '@luma.gl/api';
|
|
4
4
|
import {Framebuffer, Texture, log, assert} from '@luma.gl/api';
|
|
5
5
|
import GL from '@luma.gl/constants';
|
|
6
6
|
import WebGLDevice from '../webgl-device';
|
|
@@ -19,7 +19,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
|
|
|
19
19
|
|
|
20
20
|
get texture() { return this.colorAttachments[0]; }
|
|
21
21
|
readonly colorAttachments: WebGLTexture[] = [];
|
|
22
|
-
readonly depthStencilAttachment: WebGLTexture | null = null;
|
|
22
|
+
readonly depthStencilAttachment: WebGLTexture | null = null;
|
|
23
23
|
protected _ownResources: (WebGLTexture | Renderbuffer)[] = [];
|
|
24
24
|
|
|
25
25
|
constructor(device: WebGLDevice, props: FramebufferProps) {
|
|
@@ -62,7 +62,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
destroy() {
|
|
65
|
+
override destroy(): void {
|
|
66
66
|
if (this.handle !== null) {
|
|
67
67
|
for (const resource of this._ownResources) {
|
|
68
68
|
resource.destroy();
|
|
@@ -202,6 +202,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
|
|
|
202
202
|
this._attachTexture(attachmentPoint, attachment, 0, 0);
|
|
203
203
|
return attachment;
|
|
204
204
|
}
|
|
205
|
+
throw new Error('attach');
|
|
205
206
|
}
|
|
206
207
|
|
|
207
208
|
protected _attachRenderbuffer(attachment: GL, renderbuffer: Renderbuffer): void {
|
|
@@ -251,7 +252,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
|
|
|
251
252
|
// Helper functions
|
|
252
253
|
|
|
253
254
|
// Map an index to a cube map face constant
|
|
254
|
-
function mapIndexToCubeMapFace(layer) {
|
|
255
|
+
function mapIndexToCubeMapFace(layer: number | GL): GL {
|
|
255
256
|
// TEXTURE_CUBE_MAP_POSITIVE_X is a big value (0x8515)
|
|
256
257
|
// if smaller assume layer is index, otherwise assume it is already a cube map face constant
|
|
257
258
|
return layer < GL.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + GL.TEXTURE_CUBE_MAP_POSITIVE_X : layer;
|
|
@@ -259,7 +260,7 @@ function mapIndexToCubeMapFace(layer) {
|
|
|
259
260
|
|
|
260
261
|
// Helper METHODS
|
|
261
262
|
// Get a string describing the framebuffer error if installed
|
|
262
|
-
function _getFrameBufferStatus(status) {
|
|
263
|
+
function _getFrameBufferStatus(status: GL) {
|
|
263
264
|
switch (status) {
|
|
264
265
|
case GL.FRAMEBUFFER_COMPLETE:
|
|
265
266
|
return 'success';
|
|
@@ -5,13 +5,12 @@ import type {
|
|
|
5
5
|
Binding,
|
|
6
6
|
ShaderLayout,
|
|
7
7
|
PrimitiveTopology,
|
|
8
|
-
BindingLayout,
|
|
8
|
+
// BindingLayout,
|
|
9
9
|
AttributeLayout
|
|
10
10
|
} from '@luma.gl/api';
|
|
11
11
|
import {RenderPipeline, cast, log, decodeVertexFormat} from '@luma.gl/api';
|
|
12
12
|
import GL from '@luma.gl/constants';
|
|
13
13
|
|
|
14
|
-
import type {GLParameters} from '../../types/webgl';
|
|
15
14
|
import {getWebGLDataType} from '../converters/texture-formats';
|
|
16
15
|
import {getShaderLayout} from '../helpers/get-shader-layout';
|
|
17
16
|
import {withDeviceParameters, withGLParameters} from '../converters/device-parameters';
|
|
@@ -74,7 +73,7 @@ export default class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
74
73
|
this.vertexArrayObject = new WEBGLVertexArrayObject(this.device);
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
destroy(): void {
|
|
76
|
+
override destroy(): void {
|
|
78
77
|
if (this.handle) {
|
|
79
78
|
this.device.gl.deleteProgram(this.handle);
|
|
80
79
|
// this.handle = null;
|
|
@@ -108,7 +107,7 @@ export default class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
108
107
|
offset: 0,
|
|
109
108
|
normalized,
|
|
110
109
|
integer,
|
|
111
|
-
divisor
|
|
110
|
+
divisor
|
|
112
111
|
});
|
|
113
112
|
}
|
|
114
113
|
}
|
|
@@ -173,12 +172,12 @@ export default class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
173
172
|
const {
|
|
174
173
|
renderPass = this.device.getDefaultRenderPass(),
|
|
175
174
|
vertexCount,
|
|
176
|
-
indexCount,
|
|
175
|
+
// indexCount,
|
|
177
176
|
instanceCount,
|
|
178
177
|
firstVertex = 0,
|
|
179
|
-
firstIndex,
|
|
180
|
-
firstInstance,
|
|
181
|
-
baseVertex
|
|
178
|
+
// firstIndex,
|
|
179
|
+
// firstInstance,
|
|
180
|
+
// baseVertex
|
|
182
181
|
} = options;
|
|
183
182
|
|
|
184
183
|
const drawMode = getDrawMode(this.props.topology);
|
|
@@ -278,12 +277,12 @@ export default class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
278
277
|
_areTexturesRenderable() {
|
|
279
278
|
let texturesRenderable = true;
|
|
280
279
|
|
|
281
|
-
for (const [
|
|
280
|
+
for (const [, texture] of Object.entries(this._textureUniforms)) {
|
|
282
281
|
texture.update();
|
|
283
282
|
texturesRenderable = texturesRenderable && texture.loaded;
|
|
284
283
|
}
|
|
285
284
|
|
|
286
|
-
for (const [
|
|
285
|
+
for (const [, texture] of Object.entries(this.bindings)) {
|
|
287
286
|
// texture.update();
|
|
288
287
|
if (texture.loaded !== undefined) {
|
|
289
288
|
texturesRenderable = texturesRenderable && texture.loaded;
|
|
@@ -398,24 +397,25 @@ function getGLPrimitive(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL.
|
|
|
398
397
|
}
|
|
399
398
|
}
|
|
400
399
|
|
|
401
|
-
function getAttributesByLocation(
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
): Record<number, Buffer> {
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
}
|
|
400
|
+
// function getAttributesByLocation(
|
|
401
|
+
// attributes: Record<string, Buffer>,
|
|
402
|
+
// layout: ShaderLayout
|
|
403
|
+
// ): Record<number, Buffer> {
|
|
404
|
+
// const byLocation: Record<number, Buffer> = {};
|
|
405
|
+
// for (const [name, buffer] of Object.entries(attributes)) {
|
|
406
|
+
// const attribute = getAttributeLayout(layout, name);
|
|
407
|
+
// if (attribute) {
|
|
408
|
+
// byLocation[attribute.location] = buffer;
|
|
409
|
+
// }
|
|
410
|
+
// }
|
|
411
|
+
// return byLocation;
|
|
412
|
+
// }
|
|
414
413
|
|
|
415
414
|
function getAttributeLayout(layout: ShaderLayout, name: string): AttributeLayout | null {
|
|
416
415
|
return layout.attributes.find((binding) => binding.name === name) || null;
|
|
417
416
|
}
|
|
418
417
|
|
|
418
|
+
/* TODO
|
|
419
419
|
function getBindingLayout(layout: ShaderLayout, name: string): BindingLayout {
|
|
420
420
|
const binding = layout.bindings.find((binding) => binding.name === name);
|
|
421
421
|
if (!binding) {
|
|
@@ -423,3 +423,4 @@ function getBindingLayout(layout: ShaderLayout, name: string): BindingLayout {
|
|
|
423
423
|
}
|
|
424
424
|
return binding;
|
|
425
425
|
}
|
|
426
|
+
*/
|
|
@@ -28,7 +28,7 @@ export default class WEBGLSampler extends Sampler {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
destroy(): void {
|
|
31
|
+
override destroy(): void {
|
|
32
32
|
if (this.handle) {
|
|
33
33
|
this.device.gl2.deleteSampler(this.handle);
|
|
34
34
|
// @ts-expect-error
|
|
@@ -36,6 +36,10 @@ export default class WEBGLSampler extends Sampler {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
override toString(): string {
|
|
40
|
+
return `Sampler(${this.id},${JSON.stringify(this.props)})`;
|
|
41
|
+
}
|
|
42
|
+
|
|
39
43
|
/** Set sampler parameters on the sampler */
|
|
40
44
|
private _setSamplerParameters(parameters: GLSamplerParameters): void {
|
|
41
45
|
for (const [pname, value] of Object.entries(parameters)) {
|
|
@@ -194,7 +194,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
194
194
|
Object.seal(this);
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
-
destroy(): void {
|
|
197
|
+
override destroy(): void {
|
|
198
198
|
if (this.handle) {
|
|
199
199
|
this.gl.deleteTexture(this.handle);
|
|
200
200
|
this.removeStats();
|
|
@@ -204,7 +204,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
-
toString(): string {
|
|
207
|
+
override toString(): string {
|
|
208
208
|
return `Texture(${this.id},${this.width}x${this.height})`;
|
|
209
209
|
}
|
|
210
210
|
|
|
@@ -383,7 +383,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
383
383
|
}
|
|
384
384
|
|
|
385
385
|
/** Update external texture (video frame) */
|
|
386
|
-
update():
|
|
386
|
+
update(): void {
|
|
387
387
|
if (this._video) {
|
|
388
388
|
const {video, parameters, lastTime} = this._video;
|
|
389
389
|
// @ts-expect-error
|
|
@@ -940,7 +940,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
940
940
|
* Sets sampler parameters on texture
|
|
941
941
|
* @note: Applies NPOT workaround if appropriate
|
|
942
942
|
*/
|
|
943
|
-
_setSamplerParameters(parameters: GLSamplerParameters) {
|
|
943
|
+
_setSamplerParameters(parameters: GLSamplerParameters): void {
|
|
944
944
|
// Work around WebGL1 sampling restrictions on NPOT textures
|
|
945
945
|
if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
|
|
946
946
|
parameters = updateSamplerParametersForNPOT(parameters);
|
|
@@ -972,7 +972,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
972
972
|
}
|
|
973
973
|
}
|
|
974
974
|
this.gl.bindTexture(this.target, null);
|
|
975
|
-
return
|
|
975
|
+
return;
|
|
976
976
|
}
|
|
977
977
|
|
|
978
978
|
/** @deprecated For LegacyTexture subclass */
|
|
@@ -1031,6 +1031,4 @@ function isNPOT(width: number, height: number): boolean {
|
|
|
1031
1031
|
|
|
1032
1032
|
function logParameters(parameters: Record<number, GL | number>) {
|
|
1033
1033
|
log.log(1, 'texture sampler parameters', parameters)();
|
|
1034
|
-
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
1035
|
-
}
|
|
1036
1034
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// luma.gl, MIT license
|
|
2
2
|
import type {CanvasContextProps} from '@luma.gl/api';
|
|
3
3
|
import {CanvasContext} from '@luma.gl/api';
|
|
4
|
-
import {getDevicePixelRatio, setDevicePixelRatio} from '../context/context/device-pixels';
|
|
5
4
|
import WebGLDevice from './webgl-device';
|
|
6
5
|
import WEBGLFramebuffer from './resources/webgl-framebuffer';
|
|
7
6
|
|
|
@@ -19,6 +18,7 @@ export default class WebGLCanvasContext extends CanvasContext {
|
|
|
19
18
|
super(props);
|
|
20
19
|
this.device = device;
|
|
21
20
|
this.presentationSize = [-1, -1];
|
|
21
|
+
this._setAutoCreatedCanvasId(`${this.device.id}-canvas`);
|
|
22
22
|
this.update();
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -52,8 +52,7 @@ export default class WebGLCanvasContext extends CanvasContext {
|
|
|
52
52
|
resize(options?: {width?: number; height?: number; useDevicePixels?: boolean | number}): void {
|
|
53
53
|
// Resize browser context .
|
|
54
54
|
if (this.canvas) {
|
|
55
|
-
|
|
56
|
-
setDevicePixelRatio(this.device.gl, devicePixelRatio, options);
|
|
55
|
+
this.setDevicePixelRatio(devicePixelRatio, options);
|
|
57
56
|
return;
|
|
58
57
|
}
|
|
59
58
|
|