@luma.gl/webgl 9.0.0-beta.5 → 9.0.0-beta.7
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.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +128 -71
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +20 -19
- package/dist/adapter/converters/shader-formats.d.ts.map +1 -1
- package/dist/adapter/converters/shader-formats.js +40 -20
- package/dist/adapter/converters/texture-formats.d.ts +16 -11
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +224 -205
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/vertex-formats.js +22 -21
- package/dist/adapter/device-helpers/webgl-device-features.d.ts +19 -5
- package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-features.js +89 -43
- package/dist/adapter/device-helpers/webgl-device-info.d.ts +2 -1
- package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-info.js +22 -19
- package/dist/adapter/device-helpers/webgl-device-limits.d.ts +33 -48
- package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-limits.js +42 -87
- package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -1
- package/dist/adapter/helpers/decode-webgl-types.js +47 -46
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +35 -34
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js +3 -2
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +42 -41
- package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.js +40 -39
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js +2 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +2 -2
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +30 -17
- package/dist/adapter/objects/webgl-resource.d.ts +2 -24
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +6 -101
- package/dist/adapter/resources/webgl-buffer.d.ts +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +16 -15
- package/dist/adapter/resources/webgl-command-buffer.d.ts +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +32 -31
- package/dist/adapter/resources/webgl-command-encoder.d.ts +8 -3
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +4 -2
- package/dist/adapter/resources/webgl-external-texture.js +6 -5
- package/dist/adapter/resources/webgl-framebuffer.d.ts +6 -10
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +60 -53
- package/dist/adapter/resources/webgl-query-set.d.ts +44 -0
- package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-query-set.js +136 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts +3 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +20 -12
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +4 -5
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +52 -61
- package/dist/adapter/resources/webgl-sampler.d.ts +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +5 -4
- package/dist/adapter/resources/webgl-shader.d.ts +3 -2
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +15 -9
- package/dist/adapter/resources/webgl-texture-view.d.ts +14 -0
- package/dist/adapter/resources/webgl-texture-view.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-texture-view.js +18 -0
- package/dist/adapter/resources/webgl-texture.d.ts +6 -4
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +39 -32
- package/dist/adapter/resources/webgl-transform-feedback.d.ts +1 -1
- package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-transform-feedback.js +10 -10
- package/dist/adapter/resources/webgl-vertex-array.d.ts +3 -3
- package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-vertex-array.js +10 -9
- package/dist/adapter/webgl-canvas-context.d.ts +2 -2
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +3 -2
- package/dist/adapter/webgl-device.d.ts +35 -30
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +110 -109
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +8 -7
- package/dist/classic/clear.d.ts.map +1 -1
- package/dist/classic/clear.js +5 -4
- package/dist/classic/copy-and-blit.d.ts +1 -1
- package/dist/classic/copy-and-blit.d.ts.map +1 -1
- package/dist/classic/copy-and-blit.js +19 -19
- package/dist/classic/format-utils.d.ts.map +1 -1
- package/dist/classic/format-utils.js +16 -15
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +20 -19
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +2 -1
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +7 -6
- package/dist/context/{context → helpers}/create-browser-context.d.ts.map +1 -1
- package/dist/context/{context → helpers}/create-browser-context.js +2 -1
- package/dist/context/{context/context-data.d.ts → helpers/webgl-context-data.d.ts} +2 -3
- package/dist/context/helpers/webgl-context-data.d.ts.map +1 -0
- package/dist/context/helpers/webgl-context-data.js +21 -0
- package/dist/context/helpers/webgl-extensions.d.ts +4 -0
- package/dist/context/helpers/webgl-extensions.d.ts.map +1 -0
- package/dist/context/helpers/webgl-extensions.js +10 -0
- package/dist/context/parameters/unified-parameter-api.d.ts +3 -4
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +7 -11
- package/dist/context/parameters/webgl-parameter-tables.d.ts +12 -13
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +302 -295
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.js +2 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +5 -4
- package/dist/context/state-tracker/with-parameters.d.ts +2 -3
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +6 -8
- package/dist/dist.dev.js +1635 -1387
- package/dist/index.cjs +1766 -1534
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +25 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -23
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist.min.js +6 -6
- package/package.json +4 -4
- package/src/adapter/converters/device-parameters.ts +114 -27
- package/src/adapter/converters/sampler-parameters.ts +12 -3
- package/src/adapter/converters/shader-formats.ts +47 -22
- package/src/adapter/converters/texture-formats.ts +138 -114
- package/src/adapter/converters/vertex-formats.ts +3 -3
- package/src/adapter/device-helpers/webgl-device-features.ts +102 -50
- package/src/adapter/device-helpers/webgl-device-info.ts +28 -19
- package/src/adapter/device-helpers/webgl-device-limits.ts +46 -150
- package/src/adapter/helpers/decode-webgl-types.ts +13 -7
- package/src/adapter/helpers/get-shader-layout.ts +4 -3
- package/src/adapter/helpers/parse-shader-compiler-log.ts +10 -6
- package/src/adapter/helpers/set-uniform.ts +2 -1
- package/src/adapter/helpers/webgl-topology-utils.ts +10 -3
- package/src/adapter/objects/constants-to-keys.ts +2 -1
- package/src/adapter/objects/webgl-renderbuffer.ts +36 -14
- package/src/adapter/objects/webgl-resource.ts +7 -125
- package/src/adapter/resources/webgl-buffer.ts +4 -3
- package/src/adapter/resources/webgl-command-buffer.ts +5 -5
- package/src/adapter/resources/webgl-command-encoder.ts +14 -11
- package/src/adapter/resources/webgl-external-texture.ts +6 -5
- package/src/adapter/resources/webgl-framebuffer.ts +61 -53
- package/src/adapter/resources/webgl-query-set.ts +171 -0
- package/src/adapter/resources/webgl-render-pass.ts +20 -11
- package/src/adapter/resources/webgl-render-pipeline.ts +54 -54
- package/src/adapter/resources/webgl-sampler.ts +2 -1
- package/src/adapter/resources/webgl-shader.ts +12 -5
- package/src/adapter/resources/webgl-texture-view.ts +28 -0
- package/src/adapter/resources/webgl-texture.ts +14 -3
- package/src/adapter/resources/webgl-transform-feedback.ts +2 -7
- package/src/adapter/resources/webgl-vertex-array.ts +4 -3
- package/src/adapter/webgl-canvas-context.ts +6 -4
- package/src/adapter/webgl-device.ts +116 -107
- package/src/classic/accessor.ts +5 -4
- package/src/classic/clear.ts +14 -8
- package/src/classic/copy-and-blit.ts +11 -4
- package/src/classic/format-utils.ts +2 -1
- package/src/classic/typed-array-utils.ts +3 -7
- package/src/context/debug/spector.ts +9 -6
- package/src/context/debug/webgl-developer-tools.ts +27 -14
- package/src/context/{context → helpers}/create-browser-context.ts +3 -2
- package/src/context/helpers/webgl-context-data.ts +31 -0
- package/src/context/helpers/webgl-extensions.ts +17 -0
- package/src/context/parameters/unified-parameter-api.ts +6 -17
- package/src/context/parameters/webgl-parameter-tables.ts +69 -32
- package/src/context/state-tracker/deep-array-equal.ts +2 -1
- package/src/context/state-tracker/track-context-state.ts +11 -6
- package/src/context/state-tracker/with-parameters.ts +8 -8
- package/src/index.ts +7 -6
- package/src/types.ts +2 -1
- package/dist/adapter/device-helpers/device-features.d.ts +0 -6
- package/dist/adapter/device-helpers/device-features.d.ts.map +0 -1
- package/dist/adapter/device-helpers/device-features.js +0 -65
- package/dist/adapter/device-helpers/device-limits.d.ts +0 -50
- package/dist/adapter/device-helpers/device-limits.d.ts.map +0 -1
- package/dist/adapter/device-helpers/device-limits.js +0 -92
- package/dist/adapter/device-helpers/get-device-info.d.ts +0 -4
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +0 -1
- package/dist/adapter/device-helpers/get-device-info.js +0 -87
- package/dist/context/context/context-data.d.ts.map +0 -1
- package/dist/context/context/context-data.js +0 -33
- package/src/context/context/context-data.ts +0 -44
- /package/dist/context/{context → helpers}/create-browser-context.d.ts +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
4
|
import { GL } from '@luma.gl/constants';
|
|
4
5
|
/** Check is uniform is of sampler type */
|
|
@@ -6,50 +7,50 @@ export function isSamplerUniform(type) {
|
|
|
6
7
|
return SAMPLER_TYPES.includes(type);
|
|
7
8
|
}
|
|
8
9
|
const SAMPLER_TYPES = [
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
10
|
+
35678,
|
|
11
|
+
35680,
|
|
12
|
+
35679,
|
|
13
|
+
35682,
|
|
14
|
+
36289,
|
|
15
|
+
36292,
|
|
16
|
+
36293,
|
|
17
|
+
36298,
|
|
18
|
+
36299,
|
|
19
|
+
36300,
|
|
20
|
+
36303,
|
|
21
|
+
36306,
|
|
22
|
+
36307,
|
|
23
|
+
36308,
|
|
24
|
+
36311
|
|
24
25
|
];
|
|
25
26
|
// Composite types table
|
|
26
27
|
const COMPOSITE_GL_TYPES = {
|
|
27
|
-
[
|
|
28
|
-
[
|
|
29
|
-
[
|
|
30
|
-
[
|
|
31
|
-
[
|
|
32
|
-
[
|
|
33
|
-
[
|
|
34
|
-
[
|
|
35
|
-
[
|
|
36
|
-
[
|
|
37
|
-
[
|
|
38
|
-
[
|
|
39
|
-
[
|
|
40
|
-
[
|
|
41
|
-
[
|
|
42
|
-
[
|
|
28
|
+
[5126]: [5126, 1, 'float', 'f32', 'float32'],
|
|
29
|
+
[35664]: [5126, 2, 'vec2', 'vec2<f32>', 'float32x2'],
|
|
30
|
+
[35665]: [5126, 3, 'vec3', 'vec3<f32>', 'float32x3'],
|
|
31
|
+
[35666]: [5126, 4, 'vec4', 'vec4<f32>', 'float32x4'],
|
|
32
|
+
[5124]: [5124, 1, 'int', 'i32', 'sint32'],
|
|
33
|
+
[35667]: [5124, 2, 'ivec2', 'vec2<i32>', 'sint32x2'],
|
|
34
|
+
[35668]: [5124, 3, 'ivec3', 'vec3<i32>', 'sint32x3'],
|
|
35
|
+
[35669]: [5124, 4, 'ivec4', 'vec4<i32>', 'sint32x4'],
|
|
36
|
+
[5125]: [5125, 1, 'uint', 'u32', 'uint32'],
|
|
37
|
+
[36294]: [5125, 2, 'uvec2', 'vec2<u32>', 'uint32x2'],
|
|
38
|
+
[36295]: [5125, 3, 'uvec3', 'vec3<u32>', 'uint32x3'],
|
|
39
|
+
[36296]: [5125, 4, 'uvec4', 'vec4<u32>', 'uint32x4'],
|
|
40
|
+
[35670]: [5126, 1, 'bool', 'f32', 'float32'],
|
|
41
|
+
[35671]: [5126, 2, 'bvec2', 'vec2<f32>', 'float32x2'],
|
|
42
|
+
[35672]: [5126, 3, 'bvec3', 'vec3<f32>', 'float32x3'],
|
|
43
|
+
[35673]: [5126, 4, 'bvec4', 'vec4<f32>', 'float32x4'],
|
|
43
44
|
// TODO - are sizes/components below correct?
|
|
44
|
-
[
|
|
45
|
-
[
|
|
46
|
-
[
|
|
47
|
-
[
|
|
48
|
-
[
|
|
49
|
-
[
|
|
50
|
-
[
|
|
51
|
-
[
|
|
52
|
-
[
|
|
45
|
+
[35674]: [5126, 8, 'mat2', 'mat2x2<f32>'], // 4
|
|
46
|
+
[35685]: [5126, 8, 'mat2x3', 'mat2x3<f32>'], // 6
|
|
47
|
+
[35686]: [5126, 8, 'mat2x4', 'mat2x4<f32>'], // 8
|
|
48
|
+
[35687]: [5126, 12, 'mat3x2', 'mat3x2<f32>'], // 6
|
|
49
|
+
[35675]: [5126, 12, 'mat3', 'mat3x3<f32>'], // 9
|
|
50
|
+
[35688]: [5126, 12, 'mat3x4', 'mat3x4<f32>'], // 12
|
|
51
|
+
[35689]: [5126, 16, 'mat4x2', 'mat4x2<f32>'], // 8
|
|
52
|
+
[35690]: [5126, 16, 'mat4x3', 'mat4x3<f32>'], // 12
|
|
53
|
+
[35676]: [5126, 16, 'mat4', 'mat4x4<f32>'] // 16
|
|
53
54
|
};
|
|
54
55
|
/** Decomposes a composite type (GL.VEC3) into a basic type (GL.FLOAT) and components (3) */
|
|
55
56
|
export function decodeGLUniformType(glUniformType) {
|
|
@@ -82,11 +83,11 @@ export function decomposeCompositeGLDataType(compositeGLDataType) {
|
|
|
82
83
|
}
|
|
83
84
|
export function getCompositeGLDataType(type, components) {
|
|
84
85
|
switch (type) {
|
|
85
|
-
case
|
|
86
|
-
case
|
|
87
|
-
case
|
|
88
|
-
case
|
|
89
|
-
type =
|
|
86
|
+
case 5120:
|
|
87
|
+
case 5121:
|
|
88
|
+
case 5122:
|
|
89
|
+
case 5123:
|
|
90
|
+
type = 5126;
|
|
90
91
|
break;
|
|
91
92
|
default:
|
|
92
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-shader-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-shader-layout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-shader-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-shader-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EAKb,MAAM,eAAe,CAAC;AAMvB;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CA2D/F"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
4
|
import { GL } from '@luma.gl/constants';
|
|
4
|
-
import { Accessor } from
|
|
5
|
-
import { decodeGLUniformType, decodeGLAttributeType, isSamplerUniform } from
|
|
5
|
+
import { Accessor } from "../../classic/accessor.js"; // TODO - should NOT depend on classic API
|
|
6
|
+
import { decodeGLUniformType, decodeGLAttributeType, isSamplerUniform } from "./decode-webgl-types.js";
|
|
6
7
|
/**
|
|
7
8
|
* Extract metadata describing binding information for a program's shaders
|
|
8
9
|
* Note: `linkProgram()` needs to have been called
|
|
@@ -69,7 +70,7 @@ export function getShaderLayout(gl, program) {
|
|
|
69
70
|
*/
|
|
70
71
|
function readAttributeDeclarations(gl, program) {
|
|
71
72
|
const attributes = [];
|
|
72
|
-
const count = gl.getProgramParameter(program,
|
|
73
|
+
const count = gl.getProgramParameter(program, 35721);
|
|
73
74
|
for (let index = 0; index < count; index++) {
|
|
74
75
|
const activeInfo = gl.getActiveAttrib(program, index);
|
|
75
76
|
if (!activeInfo) {
|
|
@@ -80,7 +81,7 @@ function readAttributeDeclarations(gl, program) {
|
|
|
80
81
|
// Add only user provided attributes, for built-in attributes like `gl_InstanceID` location will be < 0
|
|
81
82
|
if (location >= 0) {
|
|
82
83
|
const { attributeType } = decodeGLAttributeType(compositeType);
|
|
83
|
-
// Whether an attribute is instanced is essentially fixed by the structure of the shader code,
|
|
84
|
+
// Whether an attribute is instanced is essentially fixed by the structure of the shader code,
|
|
84
85
|
// so it is arguably a static property of the shader.
|
|
85
86
|
// There is no hint in the shader declarations
|
|
86
87
|
// Heuristic: Any attribute name containing the word "instance" will be assumed to be instanced
|
|
@@ -89,7 +90,7 @@ function readAttributeDeclarations(gl, program) {
|
|
|
89
90
|
name,
|
|
90
91
|
location,
|
|
91
92
|
stepMode,
|
|
92
|
-
type: attributeType
|
|
93
|
+
type: attributeType
|
|
93
94
|
// size - for arrays, size is the number of elements in the array
|
|
94
95
|
});
|
|
95
96
|
}
|
|
@@ -105,7 +106,7 @@ function readAttributeDeclarations(gl, program) {
|
|
|
105
106
|
*/
|
|
106
107
|
function readVaryings(gl, program) {
|
|
107
108
|
const varyings = [];
|
|
108
|
-
const count = gl.getProgramParameter(program,
|
|
109
|
+
const count = gl.getProgramParameter(program, 35971);
|
|
109
110
|
for (let location = 0; location < count; location++) {
|
|
110
111
|
const activeInfo = gl.getTransformFeedbackVarying(program, location);
|
|
111
112
|
if (!activeInfo) {
|
|
@@ -127,7 +128,7 @@ function readVaryings(gl, program) {
|
|
|
127
128
|
*/
|
|
128
129
|
function readUniformBindings(gl, program) {
|
|
129
130
|
const uniforms = [];
|
|
130
|
-
const uniformCount = gl.getProgramParameter(program,
|
|
131
|
+
const uniformCount = gl.getProgramParameter(program, 35718);
|
|
131
132
|
for (let i = 0; i < uniformCount; i++) {
|
|
132
133
|
const activeInfo = gl.getActiveUniform(program, i);
|
|
133
134
|
if (!activeInfo) {
|
|
@@ -168,27 +169,27 @@ function readUniformBindings(gl, program) {
|
|
|
168
169
|
function readUniformBlocks(gl, program) {
|
|
169
170
|
const getBlockParameter = (blockIndex, pname) => gl.getActiveUniformBlockParameter(program, blockIndex, pname);
|
|
170
171
|
const uniformBlocks = [];
|
|
171
|
-
const blockCount = gl.getProgramParameter(program,
|
|
172
|
+
const blockCount = gl.getProgramParameter(program, 35382);
|
|
172
173
|
for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {
|
|
173
174
|
const blockInfo = {
|
|
174
175
|
name: gl.getActiveUniformBlockName(program, blockIndex) || '',
|
|
175
|
-
location: getBlockParameter(blockIndex,
|
|
176
|
-
byteLength: getBlockParameter(blockIndex,
|
|
177
|
-
vertex: getBlockParameter(blockIndex,
|
|
178
|
-
fragment: getBlockParameter(blockIndex,
|
|
179
|
-
uniformCount: getBlockParameter(blockIndex,
|
|
176
|
+
location: getBlockParameter(blockIndex, 35391),
|
|
177
|
+
byteLength: getBlockParameter(blockIndex, 35392),
|
|
178
|
+
vertex: getBlockParameter(blockIndex, 35396),
|
|
179
|
+
fragment: getBlockParameter(blockIndex, 35398),
|
|
180
|
+
uniformCount: getBlockParameter(blockIndex, 35394),
|
|
180
181
|
uniforms: []
|
|
181
182
|
};
|
|
182
|
-
const uniformIndices = getBlockParameter(blockIndex,
|
|
183
|
-
const uniformType = gl.getActiveUniforms(program, uniformIndices,
|
|
184
|
-
const uniformArrayLength = gl.getActiveUniforms(program, uniformIndices,
|
|
183
|
+
const uniformIndices = getBlockParameter(blockIndex, 35395) || [];
|
|
184
|
+
const uniformType = gl.getActiveUniforms(program, uniformIndices, 35383); // Array of GLenum indicating the types of the uniforms.
|
|
185
|
+
const uniformArrayLength = gl.getActiveUniforms(program, uniformIndices, 35384); // Array of GLuint indicating the sizes of the uniforms.
|
|
185
186
|
// const uniformBlockIndex = gl.getActiveUniforms(
|
|
186
187
|
// program,
|
|
187
188
|
// uniformIndices,
|
|
188
189
|
// GL.UNIFORM_BLOCK_INDEX
|
|
189
190
|
// ); // Array of GLint indicating the block indices of the uniforms.
|
|
190
|
-
const uniformOffset = gl.getActiveUniforms(program, uniformIndices,
|
|
191
|
-
const uniformStride = gl.getActiveUniforms(program, uniformIndices,
|
|
191
|
+
const uniformOffset = gl.getActiveUniforms(program, uniformIndices, 35387); // Array of GLint indicating the uniform buffer offsets.
|
|
192
|
+
const uniformStride = gl.getActiveUniforms(program, uniformIndices, 35388); // Array of GLint indicating the strides between the elements.
|
|
192
193
|
// const uniformMatrixStride = gl.getActiveUniforms(
|
|
193
194
|
// program,
|
|
194
195
|
// uniformIndices,
|
|
@@ -237,21 +238,21 @@ function readUniformBlocks(gl, program) {
|
|
|
237
238
|
}
|
|
238
239
|
*/
|
|
239
240
|
const SAMPLER_UNIFORMS_GL_TO_GPU = {
|
|
240
|
-
[
|
|
241
|
-
[
|
|
242
|
-
[
|
|
243
|
-
[
|
|
244
|
-
[
|
|
245
|
-
[
|
|
246
|
-
[
|
|
247
|
-
[
|
|
248
|
-
[
|
|
249
|
-
[
|
|
250
|
-
[
|
|
251
|
-
[
|
|
252
|
-
[
|
|
253
|
-
[
|
|
254
|
-
[
|
|
241
|
+
[35678]: ['2d', 'float'],
|
|
242
|
+
[35680]: ['cube', 'float'],
|
|
243
|
+
[35679]: ['3d', 'float'],
|
|
244
|
+
[35682]: ['3d', 'depth'],
|
|
245
|
+
[36289]: ['2d-array', 'float'],
|
|
246
|
+
[36292]: ['2d-array', 'depth'],
|
|
247
|
+
[36293]: ['cube', 'float'],
|
|
248
|
+
[36298]: ['2d', 'sint'],
|
|
249
|
+
[36299]: ['3d', 'sint'],
|
|
250
|
+
[36300]: ['cube', 'sint'],
|
|
251
|
+
[36303]: ['2d-array', 'uint'],
|
|
252
|
+
[36306]: ['2d', 'uint'],
|
|
253
|
+
[36307]: ['3d', 'uint'],
|
|
254
|
+
[36308]: ['cube', 'uint'],
|
|
255
|
+
[36311]: ['2d-array', 'uint']
|
|
255
256
|
};
|
|
256
257
|
function getSamplerInfo(type) {
|
|
257
258
|
const sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-shader-compiler-log.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/parse-shader-compiler-log.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse-shader-compiler-log.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/parse-shader-compiler-log.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CA8CjF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
4
|
/**
|
|
4
5
|
* Parse a WebGL-format GLSL compilation log into an array of WebGPU style message records.
|
|
@@ -23,7 +24,7 @@ export function parseShaderCompilerLog(errLog) {
|
|
|
23
24
|
lineNum: 0,
|
|
24
25
|
linePos: 0
|
|
25
26
|
});
|
|
26
|
-
continue; // eslint-disable-line no-continue
|
|
27
|
+
continue; // eslint-disable-line no-continue
|
|
27
28
|
}
|
|
28
29
|
const [messageType, linePosition, lineNumber, ...rest] = segments;
|
|
29
30
|
let lineNum = parseInt(lineNumber, 10);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-uniform.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/set-uniform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"set-uniform.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/set-uniform.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAK,eAAe,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEtE,8DAA8D;AAE9D,wBAAgB,UAAU,CACxB,EAAE,EAAE,sBAAsB,EAC1B,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,EAAE,eAAe,GAAG,aAAa,EACrC,KAAK,EAAE,YAAY,GAClB,IAAI,CAwEN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
4
|
import { GL } from '@luma.gl/constants';
|
|
4
5
|
/** Set a raw uniform (without type conversion and caching) */
|
|
@@ -16,54 +17,54 @@ export function setUniform(gl, location, type, value) {
|
|
|
16
17
|
const arrayValue = typeof uniformValue === 'number' ? [uniformValue] : uniformValue;
|
|
17
18
|
// prettier-ignore
|
|
18
19
|
switch (type) {
|
|
19
|
-
case
|
|
20
|
-
case
|
|
21
|
-
case
|
|
22
|
-
case
|
|
23
|
-
case
|
|
24
|
-
case
|
|
25
|
-
case
|
|
26
|
-
case
|
|
27
|
-
case
|
|
28
|
-
case
|
|
29
|
-
case
|
|
30
|
-
case
|
|
31
|
-
case
|
|
32
|
-
case
|
|
33
|
-
case
|
|
20
|
+
case 35678:
|
|
21
|
+
case 35680:
|
|
22
|
+
case 35679:
|
|
23
|
+
case 35682:
|
|
24
|
+
case 36289:
|
|
25
|
+
case 36292:
|
|
26
|
+
case 36293:
|
|
27
|
+
case 36298:
|
|
28
|
+
case 36299:
|
|
29
|
+
case 36300:
|
|
30
|
+
case 36303:
|
|
31
|
+
case 36306:
|
|
32
|
+
case 36307:
|
|
33
|
+
case 36308:
|
|
34
|
+
case 36311:
|
|
34
35
|
if (typeof value !== 'number') {
|
|
35
36
|
throw new Error('samplers must be set to integers');
|
|
36
37
|
}
|
|
37
38
|
return gl.uniform1i(location, value);
|
|
38
|
-
case
|
|
39
|
-
case
|
|
40
|
-
case
|
|
41
|
-
case
|
|
42
|
-
case
|
|
43
|
-
case
|
|
44
|
-
case
|
|
45
|
-
case
|
|
46
|
-
case
|
|
47
|
-
case
|
|
48
|
-
case
|
|
49
|
-
case
|
|
39
|
+
case 5126: return gl.uniform1fv(location, arrayValue);
|
|
40
|
+
case 35664: return gl.uniform2fv(location, arrayValue);
|
|
41
|
+
case 35665: return gl.uniform3fv(location, arrayValue);
|
|
42
|
+
case 35666: return gl.uniform4fv(location, arrayValue);
|
|
43
|
+
case 5124: return gl.uniform1iv(location, arrayValue);
|
|
44
|
+
case 35667: return gl.uniform2iv(location, arrayValue);
|
|
45
|
+
case 35668: return gl.uniform3iv(location, arrayValue);
|
|
46
|
+
case 35669: return gl.uniform4iv(location, arrayValue);
|
|
47
|
+
case 35670: return gl.uniform1iv(location, arrayValue);
|
|
48
|
+
case 35671: return gl.uniform2iv(location, arrayValue);
|
|
49
|
+
case 35672: return gl.uniform3iv(location, arrayValue);
|
|
50
|
+
case 35673: return gl.uniform4iv(location, arrayValue);
|
|
50
51
|
// WEBGL2 - unsigned integers
|
|
51
|
-
case
|
|
52
|
-
case
|
|
53
|
-
case
|
|
54
|
-
case
|
|
52
|
+
case 5125: return gl2.uniform1uiv(location, arrayValue, 1);
|
|
53
|
+
case 36294: return gl2.uniform2uiv(location, arrayValue, 2);
|
|
54
|
+
case 36295: return gl2.uniform3uiv(location, arrayValue, 3);
|
|
55
|
+
case 36296: return gl2.uniform4uiv(location, arrayValue, 4);
|
|
55
56
|
// WebGL2 - quadratic matrices
|
|
56
57
|
// false: don't transpose the matrix
|
|
57
|
-
case
|
|
58
|
-
case
|
|
59
|
-
case
|
|
58
|
+
case 35674: return gl.uniformMatrix2fv(location, false, arrayValue);
|
|
59
|
+
case 35675: return gl.uniformMatrix3fv(location, false, arrayValue);
|
|
60
|
+
case 35676: return gl.uniformMatrix4fv(location, false, arrayValue);
|
|
60
61
|
// WebGL2 - rectangular matrices
|
|
61
|
-
case
|
|
62
|
-
case
|
|
63
|
-
case
|
|
64
|
-
case
|
|
65
|
-
case
|
|
66
|
-
case
|
|
62
|
+
case 35685: return gl2.uniformMatrix2x3fv(location, false, arrayValue);
|
|
63
|
+
case 35686: return gl2.uniformMatrix2x4fv(location, false, arrayValue);
|
|
64
|
+
case 35687: return gl2.uniformMatrix3x2fv(location, false, arrayValue);
|
|
65
|
+
case 35688: return gl2.uniformMatrix3x4fv(location, false, arrayValue);
|
|
66
|
+
case 35689: return gl2.uniformMatrix4x2fv(location, false, arrayValue);
|
|
67
|
+
case 35690: return gl2.uniformMatrix4x3fv(location, false, arrayValue);
|
|
67
68
|
}
|
|
68
69
|
throw new Error('Illegal uniform');
|
|
69
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-topology-utils.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/webgl-topology-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webgl-topology-utils.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/webgl-topology-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAE,mBAAmB,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAGhD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,WAAW,CAmB/E;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAkBT;AAGD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAaT;AAED,sCAAsC;AACtC,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,iBAAiB,GAEzB,EAAE,CAAC,MAAM,GACT,EAAE,CAAC,KAAK,GACR,EAAE,CAAC,UAAU,GACb,EAAE,CAAC,SAAS,GACZ,EAAE,CAAC,SAAS,GACZ,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,YAAY,CAYlB;AAED,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAY/F"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
4
|
import { GL } from '@luma.gl/constants';
|
|
4
5
|
// Counts the number of complete primitives given a number of vertices and a drawMode
|
|
5
6
|
export function getPrimitiveDrawMode(drawMode) {
|
|
6
7
|
switch (drawMode) {
|
|
7
|
-
case
|
|
8
|
-
return
|
|
9
|
-
case
|
|
10
|
-
return
|
|
11
|
-
case
|
|
12
|
-
return
|
|
13
|
-
case
|
|
14
|
-
return
|
|
15
|
-
case
|
|
16
|
-
return
|
|
17
|
-
case
|
|
18
|
-
return
|
|
19
|
-
case
|
|
20
|
-
return
|
|
8
|
+
case 0:
|
|
9
|
+
return 0;
|
|
10
|
+
case 1:
|
|
11
|
+
return 1;
|
|
12
|
+
case 3:
|
|
13
|
+
return 1;
|
|
14
|
+
case 2:
|
|
15
|
+
return 1;
|
|
16
|
+
case 4:
|
|
17
|
+
return 4;
|
|
18
|
+
case 5:
|
|
19
|
+
return 4;
|
|
20
|
+
case 6:
|
|
21
|
+
return 4;
|
|
21
22
|
default:
|
|
22
23
|
throw new Error('drawMode');
|
|
23
24
|
}
|
|
@@ -26,17 +27,17 @@ export function getPrimitiveDrawMode(drawMode) {
|
|
|
26
27
|
export function getPrimitiveCount(options) {
|
|
27
28
|
const { drawMode, vertexCount } = options;
|
|
28
29
|
switch (drawMode) {
|
|
29
|
-
case
|
|
30
|
-
case
|
|
30
|
+
case 0:
|
|
31
|
+
case 2:
|
|
31
32
|
return vertexCount;
|
|
32
|
-
case
|
|
33
|
+
case 1:
|
|
33
34
|
return vertexCount / 2;
|
|
34
|
-
case
|
|
35
|
+
case 3:
|
|
35
36
|
return vertexCount - 1;
|
|
36
|
-
case
|
|
37
|
+
case 4:
|
|
37
38
|
return vertexCount / 3;
|
|
38
|
-
case
|
|
39
|
-
case
|
|
39
|
+
case 5:
|
|
40
|
+
case 6:
|
|
40
41
|
return vertexCount - 2;
|
|
41
42
|
default:
|
|
42
43
|
throw new Error('drawMode');
|
|
@@ -47,11 +48,11 @@ export function getVertexCount(options) {
|
|
|
47
48
|
const { drawMode, vertexCount } = options;
|
|
48
49
|
const primitiveCount = getPrimitiveCount({ drawMode, vertexCount });
|
|
49
50
|
switch (getPrimitiveDrawMode(drawMode)) {
|
|
50
|
-
case
|
|
51
|
+
case 0:
|
|
51
52
|
return primitiveCount;
|
|
52
|
-
case
|
|
53
|
+
case 1:
|
|
53
54
|
return primitiveCount * 2;
|
|
54
|
-
case
|
|
55
|
+
case 4:
|
|
55
56
|
return primitiveCount * 3;
|
|
56
57
|
default:
|
|
57
58
|
throw new Error('drawMode');
|
|
@@ -61,13 +62,13 @@ export function getVertexCount(options) {
|
|
|
61
62
|
export function getGLDrawMode(topology) {
|
|
62
63
|
// prettier-ignore
|
|
63
64
|
switch (topology) {
|
|
64
|
-
case 'point-list': return
|
|
65
|
-
case 'line-list': return
|
|
66
|
-
case 'line-strip': return
|
|
67
|
-
case 'line-loop-webgl': return
|
|
68
|
-
case 'triangle-list': return
|
|
69
|
-
case 'triangle-strip': return
|
|
70
|
-
case 'triangle-fan-webgl': return
|
|
65
|
+
case 'point-list': return 0;
|
|
66
|
+
case 'line-list': return 1;
|
|
67
|
+
case 'line-strip': return 3;
|
|
68
|
+
case 'line-loop-webgl': return 2;
|
|
69
|
+
case 'triangle-list': return 4;
|
|
70
|
+
case 'triangle-strip': return 5;
|
|
71
|
+
case 'triangle-fan-webgl': return 6;
|
|
71
72
|
default: throw new Error(topology);
|
|
72
73
|
}
|
|
73
74
|
}
|
|
@@ -75,13 +76,13 @@ export function getGLDrawMode(topology) {
|
|
|
75
76
|
export function getGLPrimitive(topology) {
|
|
76
77
|
// prettier-ignore
|
|
77
78
|
switch (topology) {
|
|
78
|
-
case 'point-list': return
|
|
79
|
-
case 'line-list': return
|
|
80
|
-
case 'line-strip': return
|
|
81
|
-
case 'line-loop-webgl': return
|
|
82
|
-
case 'triangle-list': return
|
|
83
|
-
case 'triangle-strip': return
|
|
84
|
-
case 'triangle-fan-webgl': return
|
|
79
|
+
case 'point-list': return 0;
|
|
80
|
+
case 'line-list': return 1;
|
|
81
|
+
case 'line-strip': return 1;
|
|
82
|
+
case 'line-loop-webgl': return 1;
|
|
83
|
+
case 'triangle-list': return 4;
|
|
84
|
+
case 'triangle-strip': return 4;
|
|
85
|
+
case 'triangle-fan-webgl': return 4;
|
|
85
86
|
default: throw new Error(topology);
|
|
86
87
|
}
|
|
87
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-to-keys.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/constants-to-keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants-to-keys.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/constants-to-keys.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAGtC,wBAAgB,WAAW,CAAC,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,CAkB7E"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ResourceProps, TextureFormat } from '@luma.gl/core';
|
|
2
2
|
import { GL } from '@luma.gl/constants';
|
|
3
|
-
import { WebGLDevice } from
|
|
4
|
-
import { WebGLResource } from
|
|
3
|
+
import { WebGLDevice } from "../webgl-device.js";
|
|
4
|
+
import { WebGLResource } from "./webgl-resource.js";
|
|
5
5
|
export type RenderbufferProps = ResourceProps & {
|
|
6
6
|
format: TextureFormat;
|
|
7
7
|
width?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-renderbuffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webgl-renderbuffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,aAAa,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AACnE,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAC5C,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAO/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACrE,gBAAyB,YAAY,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAQhE;IAEF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,IAAI,aAAa,CAE1B;IACD,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,UAAU,SAEb;IAED,4BAA4B;IAC5B,QAAQ,EAAE,EAAE,CAAC;IAEb,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO;gBAIxE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB;IAUzD,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAUnD,iEAAiE;IACjE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI;IA6BtD,aAAa;IAIb,aAAa,IAAI,IAAI;IAKrB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAGtD"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
4
|
import { assert } from '@luma.gl/core';
|
|
4
5
|
import { GL } from '@luma.gl/constants';
|
|
5
|
-
import { WebGLResource } from
|
|
6
|
-
import { isRenderbufferFormatSupported } from
|
|
7
|
-
import { convertTextureFormatToGL, getTextureFormatBytesPerPixel } from
|
|
6
|
+
import { WebGLResource } from "./webgl-resource.js";
|
|
7
|
+
import { isRenderbufferFormatSupported } from "../converters/texture-formats.js";
|
|
8
|
+
import { convertTextureFormatToGL, getTextureFormatBytesPerPixel } from "../converters/texture-formats.js";
|
|
8
9
|
/**
|
|
9
10
|
* Renderbuffers are GPU objects that contain images.
|
|
10
11
|
* In contrast to Textures they are optimized for use as render targets, with Framebuffers.
|
|
@@ -25,16 +26,28 @@ export class WEBGLRenderbuffer extends WebGLResource {
|
|
|
25
26
|
height: 1,
|
|
26
27
|
samples: 0
|
|
27
28
|
};
|
|
28
|
-
get [Symbol.toStringTag]() {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
get
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
get [Symbol.toStringTag]() {
|
|
30
|
+
return 'Renderbuffer';
|
|
31
|
+
}
|
|
32
|
+
get width() {
|
|
33
|
+
return this.props.width;
|
|
34
|
+
}
|
|
35
|
+
get height() {
|
|
36
|
+
return this.props.height;
|
|
37
|
+
}
|
|
38
|
+
get format() {
|
|
39
|
+
return this.props.format;
|
|
40
|
+
}
|
|
41
|
+
get samples() {
|
|
42
|
+
return this.props.samples;
|
|
43
|
+
}
|
|
44
|
+
get attachment() {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
34
47
|
/** WebGL format constant */
|
|
35
48
|
glFormat;
|
|
36
49
|
static isTextureFormatSupported(device, format) {
|
|
37
|
-
return isRenderbufferFormatSupported(device.gl, format);
|
|
50
|
+
return isRenderbufferFormatSupported(device.gl, format, device._extensions);
|
|
38
51
|
}
|
|
39
52
|
constructor(device, props) {
|
|
40
53
|
// TODO - remove temporary sanity check
|
|
@@ -58,15 +71,15 @@ export class WEBGLRenderbuffer extends WebGLResource {
|
|
|
58
71
|
const { format, width, height, samples } = props;
|
|
59
72
|
assert(format, 'Needs format');
|
|
60
73
|
this.trackDeallocatedMemory();
|
|
61
|
-
this.gl.bindRenderbuffer(
|
|
74
|
+
this.gl.bindRenderbuffer(36161, this.handle);
|
|
62
75
|
if (samples !== 0) {
|
|
63
|
-
this.gl.renderbufferStorageMultisample(
|
|
76
|
+
this.gl.renderbufferStorageMultisample(36161, samples, this.glFormat, width, height);
|
|
64
77
|
}
|
|
65
78
|
else {
|
|
66
|
-
this.gl.renderbufferStorage(
|
|
79
|
+
this.gl.renderbufferStorage(36161, this.glFormat, width, height);
|
|
67
80
|
}
|
|
68
|
-
this.gl.bindRenderbuffer(
|
|
69
|
-
this.trackAllocatedMemory(width * height * (samples || 1) * getTextureFormatBytesPerPixel(this.
|
|
81
|
+
this.gl.bindRenderbuffer(36161, null);
|
|
82
|
+
this.trackAllocatedMemory(width * height * (samples || 1) * getTextureFormatBytesPerPixel(this.format));
|
|
70
83
|
}
|
|
71
84
|
// RESOURCE IMPLEMENTATION
|
|
72
85
|
_createHandle() {
|
|
@@ -77,6 +90,6 @@ export class WEBGLRenderbuffer extends WebGLResource {
|
|
|
77
90
|
this.trackDeallocatedMemory();
|
|
78
91
|
}
|
|
79
92
|
_bindHandle(handle) {
|
|
80
|
-
this.gl.bindRenderbuffer(
|
|
93
|
+
this.gl.bindRenderbuffer(36161, handle);
|
|
81
94
|
}
|
|
82
95
|
}
|