@luma.gl/webgl 9.0.0-beta.5 → 9.0.0-beta.6
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 +71 -11
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +3 -2
- 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 +10 -7
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +76 -64
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/vertex-formats.js +2 -1
- package/dist/adapter/device-helpers/webgl-device-features.d.ts +18 -5
- package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-features.js +77 -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 +17 -14
- 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 +2 -1
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +6 -5
- 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 +2 -1
- package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.js +2 -1
- 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 +24 -11
- 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 -100
- 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 +2 -1
- 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 +7 -6
- 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 +3 -2
- package/dist/adapter/resources/webgl-framebuffer.d.ts +6 -8
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +25 -23
- 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 +15 -7
- 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 +34 -49
- 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 +3 -2
- 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 +12 -6
- 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 +4 -3
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +12 -7
- 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 +2 -2
- 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 +5 -4
- 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 +29 -27
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +90 -94
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +4 -3
- package/dist/classic/clear.d.ts.map +1 -1
- package/dist/classic/clear.js +3 -2
- 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 +5 -4
- package/dist/classic/format-utils.d.ts +2 -2
- package/dist/classic/format-utils.d.ts.map +1 -1
- package/dist/classic/format-utils.js +2 -1
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +2 -1
- 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/helpers/create-browser-context.d.ts +35 -0
- package/dist/context/helpers/create-browser-context.d.ts.map +1 -0
- package/dist/context/helpers/create-browser-context.js +67 -0
- package/dist/context/helpers/webgl-context-data.d.ts +13 -0
- 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.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +4 -3
- package/dist/context/parameters/webgl-parameter-tables.d.ts +10 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +29 -16
- 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 +1 -1
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +5 -4
- package/dist/dist.dev.js +941 -730
- package/dist/index.cjs +732 -565
- 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 +5 -5
- package/package.json +4 -4
- package/src/adapter/converters/device-parameters.ts +105 -16
- 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 +87 -66
- package/src/adapter/converters/vertex-formats.ts +3 -3
- package/src/adapter/device-helpers/webgl-device-features.ts +83 -51
- 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 +35 -13
- package/src/adapter/objects/webgl-resource.ts +6 -124
- 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 +3 -2
- package/src/adapter/resources/webgl-framebuffer.ts +34 -29
- package/src/adapter/resources/webgl-query-set.ts +171 -0
- package/src/adapter/resources/webgl-render-pass.ts +17 -8
- package/src/adapter/resources/webgl-render-pipeline.ts +41 -48
- 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 +9 -2
- 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 +94 -90
- package/src/classic/accessor.ts +5 -4
- package/src/classic/clear.ts +12 -6
- 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 +2 -1
- 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 +7 -2
- package/src/index.ts +3 -2
- package/src/types.ts +2 -1
- package/src/context/context/context-data.ts +0 -44
package/dist/classic/accessor.js
CHANGED
|
@@ -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 { assert, checkProps } from '@luma.gl/core';
|
|
4
5
|
import { GL } from '@luma.gl/constants';
|
|
5
|
-
import { getTypedArrayFromGLType } from
|
|
6
|
+
import { getTypedArrayFromGLType } from "./typed-array-utils.js";
|
|
6
7
|
const DEFAULT_ACCESSOR_VALUES = {
|
|
7
8
|
offset: 0,
|
|
8
9
|
stride: 0,
|
|
@@ -49,7 +50,7 @@ export class Accessor {
|
|
|
49
50
|
return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values
|
|
50
51
|
}
|
|
51
52
|
constructor(...accessors) {
|
|
52
|
-
accessors.forEach(
|
|
53
|
+
accessors.forEach(accessor => this._assign(accessor)); // Merge in sequence
|
|
53
54
|
Object.freeze(this);
|
|
54
55
|
}
|
|
55
56
|
toString() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/classic/clear.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/classic/clear.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAS,MAAM,eAAe,CAAC;AAiB1D;;;GAGG;AACH,wBAAgB,KAAK,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,CAAA;CAAC,GAC7E,IAAI,CAsCN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAC,QA2CnF"}
|
package/dist/classic/clear.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
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
|
-
import { withGLParameters } from
|
|
5
|
+
import { withGLParameters } from "../context/state-tracker/with-parameters.js";
|
|
5
6
|
// Should collapse during minification
|
|
6
7
|
const GL_DEPTH_BUFFER_BIT = 0x00000100;
|
|
7
8
|
const GL_STENCIL_BUFFER_BIT = 0x00000400;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Buffer, Texture, Framebuffer, FramebufferProps } from '@luma.gl/core';
|
|
2
2
|
import { GL } from '@luma.gl/constants';
|
|
3
|
-
import { WEBGLBuffer } from
|
|
3
|
+
import { WEBGLBuffer } from "../adapter/resources/webgl-buffer.js";
|
|
4
4
|
/**
|
|
5
5
|
* Copies data from a type or a Texture object into ArrayBuffer object.
|
|
6
6
|
* App can provide targetPixelArray or have it auto allocated by this method
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-and-blit.d.ts","sourceRoot":"","sources":["../../src/classic/copy-and-blit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"copy-and-blit.d.ts","sourceRoot":"","sources":["../../src/classic/copy-and-blit.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACrF,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAMtC,OAAO,EAAC,WAAW,EAAC,6CAA0C;AAE9D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IAEjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,UAAU,GAAG,WAAW,GAAG,YAAY,CAiDzC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,WAAW,CA+Cb;AAED;;;GAGG;AAEH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,MAAM,EAAE,OAAO,GAAG,EAAE,EACpB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CA+FT;AAYD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAUrF"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
4
|
import { assert, Texture, Framebuffer } from '@luma.gl/core';
|
|
4
5
|
import { GL } from '@luma.gl/constants';
|
|
5
|
-
import { getGLTypeFromTypedArray, getTypedArrayFromGLType } from
|
|
6
|
-
import { glFormatToComponents, glTypeToBytes } from
|
|
6
|
+
import { getGLTypeFromTypedArray, getTypedArrayFromGLType } from "./typed-array-utils.js";
|
|
7
|
+
import { glFormatToComponents, glTypeToBytes } from "./format-utils.js";
|
|
7
8
|
/**
|
|
8
9
|
* Copies data from a type or a Texture object into ArrayBuffer object.
|
|
9
10
|
* App can provide targetPixelArray or have it auto allocated by this method
|
|
@@ -35,7 +36,7 @@ export function readPixelsToArray(source, options) {
|
|
|
35
36
|
// Deduce the type from color attachment if not provided.
|
|
36
37
|
sourceType =
|
|
37
38
|
sourceType ||
|
|
38
|
-
framebuffer.colorAttachments[attachment]?.type ||
|
|
39
|
+
framebuffer.colorAttachments[attachment]?.texture?.type ||
|
|
39
40
|
GL.UNSIGNED_BYTE;
|
|
40
41
|
// Deduce type and allocated pixelArray if needed
|
|
41
42
|
target = getPixelArray(target, sourceType, sourceFormat, sourceWidth, sourceHeight);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare function glFormatToComponents(format: any):
|
|
2
|
-
export declare function glTypeToBytes(type: any):
|
|
1
|
+
export declare function glFormatToComponents(format: any): 1 | 2 | 3 | 4 | 0;
|
|
2
|
+
export declare function glTypeToBytes(type: any): 1 | 2 | 4 | 0;
|
|
3
3
|
//# sourceMappingURL=format-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-utils.d.ts","sourceRoot":"","sources":["../../src/classic/format-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format-utils.d.ts","sourceRoot":"","sources":["../../src/classic/format-utils.ts"],"names":[],"mappings":"AAQA,wBAAgB,oBAAoB,CAAC,MAAM,KAAA,qBAoB1C;AAGD,wBAAgB,aAAa,CAAC,IAAI,KAAA,iBAejC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-array-utils.d.ts","sourceRoot":"","sources":["../../src/classic/typed-array-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typed-array-utils.d.ts","sourceRoot":"","sources":["../../src/classic/typed-array-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAE,qBAAqB,EAAC,MAAM,eAAe,CAAC;AAChE,OAAO,EAAK,UAAU,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAI/D;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,CAuB3E;AAED;;;;;;;GAOG;AAEH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,GAAG,WAAW,EAChC,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,qBAAqB,CAwBvB;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,GAAG,IAAI,CAgBP;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GAAG;IACvF,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAaA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spector.d.ts","sourceRoot":"","sources":["../../../src/context/debug/spector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spector.d.ts","sourceRoot":"","sources":["../../../src/context/debug/spector.ts"],"names":[],"mappings":"AAMA,2CAA2C;AAC3C,KAAK,YAAY,GAAG;IAClB,wBAAwB;IACxB,MAAM,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAC7C,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACrC,CAAC;AAaF,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,OAAO,EAAE,GAAG,CAAC;CAClB;AAED,sDAAsD;AACtD,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,YAAY,iBAQvD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,YAAY,OAsDvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-developer-tools.d.ts","sourceRoot":"","sources":["../../../src/context/debug/webgl-developer-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webgl-developer-tools.d.ts","sourceRoot":"","sources":["../../../src/context/debug/webgl-developer-tools.ts"],"names":[],"mappings":"AAWA,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAoBF,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,eAAe,EAAE,GAAG,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAO7D;AAID,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,sBAAsB,EAC1B,KAAK,GAAE,iBAAsB,GAC5B,sBAAsB,GAAG,IAAI,CAO/B"}
|
|
@@ -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 { log, loadScript } from '@luma.gl/core';
|
|
4
5
|
// Rename constant to prevent inlining. We need the full set of constants for generating debug strings.
|
|
@@ -6,7 +7,7 @@ import { GL as GLEnum } from '@luma.gl/constants';
|
|
|
6
7
|
import { isBrowser } from '@probe.gl/env';
|
|
7
8
|
const WEBGL_DEBUG_CDN_URL = 'https://unpkg.com/webgl-debug@2.0.1/index.js';
|
|
8
9
|
// Helper to get shared context data
|
|
9
|
-
function
|
|
10
|
+
function getWebGLContextData(gl) {
|
|
10
11
|
gl.luma = gl.luma || {};
|
|
11
12
|
return gl.luma;
|
|
12
13
|
}
|
|
@@ -35,7 +36,7 @@ export function makeDebugContext(gl, props = {}) {
|
|
|
35
36
|
}
|
|
36
37
|
// Returns the real context from either of the real/debug contexts
|
|
37
38
|
function getRealContext(gl) {
|
|
38
|
-
const data =
|
|
39
|
+
const data = getWebGLContextData(gl);
|
|
39
40
|
// If the context has a realContext member, it is a debug context so return the realContext
|
|
40
41
|
return data.realContext ? data.realContext : gl;
|
|
41
42
|
}
|
|
@@ -45,7 +46,7 @@ function getDebugContext(gl, props) {
|
|
|
45
46
|
log.warn('webgl-debug not loaded')();
|
|
46
47
|
return gl;
|
|
47
48
|
}
|
|
48
|
-
const data =
|
|
49
|
+
const data = getWebGLContextData(gl);
|
|
49
50
|
// If this already has a debug context, return it.
|
|
50
51
|
if (data.debugContext) {
|
|
51
52
|
return data.debugContext;
|
|
@@ -77,14 +78,14 @@ function getDebugContext(gl, props) {
|
|
|
77
78
|
// DEBUG TRACING
|
|
78
79
|
function getFunctionString(functionName, functionArgs) {
|
|
79
80
|
// Cover bug in webgl-debug-tools
|
|
80
|
-
functionArgs = Array.from(functionArgs).map(arg => arg === undefined ? 'undefined' : arg);
|
|
81
|
+
functionArgs = Array.from(functionArgs).map(arg => (arg === undefined ? 'undefined' : arg));
|
|
81
82
|
let args = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, functionArgs);
|
|
82
83
|
args = `${args.slice(0, 100)}${args.length > 100 ? '...' : ''}`;
|
|
83
84
|
return `gl.${functionName}(${args})`;
|
|
84
85
|
}
|
|
85
86
|
function onGLError(props, err, functionName, args) {
|
|
86
87
|
// Cover bug in webgl-debug-tools
|
|
87
|
-
args = Array.from(args).map(arg => arg === undefined ? 'undefined' : arg);
|
|
88
|
+
args = Array.from(args).map(arg => (arg === undefined ? 'undefined' : arg));
|
|
88
89
|
const errorMessage = globalThis.WebGLDebugUtils.glEnumToString(err);
|
|
89
90
|
const functionArgs = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, args);
|
|
90
91
|
const message = `${errorMessage} in gl.${functionName}(${functionArgs})`;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContextProps
|
|
3
|
+
* @param onContextLost
|
|
4
|
+
* @param onContextRestored
|
|
5
|
+
*
|
|
6
|
+
* BROWSER CONTEXT PARAMETERS
|
|
7
|
+
* @param debug Instrument context (at the expense of performance).
|
|
8
|
+
* @param alpha Default render target has an alpha buffer.
|
|
9
|
+
* @param depth Default render target has a depth buffer of at least 16 bits.
|
|
10
|
+
* @param stencil Default render target has a stencil buffer of at least 8 bits.
|
|
11
|
+
* @param antialias Boolean that indicates whether or not to perform anti-aliasing.
|
|
12
|
+
* @param premultipliedAlpha Boolean that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.
|
|
13
|
+
* @param preserveDrawingBuffer Default render target buffers will not be automatically cleared and will preserve their values until cleared or overwritten
|
|
14
|
+
* @param failIfMajorPerformanceCaveat Do not create if the system performance is low.
|
|
15
|
+
*/
|
|
16
|
+
type ContextProps = {
|
|
17
|
+
onContextLost?: (event: Event) => void;
|
|
18
|
+
onContextRestored?: (event: Event) => void;
|
|
19
|
+
alpha?: boolean;
|
|
20
|
+
desynchronized?: boolean;
|
|
21
|
+
antialias?: boolean;
|
|
22
|
+
depth?: boolean;
|
|
23
|
+
failIfMajorPerformanceCaveat?: boolean;
|
|
24
|
+
powerPreference?: 'default' | 'high-performance' | 'low-power';
|
|
25
|
+
premultipliedAlpha?: boolean;
|
|
26
|
+
preserveDrawingBuffer?: boolean;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Create a WebGL context for a canvas
|
|
30
|
+
* Note calling this multiple time on the same canvas does return the same context
|
|
31
|
+
* @param canvas A canvas element or offscreen canvas
|
|
32
|
+
*/
|
|
33
|
+
export declare function createBrowserContext(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): WebGL2RenderingContext;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=create-browser-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-browser-context.d.ts","sourceRoot":"","sources":["../../../src/context/helpers/create-browser-context.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AACH,KAAK,YAAY,GAAG;IAClB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,eAAe,CAAC,EAAE,SAAS,GAAG,kBAAkB,GAAG,WAAW,CAAC;IAC/D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAUF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,GAAG,eAAe,EAC3C,KAAK,EAAE,YAAY,GAClB,sBAAsB,CA+CxB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
const DEFAULT_CONTEXT_PROPS = {
|
|
5
|
+
powerPreference: 'high-performance', // After all, most apps are using WebGL for performance reasons
|
|
6
|
+
// eslint-disable-next-line no-console
|
|
7
|
+
onContextLost: () => console.error('WebGL context lost'),
|
|
8
|
+
// eslint-disable-next-line no-console
|
|
9
|
+
onContextRestored: () => console.info('WebGL context restored')
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Create a WebGL context for a canvas
|
|
13
|
+
* Note calling this multiple time on the same canvas does return the same context
|
|
14
|
+
* @param canvas A canvas element or offscreen canvas
|
|
15
|
+
*/
|
|
16
|
+
export function createBrowserContext(canvas, props) {
|
|
17
|
+
props = { ...DEFAULT_CONTEXT_PROPS, ...props };
|
|
18
|
+
// Try to extract any extra information about why context creation failed
|
|
19
|
+
let errorMessage = null;
|
|
20
|
+
const onCreateError = error => (errorMessage = error.statusMessage || errorMessage);
|
|
21
|
+
canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
|
|
22
|
+
// Create the desired context
|
|
23
|
+
let gl = null;
|
|
24
|
+
// props.failIfMajorPerformanceCaveat = true;
|
|
25
|
+
// We require webgl2 context
|
|
26
|
+
gl ||= canvas.getContext('webgl2', props);
|
|
27
|
+
// Software GPU
|
|
28
|
+
// props.failIfMajorPerformanceCaveat = false;
|
|
29
|
+
// if (!gl && props.webgl1) {
|
|
30
|
+
// gl = canvas.getContext('webgl', props);
|
|
31
|
+
// }
|
|
32
|
+
// TODO are we removing this listener before giving it a chance to fire?
|
|
33
|
+
canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);
|
|
34
|
+
if (!gl) {
|
|
35
|
+
throw new Error(`Failed to create WebGL context: ${errorMessage || 'Unknown error'}`);
|
|
36
|
+
}
|
|
37
|
+
if (props.onContextLost) {
|
|
38
|
+
// Carefully extract and wrap callbacks to prevent addEventListener from rebinding them.
|
|
39
|
+
const { onContextLost } = props;
|
|
40
|
+
canvas.addEventListener('webglcontextlost', (event) => onContextLost(event), false);
|
|
41
|
+
}
|
|
42
|
+
if (props.onContextRestored) {
|
|
43
|
+
// Carefully extract and wrap callbacks to prevent addEventListener from rebinding them.
|
|
44
|
+
const { onContextRestored } = props;
|
|
45
|
+
canvas.addEventListener('webglcontextrestored', (event) => onContextRestored(event), false);
|
|
46
|
+
}
|
|
47
|
+
return gl;
|
|
48
|
+
}
|
|
49
|
+
/* TODO - can we call this asynchronously to catch the error events?
|
|
50
|
+
export async function createBrowserContextAsync(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): Promise<WebGL2RenderingContext> {
|
|
51
|
+
props = {...DEFAULT_CONTEXT_PROPS, ...props};
|
|
52
|
+
|
|
53
|
+
// Try to extract any extra information about why context creation failed
|
|
54
|
+
let errorMessage = null;
|
|
55
|
+
const onCreateError = (error) => (errorMessage = error.statusMessage || errorMessage);
|
|
56
|
+
canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
|
|
57
|
+
|
|
58
|
+
const gl = createBrowserContext(canvas, props);
|
|
59
|
+
|
|
60
|
+
// Give the listener a chance to fire
|
|
61
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
62
|
+
|
|
63
|
+
canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);
|
|
64
|
+
|
|
65
|
+
return gl;
|
|
66
|
+
}
|
|
67
|
+
*/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stores luma.gl specific state associated with a context
|
|
3
|
+
*/
|
|
4
|
+
export interface WebGLContextData {
|
|
5
|
+
_polyfilled: boolean;
|
|
6
|
+
_extensions: Record<string, any>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Gets luma.gl specific state from a context
|
|
10
|
+
* @returns context state
|
|
11
|
+
*/
|
|
12
|
+
export declare function getWebGLContextData(gl: WebGL2RenderingContext): WebGLContextData;
|
|
13
|
+
//# sourceMappingURL=webgl-context-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-context-data.d.ts","sourceRoot":"","sources":["../../../src/context/helpers/webgl-context-data.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,sBAAsB,GAAG,gBAAgB,CAchF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
/**
|
|
5
|
+
* Gets luma.gl specific state from a context
|
|
6
|
+
* @returns context state
|
|
7
|
+
*/
|
|
8
|
+
export function getWebGLContextData(gl) {
|
|
9
|
+
// @ts-expect-error
|
|
10
|
+
const luma = gl.luma;
|
|
11
|
+
if (!luma) {
|
|
12
|
+
const contextState = {
|
|
13
|
+
_polyfilled: false,
|
|
14
|
+
_extensions: {}
|
|
15
|
+
};
|
|
16
|
+
// @ts-expect-error
|
|
17
|
+
gl.luma = contextState;
|
|
18
|
+
}
|
|
19
|
+
// @ts-expect-error
|
|
20
|
+
return gl.luma;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-extensions.d.ts","sourceRoot":"","sources":["../../../src/context/helpers/webgl-extensions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,gDAAgD;AAChD,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,sBAAsB,EAC1B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,YAAY,GACvB,OAAO,CAKT"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
/** Ensure extensions are only requested once */
|
|
5
|
+
export function getWebGLExtension(gl, name, extensions) {
|
|
6
|
+
if (extensions[name] === undefined) {
|
|
7
|
+
extensions[name] = gl.getExtension(name) || null;
|
|
8
|
+
}
|
|
9
|
+
return extensions[name];
|
|
10
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-parameter-api.d.ts","sourceRoot":"","sources":["../../../src/context/parameters/unified-parameter-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unified-parameter-api.d.ts","sourceRoot":"","sources":["../../../src/context/parameters/unified-parameter-api.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAUrD,YAAY,EAAC,YAAY,EAAC,CAAC;AAE3B;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,sBAAsB,EACvC,UAAU,EAAE,YAAY,GACvB,IAAI,CAiDN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,sBAAsB,EACvC,UAAU,GAAE,MAAM,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,EAAE,GAAG,YAAoC,GAC7F,YAAY,CAqBd;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAE/E"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
|
-
import { GL_PARAMETER_DEFAULTS, GL_PARAMETER_SETTERS, GL_COMPOSITE_PARAMETER_SETTERS, GL_PARAMETER_GETTERS } from
|
|
4
|
-
import { WebGLDevice } from
|
|
4
|
+
import { GL_PARAMETER_DEFAULTS, GL_PARAMETER_SETTERS, GL_COMPOSITE_PARAMETER_SETTERS, GL_PARAMETER_GETTERS } from "./webgl-parameter-tables.js";
|
|
5
|
+
import { WebGLDevice } from "../../adapter/webgl-device.js";
|
|
5
6
|
/**
|
|
6
7
|
* Sets any GL parameter regardless of function (gl.blendMode, ...)
|
|
7
8
|
*
|
|
@@ -61,6 +61,16 @@ export declare const GL_PARAMETER_SETTERS: {
|
|
|
61
61
|
34818: string;
|
|
62
62
|
34819: string;
|
|
63
63
|
2978: (gl: WebGL2RenderingContext, value: [number, number, number, number]) => void;
|
|
64
|
+
34383: (gl: WebGL2RenderingContext, value: unknown, key: GL) => void;
|
|
65
|
+
10754: (gl: WebGL2RenderingContext, value: unknown, key: GL) => void;
|
|
66
|
+
12288: (gl: WebGL2RenderingContext, value: unknown, key: GL) => void;
|
|
67
|
+
12289: (gl: WebGL2RenderingContext, value: unknown, key: GL) => void;
|
|
68
|
+
12290: (gl: WebGL2RenderingContext, value: unknown, key: GL) => void;
|
|
69
|
+
12291: (gl: WebGL2RenderingContext, value: unknown, key: GL) => void;
|
|
70
|
+
12292: (gl: WebGL2RenderingContext, value: unknown, key: GL) => void;
|
|
71
|
+
12293: (gl: WebGL2RenderingContext, value: unknown, key: GL) => void;
|
|
72
|
+
12294: (gl: WebGL2RenderingContext, value: unknown, key: GL) => void;
|
|
73
|
+
12295: (gl: WebGL2RenderingContext, value: unknown, key: GL) => void;
|
|
64
74
|
3333: (gl: WebGL2RenderingContext, value: number | boolean, key: GL) => void;
|
|
65
75
|
3317: (gl: WebGL2RenderingContext, value: number | boolean, key: GL) => void;
|
|
66
76
|
37440: (gl: WebGL2RenderingContext, value: number | boolean, key: GL) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-parameter-tables.d.ts","sourceRoot":"","sources":["../../../src/context/parameters/webgl-parameter-tables.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webgl-parameter-tables.d.ts","sourceRoot":"","sources":["../../../src/context/parameters/webgl-parameter-tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
4
|
// Tables describing WebGL parameters
|
|
4
5
|
import { GL } from '@luma.gl/constants';
|
|
@@ -60,14 +61,6 @@ export const GL_PARAMETER_DEFAULTS = {
|
|
|
60
61
|
[GL.STENCIL_BACK_PASS_DEPTH_PASS]: GL.KEEP,
|
|
61
62
|
// Dynamic value: We use [0, 0, 1024, 1024] as default, but usually this is updated in each frame.
|
|
62
63
|
[GL.VIEWPORT]: [0, 0, 1024, 1024],
|
|
63
|
-
// WEBGL1 PIXEL PACK/UNPACK MODES
|
|
64
|
-
[GL.PACK_ALIGNMENT]: 4,
|
|
65
|
-
[GL.UNPACK_ALIGNMENT]: 4,
|
|
66
|
-
[GL.UNPACK_FLIP_Y_WEBGL]: false,
|
|
67
|
-
[GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: false,
|
|
68
|
-
[GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: GL.BROWSER_DEFAULT_WEBGL,
|
|
69
|
-
// WEBGL2 / EXTENSIONS
|
|
70
|
-
// gl1: 'OES_standard_derivatives'
|
|
71
64
|
[GL.TRANSFORM_FEEDBACK_BINDING]: null,
|
|
72
65
|
[GL.COPY_READ_BUFFER_BINDING]: null,
|
|
73
66
|
[GL.COPY_WRITE_BUFFER_BINDING]: null,
|
|
@@ -76,6 +69,11 @@ export const GL_PARAMETER_DEFAULTS = {
|
|
|
76
69
|
[GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: GL.DONT_CARE,
|
|
77
70
|
[GL.READ_FRAMEBUFFER_BINDING]: null,
|
|
78
71
|
[GL.RASTERIZER_DISCARD]: false,
|
|
72
|
+
[GL.PACK_ALIGNMENT]: 4,
|
|
73
|
+
[GL.UNPACK_ALIGNMENT]: 4,
|
|
74
|
+
[GL.UNPACK_FLIP_Y_WEBGL]: false,
|
|
75
|
+
[GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: false,
|
|
76
|
+
[GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: GL.BROWSER_DEFAULT_WEBGL,
|
|
79
77
|
[GL.PACK_ROW_LENGTH]: 0,
|
|
80
78
|
[GL.PACK_SKIP_PIXELS]: 0,
|
|
81
79
|
[GL.PACK_SKIP_ROWS]: 0,
|
|
@@ -90,7 +88,7 @@ const enable = (gl, value, key) => value ? gl.enable(key) : gl.disable(key);
|
|
|
90
88
|
const hint = (gl, value, key) => gl.hint(key, value);
|
|
91
89
|
const pixelStorei = (gl, value, key) => gl.pixelStorei(key, value);
|
|
92
90
|
const bindFramebuffer = (gl, value, key) => {
|
|
93
|
-
const target =
|
|
91
|
+
const target = key === GL.FRAMEBUFFER_BINDING ? GL.DRAW_FRAMEBUFFER : GL.READ_FRAMEBUFFER;
|
|
94
92
|
return gl.bindFramebuffer(target, value);
|
|
95
93
|
};
|
|
96
94
|
const bindBuffer = (gl, value, key) => {
|
|
@@ -133,8 +131,8 @@ export const GL_PARAMETER_SETTERS = {
|
|
|
133
131
|
[GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,
|
|
134
132
|
[GL.CURRENT_PROGRAM]: (gl, value) => gl.useProgram(value),
|
|
135
133
|
[GL.RENDERBUFFER_BINDING]: (gl, value) => gl.bindRenderbuffer(GL.RENDERBUFFER, value),
|
|
136
|
-
[GL.TRANSFORM_FEEDBACK_BINDING]: (gl, value) =>
|
|
137
|
-
[GL.VERTEX_ARRAY_BINDING]: (gl, value) =>
|
|
134
|
+
[GL.TRANSFORM_FEEDBACK_BINDING]: (gl, value) => gl.bindTransformFeedback?.(GL.TRANSFORM_FEEDBACK, value),
|
|
135
|
+
[GL.VERTEX_ARRAY_BINDING]: (gl, value) => gl.bindVertexArray(value),
|
|
138
136
|
// NOTE: FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.
|
|
139
137
|
[GL.FRAMEBUFFER_BINDING]: bindFramebuffer,
|
|
140
138
|
[GL.READ_FRAMEBUFFER_BINDING]: bindFramebuffer,
|
|
@@ -174,14 +172,29 @@ export const GL_PARAMETER_SETTERS = {
|
|
|
174
172
|
[GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',
|
|
175
173
|
[GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',
|
|
176
174
|
[GL.VIEWPORT]: (gl, value) => gl.viewport(...value),
|
|
177
|
-
//
|
|
175
|
+
// WEBGL2 EXTENSIONS
|
|
176
|
+
// EXT_depth_clamp https://registry.khronos.org/webgl/extensions/EXT_depth_clamp/
|
|
177
|
+
[GL.DEPTH_CLAMP_EXT]: enable,
|
|
178
|
+
// WEBGL_provoking_vertex https://registry.khronos.org/webgl/extensions/WEBGL_provoking_vertex/
|
|
179
|
+
// [GL.PROVOKING_VERTEX_WEBL]: TODO - extension function needed
|
|
180
|
+
// WEBGL_polygon_mode https://registry.khronos.org/webgl/extensions/WEBGL_polygon_mode/
|
|
181
|
+
// POLYGON_MODE_WEBGL TODO - extension function needed
|
|
182
|
+
[GL.POLYGON_OFFSET_LINE_WEBGL]: enable,
|
|
183
|
+
// WEBGL_clip_cull_distance https://registry.khronos.org/webgl/extensions/WEBGL_clip_cull_distance/
|
|
184
|
+
[GL.CLIP_DISTANCE0_WEBGL]: enable,
|
|
185
|
+
[GL.CLIP_DISTANCE1_WEBGL]: enable,
|
|
186
|
+
[GL.CLIP_DISTANCE2_WEBGL]: enable,
|
|
187
|
+
[GL.CLIP_DISTANCE3_WEBGL]: enable,
|
|
188
|
+
[GL.CLIP_DISTANCE4_WEBGL]: enable,
|
|
189
|
+
[GL.CLIP_DISTANCE5_WEBGL]: enable,
|
|
190
|
+
[GL.CLIP_DISTANCE6_WEBGL]: enable,
|
|
191
|
+
[GL.CLIP_DISTANCE7_WEBGL]: enable,
|
|
192
|
+
// PIXEL PACK/UNPACK MODES
|
|
178
193
|
[GL.PACK_ALIGNMENT]: pixelStorei,
|
|
179
194
|
[GL.UNPACK_ALIGNMENT]: pixelStorei,
|
|
180
195
|
[GL.UNPACK_FLIP_Y_WEBGL]: pixelStorei,
|
|
181
196
|
[GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: pixelStorei,
|
|
182
197
|
[GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: pixelStorei,
|
|
183
|
-
// WEBGL2 PIXEL PACK/UNPACK MODES
|
|
184
|
-
// RASTERIZER_DISCARD ...
|
|
185
198
|
[GL.PACK_ROW_LENGTH]: pixelStorei,
|
|
186
199
|
[GL.PACK_SKIP_PIXELS]: pixelStorei,
|
|
187
200
|
[GL.PACK_SKIP_ROWS]: pixelStorei,
|
|
@@ -197,7 +210,7 @@ export const GL_PARAMETER_SETTERS = {
|
|
|
197
210
|
const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;
|
|
198
211
|
return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);
|
|
199
212
|
},
|
|
200
|
-
blend: (gl, value) =>
|
|
213
|
+
blend: (gl, value) => value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND),
|
|
201
214
|
blendColor: (gl, value) => gl.blendColor(...value),
|
|
202
215
|
blendEquation: (gl, args) => {
|
|
203
216
|
const separateModes = typeof args === 'number' ? [args, args] : args;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-array-equal.d.ts","sourceRoot":"","sources":["../../../src/context/state-tracker/deep-array-equal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deep-array-equal.d.ts","sourceRoot":"","sources":["../../../src/context/state-tracker/deep-array-equal.ts"],"names":[],"mappings":"AAIA,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAiBtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-context-state.d.ts","sourceRoot":"","sources":["../../../src/context/state-tracker/track-context-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"track-context-state.d.ts","sourceRoot":"","sources":["../../../src/context/state-tracker/track-context-state.ts"],"names":[],"mappings":"AAmGA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,GACA,sBAAsB,CAgCxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI,CAOjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI,CAIhE"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
4
|
// Support for listening to context state changes and intercepting state queries
|
|
4
5
|
// NOTE: this system does not handle buffer bindings
|
|
5
6
|
import { assert } from '@luma.gl/core';
|
|
6
|
-
import { GL_PARAMETER_DEFAULTS, GL_HOOKED_SETTERS, NON_CACHE_PARAMETERS } from
|
|
7
|
-
import { setGLParameters, getGLParameters } from
|
|
8
|
-
import { deepArrayEqual } from
|
|
7
|
+
import { GL_PARAMETER_DEFAULTS, GL_HOOKED_SETTERS, NON_CACHE_PARAMETERS } from "../parameters/webgl-parameter-tables.js";
|
|
8
|
+
import { setGLParameters, getGLParameters } from "../parameters/unified-parameter-api.js";
|
|
9
|
+
import { deepArrayEqual } from "./deep-array-equal.js";
|
|
9
10
|
// HELPER CLASS - GLState
|
|
10
11
|
/* eslint-disable no-shadow */
|
|
11
12
|
class GLState {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Device } from '@luma.gl/core';
|
|
2
|
-
import { GLParameters } from
|
|
2
|
+
import { GLParameters } from "../parameters/unified-parameter-api.js";
|
|
3
3
|
/**
|
|
4
4
|
* Execute a function with a set of temporary WebGL parameter overrides
|
|
5
5
|
* - Saves current "global" WebGL context settings
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-parameters.d.ts","sourceRoot":"","sources":["../../../src/context/state-tracker/with-parameters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"with-parameters.d.ts","sourceRoot":"","sources":["../../../src/context/state-tracker/with-parameters.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAC,YAAY,EAAkB,+CAA4C;AAGlF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,GAAG,sBAAsB,EACvC,UAAU,EAAE,YAAY,GAAG;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAC,EAC9C,IAAI,EAAE,GAAG,GACR,GAAG,CA+BL"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
2
3
|
// Copyright (c) vis.gl contributors
|
|
3
|
-
import { WebGLDevice } from
|
|
4
|
-
import { setGLParameters } from
|
|
5
|
-
import { pushContextState, popContextState } from
|
|
4
|
+
import { WebGLDevice } from "../../adapter/webgl-device.js";
|
|
5
|
+
import { setGLParameters } from "../parameters/unified-parameter-api.js";
|
|
6
|
+
import { pushContextState, popContextState } from "./track-context-state.js";
|
|
6
7
|
/**
|
|
7
8
|
* Execute a function with a set of temporary WebGL parameter overrides
|
|
8
9
|
* - Saves current "global" WebGL context settings
|