@luma.gl/webgl 9.1.0-alpha.2 → 9.1.0-beta.1
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 +3 -3
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +19 -11
- package/dist/adapter/converters/device-parameters.js.map +1 -0
- package/dist/adapter/converters/sampler-parameters.js +7 -4
- package/dist/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/adapter/converters/shader-formats.js +1 -0
- package/dist/adapter/converters/shader-formats.js.map +1 -0
- package/dist/adapter/converters/vertex-formats.js +1 -0
- package/dist/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/adapter/converters/webgl-texture-table.d.ts +40 -0
- package/dist/adapter/converters/webgl-texture-table.d.ts.map +1 -0
- package/dist/adapter/converters/webgl-texture-table.js +304 -0
- package/dist/adapter/converters/webgl-texture-table.js.map +1 -0
- package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-features.js +2 -3
- package/dist/adapter/device-helpers/webgl-device-features.js.map +1 -0
- package/dist/adapter/device-helpers/webgl-device-info.js +1 -0
- package/dist/adapter/device-helpers/webgl-device-info.js.map +1 -0
- package/dist/adapter/device-helpers/webgl-device-limits.js +1 -0
- package/dist/adapter/device-helpers/webgl-device-limits.js.map +1 -0
- package/dist/adapter/helpers/decode-webgl-types.js +1 -0
- package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
- package/dist/adapter/helpers/format-utils.d.ts.map +1 -0
- package/dist/{classic → adapter/helpers}/format-utils.js +7 -0
- package/dist/adapter/helpers/format-utils.js.map +1 -0
- 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 +5 -4
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.js +1 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/adapter/helpers/set-uniform.js +1 -0
- package/dist/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/adapter/helpers/typed-array-utils.d.ts.map +1 -0
- package/dist/{classic → adapter/helpers}/typed-array-utils.js +1 -0
- package/dist/adapter/helpers/typed-array-utils.js.map +1 -0
- package/dist/adapter/helpers/webgl-texture-utils.d.ts +100 -29
- package/dist/adapter/helpers/webgl-texture-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/webgl-texture-utils.js +231 -240
- package/dist/adapter/helpers/webgl-texture-utils.js.map +1 -0
- package/dist/adapter/helpers/webgl-topology-utils.js +1 -0
- package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +4 -1
- package/dist/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts +59 -2
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +89 -32
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +4 -0
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.js +15 -0
- package/dist/adapter/resources/webgl-external-texture.js.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts +33 -35
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +71 -76
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/adapter/resources/webgl-query-set.js +1 -0
- package/dist/adapter/resources/webgl-query-set.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +49 -21
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +3 -4
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +45 -23
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-sampler.js +1 -0
- package/dist/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/adapter/resources/webgl-shader.d.ts +1 -0
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +13 -6
- package/dist/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/adapter/resources/webgl-texture-view.js +1 -0
- package/dist/adapter/resources/webgl-texture-view.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +33 -21
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +172 -242
- package/dist/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/adapter/resources/webgl-transform-feedback.js +1 -0
- package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
- package/dist/adapter/resources/webgl-vertex-array.js +1 -0
- package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
- package/dist/adapter/webgl-adapter.d.ts +21 -0
- package/dist/adapter/webgl-adapter.d.ts.map +1 -0
- package/dist/adapter/webgl-adapter.js +86 -0
- package/dist/adapter/webgl-adapter.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts +4 -6
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +13 -17
- package/dist/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +35 -46
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +100 -156
- package/dist/adapter/webgl-device.js.map +1 -0
- package/dist/context/debug/spector-types.d.ts +1108 -0
- package/dist/context/debug/spector-types.d.ts.map +1 -0
- package/dist/context/debug/spector-types.js +698 -0
- package/dist/context/debug/spector-types.js.map +1 -0
- package/dist/context/debug/spector.d.ts +12 -8
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +24 -17
- package/dist/context/debug/spector.js.map +1 -0
- package/dist/context/debug/webgl-developer-tools.d.ts +2 -3
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +7 -19
- package/dist/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/context/helpers/create-browser-context.d.ts +6 -22
- package/dist/context/helpers/create-browser-context.d.ts.map +1 -1
- package/dist/context/helpers/create-browser-context.js +41 -32
- package/dist/context/helpers/create-browser-context.js.map +1 -0
- package/dist/context/helpers/webgl-context-data.js +1 -0
- package/dist/context/helpers/webgl-context-data.js.map +1 -0
- package/dist/context/helpers/webgl-extensions.js +1 -0
- package/dist/context/helpers/webgl-extensions.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.js +1 -0
- package/dist/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +3 -2
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/context/polyfills/polyfill-webgl1-extensions.d.ts +9 -0
- package/dist/context/polyfills/polyfill-webgl1-extensions.d.ts.map +1 -0
- package/dist/context/polyfills/polyfill-webgl1-extensions.js +182 -0
- package/dist/context/polyfills/polyfill-webgl1-extensions.js.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.js +1 -0
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/context/state-tracker/webgl-state-tracker.d.ts +43 -0
- package/dist/context/state-tracker/webgl-state-tracker.d.ts.map +1 -0
- package/dist/context/state-tracker/{track-context-state.js → webgl-state-tracker.js} +45 -74
- package/dist/context/state-tracker/webgl-state-tracker.js.map +1 -0
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +6 -4
- package/dist/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/deprecated/accessor.d.ts.map +1 -0
- package/dist/{classic → deprecated}/accessor.js +37 -1
- package/dist/deprecated/accessor.js.map +1 -0
- package/dist/dist.dev.js +2397 -2430
- package/dist/dist.min.js +2 -2
- package/dist/index.cjs +2273 -2298
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/fill-array.d.ts +4 -4
- package/dist/utils/fill-array.d.ts.map +1 -1
- package/dist/utils/fill-array.js +1 -0
- package/dist/utils/fill-array.js.map +1 -0
- package/dist/utils/load-script.js +1 -0
- package/dist/utils/load-script.js.map +1 -0
- package/dist/utils/split-uniforms-and-bindings.d.ts +1 -1
- package/dist/utils/split-uniforms-and-bindings.d.ts.map +1 -1
- package/dist/utils/split-uniforms-and-bindings.js +1 -0
- package/dist/utils/split-uniforms-and-bindings.js.map +1 -0
- package/dist/utils/uid.d.ts +7 -0
- package/dist/utils/uid.d.ts.map +1 -0
- package/dist/utils/uid.js +15 -0
- package/dist/utils/uid.js.map +1 -0
- package/package.json +5 -5
- package/src/adapter/converters/device-parameters.ts +21 -15
- package/src/adapter/converters/sampler-parameters.ts +6 -4
- package/src/adapter/converters/webgl-texture-table.ts +404 -0
- package/src/adapter/device-helpers/webgl-device-features.ts +5 -3
- package/src/{classic → adapter/helpers}/format-utils.ts +6 -0
- package/src/adapter/helpers/get-shader-layout.ts +7 -4
- package/src/adapter/helpers/webgl-texture-utils.ts +410 -64
- package/src/adapter/resources/webgl-buffer.ts +3 -1
- package/src/adapter/resources/webgl-command-buffer.ts +125 -41
- package/src/adapter/resources/webgl-command-encoder.ts +6 -0
- package/src/adapter/resources/webgl-external-texture.ts +14 -0
- package/src/adapter/resources/webgl-framebuffer.ts +80 -86
- package/src/adapter/resources/webgl-render-pass.ts +72 -45
- package/src/adapter/resources/webgl-render-pipeline.ts +58 -27
- package/src/adapter/resources/webgl-shader.ts +15 -7
- package/src/adapter/resources/webgl-texture.ts +202 -274
- package/src/adapter/webgl-adapter.ts +105 -0
- package/src/adapter/webgl-canvas-context.ts +16 -19
- package/src/adapter/webgl-device.ts +144 -210
- package/src/context/debug/spector-types.ts +1154 -0
- package/src/context/debug/spector.ts +38 -29
- package/src/context/debug/webgl-developer-tools.ts +8 -31
- package/src/context/helpers/create-browser-context.ts +53 -63
- package/src/context/parameters/webgl-parameter-tables.ts +2 -2
- package/src/context/polyfills/polyfill-webgl1-extensions.ts +202 -0
- package/src/context/state-tracker/{track-context-state.ts → webgl-state-tracker.ts} +55 -94
- package/src/context/state-tracker/with-parameters.ts +5 -4
- package/src/{classic → deprecated}/accessor.ts +44 -3
- package/src/index.ts +7 -12
- package/src/utils/fill-array.ts +4 -4
- package/src/utils/split-uniforms-and-bindings.ts +3 -3
- package/src/utils/uid.ts +16 -0
- package/dist/adapter/converters/texture-formats.d.ts +0 -83
- package/dist/adapter/converters/texture-formats.d.ts.map +0 -1
- package/dist/adapter/converters/texture-formats.js +0 -518
- package/dist/classic/accessor.d.ts.map +0 -1
- package/dist/classic/clear.d.ts +0 -22
- package/dist/classic/clear.d.ts.map +0 -1
- package/dist/classic/clear.js +0 -86
- package/dist/classic/copy-and-blit.d.ts +0 -63
- package/dist/classic/copy-and-blit.d.ts.map +0 -1
- package/dist/classic/copy-and-blit.js +0 -193
- package/dist/classic/format-utils.d.ts.map +0 -1
- package/dist/classic/typed-array-utils.d.ts.map +0 -1
- package/dist/context/state-tracker/track-context-state.d.ts +0 -22
- package/dist/context/state-tracker/track-context-state.d.ts.map +0 -1
- package/src/adapter/converters/texture-formats.ts +0 -665
- package/src/classic/clear.ts +0 -115
- package/src/classic/copy-and-blit.ts +0 -318
- /package/dist/{classic → adapter/helpers}/format-utils.d.ts +0 -0
- /package/dist/{classic → adapter/helpers}/typed-array-utils.d.ts +0 -0
- /package/dist/{classic → deprecated}/accessor.d.ts +0 -0
- /package/src/{classic → adapter/helpers}/typed-array-utils.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/webgl-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAM,MAAM,eAAe,CAAC;AAChE,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAO3C,qBAAa,YAAa,SAAQ,OAAO;IACvC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAW;;IAYxC,oCAAoC;IACpC,WAAW,IAAI,OAAO;IAItB,gGAAgG;IAChG,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIpC;;;;;OAKG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IAejE,MAAM,CAAC,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;CAoC5D;AAWD,eAAO,MAAM,aAAa,cAAqB,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { Adapter, Device, log } from '@luma.gl/core';
|
|
5
|
+
import { WebGLDevice } from "./webgl-device.js";
|
|
6
|
+
import { enforceWebGL2 } from "../context/polyfills/polyfill-webgl1-extensions.js";
|
|
7
|
+
import { loadSpectorJS, DEFAULT_SPECTOR_PROPS } from "../context/debug/spector.js";
|
|
8
|
+
import { loadWebGLDeveloperTools } from "../context/debug/webgl-developer-tools.js";
|
|
9
|
+
const LOG_LEVEL = 1;
|
|
10
|
+
export class WebGLAdapter extends Adapter {
|
|
11
|
+
/** type of device's created by this adapter */
|
|
12
|
+
type = 'webgl';
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
// Add spector default props to device default props, so that runtime settings are observed
|
|
16
|
+
Device.defaultProps = { ...Device.defaultProps, ...DEFAULT_SPECTOR_PROPS };
|
|
17
|
+
// @ts-ignore DEPRECATED For backwards compatibility luma.registerDevices
|
|
18
|
+
WebGLDevice.adapter = this;
|
|
19
|
+
}
|
|
20
|
+
/** Check if WebGL 2 is available */
|
|
21
|
+
isSupported() {
|
|
22
|
+
return typeof WebGL2RenderingContext !== 'undefined';
|
|
23
|
+
}
|
|
24
|
+
/** Force any created WebGL contexts to be WebGL2 contexts, polyfilled with WebGL1 extensions */
|
|
25
|
+
enforceWebGL2(enable) {
|
|
26
|
+
enforceWebGL2(enable);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get a device instance from a GL context
|
|
30
|
+
* Creates and instruments the device if not already created
|
|
31
|
+
* @param gl
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
async attach(gl) {
|
|
35
|
+
if (gl instanceof WebGLDevice) {
|
|
36
|
+
return gl;
|
|
37
|
+
}
|
|
38
|
+
// @ts-expect-error
|
|
39
|
+
if (gl?.device instanceof Device) {
|
|
40
|
+
// @ts-expect-error
|
|
41
|
+
return gl.device;
|
|
42
|
+
}
|
|
43
|
+
if (!isWebGL(gl)) {
|
|
44
|
+
throw new Error('Invalid WebGL2RenderingContext');
|
|
45
|
+
}
|
|
46
|
+
return new WebGLDevice({ _handle: gl });
|
|
47
|
+
}
|
|
48
|
+
async create(props = {}) {
|
|
49
|
+
log.groupCollapsed(LOG_LEVEL, 'WebGLDevice created')();
|
|
50
|
+
const promises = [];
|
|
51
|
+
// Load webgl and spector debug scripts from CDN if requested
|
|
52
|
+
if (props.debugWebGL || props.debug) {
|
|
53
|
+
promises.push(loadWebGLDeveloperTools());
|
|
54
|
+
}
|
|
55
|
+
if (props.debugSpectorJS) {
|
|
56
|
+
promises.push(loadSpectorJS(props));
|
|
57
|
+
}
|
|
58
|
+
// Wait for all the loads to settle before creating the context.
|
|
59
|
+
// The Device.create() functions are async, so in contrast to the constructor, we can `await` here.
|
|
60
|
+
const results = await Promise.allSettled(promises);
|
|
61
|
+
for (const result of results) {
|
|
62
|
+
if (result.status === 'rejected') {
|
|
63
|
+
log.error(`Failed to initialize debug libraries ${result.reason}`)();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const device = new WebGLDevice(props);
|
|
67
|
+
// Log some debug info about the newly created context
|
|
68
|
+
const message = `\
|
|
69
|
+
Created ${device.type}${device.debug ? ' debug' : ''} context: \
|
|
70
|
+
${device.info.vendor}, ${device.info.renderer} for canvas: ${device.canvasContext.id}`;
|
|
71
|
+
log.probe(LOG_LEVEL, message)();
|
|
72
|
+
log.table(LOG_LEVEL, device.info)();
|
|
73
|
+
log.groupEnd(LOG_LEVEL)();
|
|
74
|
+
return device;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Check if supplied parameter is a WebGL2RenderingContext */
|
|
78
|
+
function isWebGL(gl) {
|
|
79
|
+
if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
// Look for debug contexts, headless gl etc
|
|
83
|
+
return Boolean(gl && Number.isFinite(gl._version));
|
|
84
|
+
}
|
|
85
|
+
export const webgl2Adapter = new WebGLAdapter();
|
|
86
|
+
//# sourceMappingURL=webgl-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-adapter.js","sourceRoot":"","sources":["../../src/adapter/webgl-adapter.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,EAAE,MAAM,EAAe,GAAG,EAAC,MAAM,eAAe,CAAC;AAChE,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,aAAa,EAAC,2DAAwD;AAC9E,OAAO,EAAC,aAAa,EAAE,qBAAqB,EAAC,oCAAiC;AAC9E,OAAO,EAAC,uBAAuB,EAAC,kDAA+C;AAE/E,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC,+CAA+C;IACtC,IAAI,GAAmB,OAAO,CAAC;IAExC;QACE,KAAK,EAAE,CAAC;QAER,2FAA2F;QAC3F,MAAM,CAAC,YAAY,GAAG,EAAC,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,qBAAqB,EAAC,CAAC;QAEzE,yEAAyE;QACzE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,oCAAoC;IACpC,WAAW;QACT,OAAO,OAAO,sBAAsB,KAAK,WAAW,CAAC;IACvD,CAAC;IAED,gGAAgG;IAChG,aAAa,CAAC,MAAe;QAC3B,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,EAAmC;QAC9C,IAAI,EAAE,YAAY,WAAW,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,mBAAmB;QACnB,IAAI,EAAE,EAAE,MAAM,YAAY,MAAM,EAAE,CAAC;YACjC,mBAAmB;YACnB,OAAO,EAAE,CAAC,MAAqB,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,EAAC,OAAO,EAAE,EAA4B,EAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAqB,EAAE;QAClC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAEvD,MAAM,QAAQ,GAAuB,EAAE,CAAC;QAExC,6DAA6D;QAC7D,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,gEAAgE;QAChE,mGAAmG;QACnG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,GAAG,CAAC,KAAK,CAAC,wCAAwC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACvE,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QAEtC,sDAAsD;QACtD,MAAM,OAAO,GAAG;UACV,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;EAClD,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,gBAAgB,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACnF,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAEpC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAE1B,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,8DAA8D;AAC9D,SAAS,OAAO,CAAC,EAAO;IACtB,IAAI,OAAO,sBAAsB,KAAK,WAAW,IAAI,EAAE,YAAY,sBAAsB,EAAE,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,2CAA2C;IAC3C,OAAO,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CanvasContextProps
|
|
1
|
+
import type { CanvasContextProps } from '@luma.gl/core';
|
|
2
2
|
import { CanvasContext } from '@luma.gl/core';
|
|
3
3
|
import { WebGLDevice } from "./webgl-device.js";
|
|
4
4
|
import { WEBGLFramebuffer } from "./resources/webgl-framebuffer.js";
|
|
@@ -7,14 +7,12 @@ import { WEBGLFramebuffer } from "./resources/webgl-framebuffer.js";
|
|
|
7
7
|
*/
|
|
8
8
|
export declare class WebGLCanvasContext extends CanvasContext {
|
|
9
9
|
readonly device: WebGLDevice;
|
|
10
|
-
readonly
|
|
11
|
-
readonly depthStencilFormat: TextureFormat;
|
|
12
|
-
presentationSize: [number, number];
|
|
10
|
+
readonly handle: unknown;
|
|
13
11
|
private _framebuffer;
|
|
12
|
+
get [Symbol.toStringTag](): string;
|
|
14
13
|
constructor(device: WebGLDevice, props: CanvasContextProps);
|
|
15
14
|
getCurrentFramebuffer(): WEBGLFramebuffer;
|
|
16
|
-
|
|
17
|
-
update(): void;
|
|
15
|
+
updateSize(size: [number, number]): void;
|
|
18
16
|
/**
|
|
19
17
|
* Resize the canvas' drawing buffer.
|
|
20
18
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/webgl-canvas-context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"webgl-canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/webgl-canvas-context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,gBAAgB,EAAC,yCAAsC;AAE/D;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAQ;IAEhC,OAAO,CAAC,YAAY,CAAiC;IAErD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;gBAEW,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB;IAU1D,qBAAqB,IAAI,gBAAgB;IAMzC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAExC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAC,GAAG,IAAI;IAe7F,MAAM;CAOP"}
|
|
@@ -8,33 +8,25 @@ import { WEBGLFramebuffer } from "./resources/webgl-framebuffer.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export class WebGLCanvasContext extends CanvasContext {
|
|
10
10
|
device;
|
|
11
|
-
|
|
12
|
-
depthStencilFormat = 'depth24plus';
|
|
13
|
-
presentationSize;
|
|
11
|
+
handle = null;
|
|
14
12
|
_framebuffer = null;
|
|
13
|
+
get [Symbol.toStringTag]() {
|
|
14
|
+
return 'WebGLCanvasContext';
|
|
15
|
+
}
|
|
15
16
|
constructor(device, props) {
|
|
16
17
|
// Note: Base class creates / looks up the canvas (unless under Node.js)
|
|
17
18
|
super(props);
|
|
18
19
|
this.device = device;
|
|
19
|
-
|
|
20
|
+
// Base class constructor cannot access derived methods/fields, so we need to call these functions in the subclass constructor
|
|
20
21
|
this._setAutoCreatedCanvasId(`${this.device.id}-canvas`);
|
|
21
|
-
this.
|
|
22
|
+
this.updateSize([this.drawingBufferWidth, this.drawingBufferHeight]);
|
|
22
23
|
}
|
|
23
24
|
getCurrentFramebuffer() {
|
|
24
|
-
this.update();
|
|
25
25
|
// Setting handle to null returns a reference to the default framebuffer
|
|
26
26
|
this._framebuffer = this._framebuffer || new WEBGLFramebuffer(this.device, { handle: null });
|
|
27
27
|
return this._framebuffer;
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
update() {
|
|
31
|
-
const size = this.getPixelSize();
|
|
32
|
-
const sizeChanged = size[0] !== this.presentationSize[0] || size[1] !== this.presentationSize[1];
|
|
33
|
-
if (sizeChanged) {
|
|
34
|
-
this.presentationSize = size;
|
|
35
|
-
this.resize();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
29
|
+
updateSize(size) { }
|
|
38
30
|
/**
|
|
39
31
|
* Resize the canvas' drawing buffer.
|
|
40
32
|
*
|
|
@@ -50,10 +42,13 @@ export class WebGLCanvasContext extends CanvasContext {
|
|
|
50
42
|
resize(options) {
|
|
51
43
|
if (!this.device.gl)
|
|
52
44
|
return;
|
|
53
|
-
|
|
45
|
+
if (this.props.autoResize) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// Resize browser context. TODO - this likely needs to be rewritten
|
|
54
49
|
if (this.canvas) {
|
|
55
50
|
const devicePixelRatio = this.getDevicePixelRatio(options?.useDevicePixels);
|
|
56
|
-
this.
|
|
51
|
+
this._setDevicePixelRatio(devicePixelRatio, options);
|
|
57
52
|
return;
|
|
58
53
|
}
|
|
59
54
|
}
|
|
@@ -65,3 +60,4 @@ export class WebGLCanvasContext extends CanvasContext {
|
|
|
65
60
|
// }
|
|
66
61
|
}
|
|
67
62
|
}
|
|
63
|
+
//# sourceMappingURL=webgl-canvas-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-canvas-context.js","sourceRoot":"","sources":["../../src/adapter/webgl-canvas-context.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAC,gBAAgB,EAAC,yCAAsC;AAE/D;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAC1C,MAAM,CAAc;IACpB,MAAM,GAAY,IAAI,CAAC;IAExB,YAAY,GAA4B,IAAI,CAAC;IAErD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,YAAY,MAAmB,EAAE,KAAyB;QACxD,wEAAwE;QACxE,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,8HAA8H;QAC9H,IAAI,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,qBAAqB;QACnB,wEAAwE;QACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,IAAsB,IAAS,CAAC;IAE3C;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,OAA+E;QACpF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO;QAE5B,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,mEAAmE;QACnE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAC5E,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM;QACJ,6DAA6D;QAC7D,0CAA0C;QAC1C,mFAAmF;QACnF,sBAAsB;QACtB,IAAI;IACN,CAAC;CACF"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { TypedArray } from '@math.gl/types';
|
|
2
|
-
import type { DeviceProps, DeviceInfo, CanvasContextProps,
|
|
3
|
-
import type { Buffer, Texture, Framebuffer, VertexArray, VertexArrayProps } from '@luma.gl/core';
|
|
2
|
+
import type { DeviceProps, DeviceInfo, DeviceTextureFormatCapabilities, CanvasContextProps, Buffer, Texture, Framebuffer, VertexArray, VertexArrayProps, BufferProps, ShaderProps, SamplerProps, TextureProps, ExternalTexture, ExternalTextureProps, FramebufferProps, RenderPipelineProps, ComputePipeline, ComputePipelineProps, RenderPassProps, ComputePass, ComputePassProps, CommandEncoderProps, TransformFeedbackProps, QuerySetProps, Resource } from '@luma.gl/core';
|
|
4
3
|
import { Device, CanvasContext } from '@luma.gl/core';
|
|
5
4
|
import type { GLExtensions } from '@luma.gl/constants';
|
|
6
5
|
import { WebGLDeviceFeatures } from "./device-helpers/webgl-device-features.js";
|
|
7
6
|
import { WebGLDeviceLimits } from "./device-helpers/webgl-device-limits.js";
|
|
8
7
|
import { WebGLCanvasContext } from "./webgl-canvas-context.js";
|
|
9
|
-
import type {
|
|
8
|
+
import type { Spector } from "../context/debug/spector-types.js";
|
|
10
9
|
import { WEBGLBuffer } from "./resources/webgl-buffer.js";
|
|
11
10
|
import { WEBGLShader } from "./resources/webgl-shader.js";
|
|
12
11
|
import { WEBGLSampler } from "./resources/webgl-sampler.js";
|
|
12
|
+
import { WEBGLTexture } from "./resources/webgl-texture.js";
|
|
13
13
|
import { WEBGLFramebuffer } from "./resources/webgl-framebuffer.js";
|
|
14
14
|
import { WEBGLRenderPass } from "./resources/webgl-render-pass.js";
|
|
15
15
|
import { WEBGLRenderPipeline } from "./resources/webgl-render-pipeline.js";
|
|
@@ -18,8 +18,6 @@ import { WEBGLTransformFeedback } from "./resources/webgl-transform-feedback.js"
|
|
|
18
18
|
import { WEBGLQuerySet } from "./resources/webgl-query-set.js";
|
|
19
19
|
/** WebGPU style Device API for a WebGL context */
|
|
20
20
|
export declare class WebGLDevice extends Device {
|
|
21
|
-
/** type of this device */
|
|
22
|
-
static readonly type: string;
|
|
23
21
|
/** type of this device */
|
|
24
22
|
readonly type = "webgl";
|
|
25
23
|
/** The underlying WebGL context */
|
|
@@ -28,21 +26,27 @@ export declare class WebGLDevice extends Device {
|
|
|
28
26
|
limits: WebGLDeviceLimits;
|
|
29
27
|
readonly info: DeviceInfo;
|
|
30
28
|
readonly canvasContext: WebGLCanvasContext;
|
|
29
|
+
readonly preferredColorFormat = "rgba8unorm";
|
|
30
|
+
readonly preferredDepthFormat = "depth24plus";
|
|
31
31
|
readonly lost: Promise<{
|
|
32
32
|
reason: 'destroyed';
|
|
33
33
|
message: string;
|
|
34
34
|
}>;
|
|
35
35
|
private _resolveContextLost?;
|
|
36
|
-
/**
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
36
|
+
/** WebGL2 context. */
|
|
37
|
+
readonly gl: WebGL2RenderingContext;
|
|
38
|
+
readonly debug: boolean;
|
|
39
|
+
/** State used by luma.gl classes: TODO - move to canvasContext*/
|
|
40
|
+
readonly _canvasSizeInfo: {
|
|
41
|
+
clientWidth: number;
|
|
42
|
+
clientHeight: number;
|
|
43
|
+
devicePixelRatio: number;
|
|
44
|
+
};
|
|
45
|
+
/** State used by luma.gl classes - TODO - not used? */
|
|
46
|
+
readonly _extensions: GLExtensions;
|
|
47
|
+
_polyfilled: boolean;
|
|
48
|
+
/** Instance of Spector.js (if initialized) */
|
|
49
|
+
spectorJS: Spector;
|
|
46
50
|
constructor(props: DeviceProps);
|
|
47
51
|
/**
|
|
48
52
|
* Destroys the context
|
|
@@ -50,13 +54,9 @@ export declare class WebGLDevice extends Device {
|
|
|
50
54
|
*/
|
|
51
55
|
destroy(): void;
|
|
52
56
|
get isLost(): boolean;
|
|
53
|
-
getSize(): [number, number];
|
|
54
|
-
isTextureFormatSupported(format: TextureFormat): boolean;
|
|
55
|
-
isTextureFormatFilterable(format: TextureFormat): boolean;
|
|
56
|
-
isTextureFormatRenderable(format: TextureFormat): boolean;
|
|
57
57
|
createCanvasContext(props?: CanvasContextProps): CanvasContext;
|
|
58
58
|
createBuffer(props: BufferProps | ArrayBuffer | ArrayBufferView): WEBGLBuffer;
|
|
59
|
-
|
|
59
|
+
createTexture(props: TextureProps): WEBGLTexture;
|
|
60
60
|
createExternalTexture(props: ExternalTextureProps): ExternalTexture;
|
|
61
61
|
createSampler(props: SamplerProps): WEBGLSampler;
|
|
62
62
|
createShader(props: ShaderProps): WEBGLShader;
|
|
@@ -101,27 +101,8 @@ export declare class WebGLDevice extends Device {
|
|
|
101
101
|
setParametersWebGL(parameters: any): void;
|
|
102
102
|
getParametersWebGL(parameters: any): any;
|
|
103
103
|
withParametersWebGL(parameters: any, func: any): any;
|
|
104
|
-
clearWebGL(options?: {
|
|
105
|
-
framebuffer?: Framebuffer;
|
|
106
|
-
color?: any;
|
|
107
|
-
depth?: any;
|
|
108
|
-
stencil?: any;
|
|
109
|
-
}): void;
|
|
110
104
|
resetWebGL(): void;
|
|
111
|
-
|
|
112
|
-
readonly gl: WebGL2RenderingContext;
|
|
113
|
-
readonly debug: boolean;
|
|
114
|
-
/** State used by luma.gl classes: TODO - move to canvasContext*/
|
|
115
|
-
readonly _canvasSizeInfo: {
|
|
116
|
-
clientWidth: number;
|
|
117
|
-
clientHeight: number;
|
|
118
|
-
devicePixelRatio: number;
|
|
119
|
-
};
|
|
120
|
-
/** State used by luma.gl classes - TODO - not used? */
|
|
121
|
-
readonly _extensions: GLExtensions;
|
|
122
|
-
_polyfilled: boolean;
|
|
123
|
-
/** Instance of Spector.js (if initialized) */
|
|
124
|
-
spectorJS: unknown;
|
|
105
|
+
_getDeviceSpecificTextureFormatCapabilities(capabilities: DeviceTextureFormatCapabilities): DeviceTextureFormatCapabilities;
|
|
125
106
|
/**
|
|
126
107
|
* Triggers device (or WebGL context) loss.
|
|
127
108
|
* @note primarily intended for testing how application reacts to device loss
|
|
@@ -131,17 +112,18 @@ export declare class WebGLDevice extends Device {
|
|
|
131
112
|
pushState(): void;
|
|
132
113
|
/** Restores previously saved context state */
|
|
133
114
|
popState(): void;
|
|
134
|
-
/**
|
|
135
|
-
* Storing data on a special field on WebGLObjects makes that data visible in SPECTOR chrome debug extension
|
|
136
|
-
* luma.gl ids and props can be inspected
|
|
137
|
-
*/
|
|
138
|
-
setSpectorMetadata(handle: unknown, props: Record<string, unknown>): void;
|
|
139
115
|
/**
|
|
140
116
|
* Returns the GL.<KEY> constant that corresponds to a numeric value of a GL constant
|
|
141
117
|
* Be aware that there are some duplicates especially for constants that are 0,
|
|
142
118
|
* so this isn't guaranteed to return the right key in all cases.
|
|
143
119
|
*/
|
|
144
|
-
getGLKey(value: unknown,
|
|
120
|
+
getGLKey(value: unknown, options?: {
|
|
121
|
+
emptyIfUnknown?: boolean;
|
|
122
|
+
}): string;
|
|
123
|
+
/**
|
|
124
|
+
* Returns a map with any GL.<KEY> constants mapped to strings, both for keys and values
|
|
125
|
+
*/
|
|
126
|
+
getGLKeys(glParameters: Record<number, unknown>): Record<string, string>;
|
|
145
127
|
/** Store constants */
|
|
146
128
|
_constants: (TypedArray | null)[];
|
|
147
129
|
/**
|
|
@@ -153,5 +135,12 @@ export declare class WebGLDevice extends Device {
|
|
|
153
135
|
setConstantAttributeWebGL(location: number, constant: TypedArray): void;
|
|
154
136
|
/** Ensure extensions are only requested once */
|
|
155
137
|
getExtension(name: keyof GLExtensions): GLExtensions;
|
|
138
|
+
/**
|
|
139
|
+
* Storing data on a special field on WebGLObjects makes that data visible in SPECTOR chrome debug extension
|
|
140
|
+
* luma.gl ids and props can be inspected
|
|
141
|
+
*/
|
|
142
|
+
_setWebGLDebugMetadata(handle: unknown, resource: Resource<any>, options: {
|
|
143
|
+
spector: Record<string, unknown>;
|
|
144
|
+
}): void;
|
|
156
145
|
}
|
|
157
146
|
//# sourceMappingURL=webgl-device.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-device.d.ts","sourceRoot":"","sources":["../../src/adapter/webgl-device.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"webgl-device.d.ts","sourceRoot":"","sources":["../../src/adapter/webgl-device.ts"],"names":[],"mappings":"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"}
|