@luma.gl/webgl 9.0.0-beta.3 → 9.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/converters/device-parameters.js +240 -158
- package/dist/adapter/converters/sampler-parameters.d.ts +0 -4
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +73 -68
- package/dist/adapter/converters/shader-formats.js +33 -46
- package/dist/adapter/converters/texture-formats.d.ts +9 -18
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +454 -871
- package/dist/adapter/converters/vertex-formats.js +52 -61
- package/dist/adapter/device-helpers/device-features.d.ts +2 -5
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +56 -87
- package/dist/adapter/device-helpers/device-limits.d.ts +2 -4
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +88 -83
- package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +79 -63
- package/dist/adapter/device-helpers/webgl-device-features.d.ts +6 -0
- package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -0
- package/dist/adapter/device-helpers/webgl-device-features.js +52 -0
- package/dist/adapter/device-helpers/webgl-device-info.d.ts +4 -0
- package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -0
- package/dist/adapter/device-helpers/webgl-device-info.js +87 -0
- package/dist/adapter/device-helpers/webgl-device-limits.d.ts +50 -0
- package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -0
- package/dist/adapter/device-helpers/webgl-device-limits.js +92 -0
- package/dist/adapter/helpers/decode-webgl-types.js +87 -76
- 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 +261 -226
- package/dist/adapter/helpers/parse-shader-compiler-log.js +46 -37
- package/dist/adapter/helpers/set-uniform.d.ts +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +67 -82
- package/dist/adapter/helpers/webgl-topology-utils.js +77 -93
- package/dist/adapter/objects/constants-to-keys.d.ts +1 -1
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js +18 -12
- package/dist/adapter/objects/webgl-renderbuffer.js +76 -80
- package/dist/adapter/objects/webgl-resource.d.ts +1 -1
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +204 -154
- package/dist/adapter/resources/webgl-buffer.d.ts +2 -3
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +160 -119
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +268 -171
- package/dist/adapter/resources/webgl-command-encoder.js +32 -40
- package/dist/adapter/resources/webgl-external-texture.js +92 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +167 -139
- package/dist/adapter/resources/webgl-render-pass.js +121 -95
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +11 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +378 -228
- package/dist/adapter/resources/webgl-sampler.d.ts +0 -2
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +43 -34
- package/dist/adapter/resources/webgl-shader.d.ts +10 -1
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +106 -45
- package/dist/adapter/resources/webgl-texture.d.ts +2 -6
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +614 -699
- 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 +143 -145
- package/dist/adapter/resources/webgl-vertex-array.d.ts +1 -1
- package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-vertex-array.js +229 -158
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +58 -37
- package/dist/adapter/webgl-device.d.ts +7 -15
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +440 -381
- package/dist/classic/accessor.js +132 -102
- package/dist/classic/clear.d.ts +2 -2
- package/dist/classic/clear.d.ts.map +1 -1
- package/dist/classic/clear.js +73 -73
- package/dist/classic/copy-and-blit.d.ts.map +1 -1
- package/dist/classic/copy-and-blit.js +176 -177
- package/dist/classic/format-utils.d.ts +2 -2
- package/dist/classic/format-utils.js +38 -32
- package/dist/classic/typed-array-utils.js +95 -81
- package/dist/context/{polyfill → context}/context-data.d.ts +2 -1
- package/dist/context/context/context-data.d.ts.map +1 -0
- package/dist/context/context/context-data.js +33 -0
- package/dist/context/context/create-browser-context.d.ts +1 -6
- package/dist/context/context/create-browser-context.d.ts.map +1 -1
- package/dist/context/context/create-browser-context.js +62 -49
- package/dist/context/debug/spector.js +54 -50
- package/dist/context/debug/webgl-developer-tools.d.ts +1 -2
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +102 -76
- package/dist/context/parameters/unified-parameter-api.d.ts +3 -3
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +95 -46
- package/dist/context/parameters/webgl-parameter-tables.d.ts +110 -99
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +456 -404
- package/dist/context/state-tracker/deep-array-equal.js +18 -14
- package/dist/context/state-tracker/track-context-state.d.ts +4 -4
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +190 -126
- 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 +45 -29
- package/dist/dist.dev.js +2568 -3786
- package/dist/index.cjs +1346 -2464
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +2 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -26
- package/dist/types.js +2 -1
- package/dist.min.js +9 -42
- package/package.json +11 -15
- package/src/adapter/converters/device-parameters.ts +0 -1
- package/src/adapter/converters/sampler-parameters.ts +0 -17
- package/src/adapter/converters/texture-formats.ts +86 -154
- package/src/adapter/device-helpers/webgl-device-features.ts +69 -0
- package/src/adapter/device-helpers/{get-device-info.ts → webgl-device-info.ts} +3 -4
- package/src/adapter/device-helpers/{device-limits.ts → webgl-device-limits.ts} +25 -23
- package/src/adapter/helpers/get-shader-layout.ts +17 -28
- package/src/adapter/helpers/set-uniform.ts +1 -3
- package/src/adapter/objects/constants-to-keys.ts +1 -1
- package/src/adapter/objects/webgl-renderbuffer.ts +4 -4
- package/src/adapter/objects/webgl-resource.ts +3 -18
- package/src/adapter/resources/webgl-buffer.ts +6 -11
- package/src/adapter/resources/webgl-command-buffer.ts +20 -30
- package/src/adapter/resources/webgl-external-texture.ts +2 -3
- package/src/adapter/resources/webgl-framebuffer.ts +4 -5
- package/src/adapter/resources/webgl-render-pass.ts +7 -7
- package/src/adapter/resources/webgl-render-pipeline.ts +106 -31
- package/src/adapter/resources/webgl-sampler.ts +5 -9
- package/src/adapter/resources/webgl-shader.ts +57 -10
- package/src/adapter/resources/webgl-texture.ts +29 -103
- package/src/adapter/resources/webgl-transform-feedback.ts +14 -15
- package/src/adapter/resources/webgl-vertex-array.ts +16 -18
- package/src/adapter/webgl-canvas-context.ts +1 -7
- package/src/adapter/webgl-device.ts +18 -67
- package/src/classic/clear.ts +13 -14
- package/src/classic/copy-and-blit.ts +1 -2
- package/src/context/context/context-data.ts +44 -0
- package/src/context/context/create-browser-context.ts +7 -32
- package/src/context/debug/webgl-developer-tools.ts +6 -8
- package/src/context/parameters/unified-parameter-api.ts +3 -3
- package/src/context/parameters/webgl-parameter-tables.ts +66 -75
- package/src/context/state-tracker/track-context-state.ts +18 -17
- package/src/context/state-tracker/with-parameters.ts +1 -1
- package/src/index.ts +2 -17
- package/dist/adapter/converters/device-parameters.js.map +0 -1
- package/dist/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/adapter/converters/shader-formats.js.map +0 -1
- package/dist/adapter/converters/texture-formats.js.map +0 -1
- package/dist/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/adapter/device-helpers/is-old-ie.d.ts +0 -2
- package/dist/adapter/device-helpers/is-old-ie.d.ts.map +0 -1
- package/dist/adapter/device-helpers/is-old-ie.js +0 -9
- package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/adapter/helpers/decode-webgl-types.js.map +0 -1
- package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/adapter/helpers/webgl-topology-utils.js.map +0 -1
- package/dist/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/adapter/resources/webgl-transform-feedback.js.map +0 -1
- package/dist/adapter/resources/webgl-vertex-array.js.map +0 -1
- package/dist/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/adapter/webgl-device.js.map +0 -1
- package/dist/classic/accessor.js.map +0 -1
- package/dist/classic/clear.js.map +0 -1
- package/dist/classic/copy-and-blit.js.map +0 -1
- package/dist/classic/format-utils.js.map +0 -1
- package/dist/classic/typed-array-utils.js.map +0 -1
- package/dist/context/context/create-browser-context.js.map +0 -1
- package/dist/context/context/create-headless-context.d.ts +0 -9
- package/dist/context/context/create-headless-context.d.ts.map +0 -1
- package/dist/context/context/create-headless-context.js +0 -42
- package/dist/context/context/create-headless-context.js.map +0 -1
- package/dist/context/context/webgl-checks.d.ts +0 -13
- package/dist/context/context/webgl-checks.d.ts.map +0 -1
- package/dist/context/context/webgl-checks.js +0 -31
- package/dist/context/context/webgl-checks.js.map +0 -1
- package/dist/context/debug/spector.js.map +0 -1
- package/dist/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/context/polyfill/context-data.d.ts.map +0 -1
- package/dist/context/polyfill/context-data.js +0 -12
- package/dist/context/polyfill/context-data.js.map +0 -1
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +0 -2
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +0 -1
- package/dist/context/polyfill/get-parameter-polyfill.js +0 -85
- package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/context/polyfill/polyfill-context.d.ts +0 -5
- package/dist/context/polyfill/polyfill-context.d.ts.map +0 -1
- package/dist/context/polyfill/polyfill-context.js +0 -87
- package/dist/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/context/polyfill/polyfill-table.d.ts +0 -48
- package/dist/context/polyfill/polyfill-table.d.ts.map +0 -1
- package/dist/context/polyfill/polyfill-table.js +0 -137
- package/dist/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +0 -2
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +0 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -265
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/src/adapter/device-helpers/device-features.ts +0 -161
- package/src/adapter/device-helpers/is-old-ie.ts +0 -14
- package/src/context/context/create-headless-context.ts +0 -51
- package/src/context/context/webgl-checks.ts +0 -51
- package/src/context/polyfill/context-data.ts +0 -30
- package/src/context/polyfill/get-parameter-polyfill.ts +0 -122
- package/src/context/polyfill/polyfill-context.ts +0 -104
- package/src/context/polyfill/polyfill-table.ts +0 -167
- package/src/context/polyfill/polyfill-vertex-array-object.ts +0 -365
|
@@ -1,155 +1,183 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
1
3
|
import { Framebuffer, assert } from '@luma.gl/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { GL } from '@luma.gl/constants';
|
|
5
|
+
import { WEBGLTexture } from './webgl-texture';
|
|
6
|
+
import { WEBGLRenderbuffer } from '../objects/webgl-renderbuffer';
|
|
7
|
+
import { getDepthStencilAttachmentWebGL } from '../converters/texture-formats';
|
|
8
|
+
/** luma.gl Framebuffer, WebGL implementation */
|
|
5
9
|
export class WEBGLFramebuffer extends Framebuffer {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
this.device = void 0;
|
|
12
|
-
this.gl = void 0;
|
|
13
|
-
this.handle = void 0;
|
|
14
|
-
const isDefaultFramebuffer = props.handle === null;
|
|
15
|
-
this.device = device;
|
|
16
|
-
this.gl = device.gl;
|
|
17
|
-
this.handle = this.props.handle || isDefaultFramebuffer ? this.props.handle : this.gl.createFramebuffer();
|
|
18
|
-
if (!isDefaultFramebuffer) {
|
|
19
|
-
device.setSpectorMetadata(this.handle, {
|
|
20
|
-
id: this.props.id,
|
|
21
|
-
props: this.props
|
|
22
|
-
});
|
|
23
|
-
this.autoCreateAttachmentTextures();
|
|
24
|
-
this.gl.bindFramebuffer(36160, this.handle);
|
|
25
|
-
for (let i = 0; i < this.colorAttachments.length; ++i) {
|
|
26
|
-
const attachment = this.colorAttachments[i];
|
|
27
|
-
const attachmentPoint = 36064 + i;
|
|
28
|
-
if (attachment) {
|
|
29
|
-
this._attachOne(attachmentPoint, attachment);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (this.depthStencilAttachment) {
|
|
33
|
-
this._attachOne(getDepthStencilAttachmentWebGL(this.depthStencilAttachment.format), this.depthStencilAttachment);
|
|
34
|
-
}
|
|
35
|
-
this.gl.bindFramebuffer(36160, null);
|
|
36
|
-
}
|
|
37
|
-
if (props.check !== false) {
|
|
38
|
-
this._checkStatus();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
destroy() {
|
|
42
|
-
super.destroy();
|
|
43
|
-
if (!this.destroyed && this.handle !== null) {
|
|
44
|
-
this.gl.deleteFramebuffer(this.handle);
|
|
10
|
+
device;
|
|
11
|
+
gl;
|
|
12
|
+
handle;
|
|
13
|
+
get texture() {
|
|
14
|
+
return this.colorAttachments[0];
|
|
45
15
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
16
|
+
constructor(device, props) {
|
|
17
|
+
super(device, props);
|
|
18
|
+
// WebGL default framebuffer handle is null
|
|
19
|
+
const isDefaultFramebuffer = props.handle === null;
|
|
20
|
+
this.device = device;
|
|
21
|
+
this.gl = device.gl;
|
|
22
|
+
this.handle =
|
|
23
|
+
this.props.handle || isDefaultFramebuffer ? this.props.handle : this.gl.createFramebuffer();
|
|
24
|
+
if (!isDefaultFramebuffer) {
|
|
25
|
+
// default framebuffer handle is null, so we can't set spector metadata...
|
|
26
|
+
device.setSpectorMetadata(this.handle, { id: this.props.id, props: this.props });
|
|
27
|
+
// Auto create textures for attachments if needed
|
|
28
|
+
this.autoCreateAttachmentTextures();
|
|
29
|
+
/** Attach from a map of attachments */
|
|
30
|
+
this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
|
|
31
|
+
// Walk the attachments
|
|
32
|
+
for (let i = 0; i < this.colorAttachments.length; ++i) {
|
|
33
|
+
const attachment = this.colorAttachments[i];
|
|
34
|
+
const attachmentPoint = GL.COLOR_ATTACHMENT0 + i;
|
|
35
|
+
if (attachment) {
|
|
36
|
+
this._attachOne(attachmentPoint, attachment);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (this.depthStencilAttachment) {
|
|
40
|
+
this._attachOne(getDepthStencilAttachmentWebGL(this.depthStencilAttachment.format), this.depthStencilAttachment);
|
|
41
|
+
}
|
|
42
|
+
this.gl.bindFramebuffer(GL.FRAMEBUFFER, null);
|
|
43
|
+
}
|
|
44
|
+
// @ts-expect-error
|
|
45
|
+
if (props.check !== false) {
|
|
46
|
+
this._checkStatus();
|
|
47
|
+
}
|
|
56
48
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
resizeAttachments(width, height) {
|
|
67
|
-
if (this.handle === null) {
|
|
68
|
-
this.width = this.gl.drawingBufferWidth;
|
|
69
|
-
this.height = this.gl.drawingBufferHeight;
|
|
70
|
-
return this;
|
|
49
|
+
/** destroys any auto created resources etc. */
|
|
50
|
+
destroy() {
|
|
51
|
+
super.destroy(); // destroys owned resources etc.
|
|
52
|
+
if (!this.destroyed && this.handle !== null) {
|
|
53
|
+
this.gl.deleteFramebuffer(this.handle);
|
|
54
|
+
// this.handle = null;
|
|
55
|
+
}
|
|
71
56
|
}
|
|
72
|
-
|
|
73
|
-
|
|
57
|
+
// PRIVATE
|
|
58
|
+
/** Check the status */
|
|
59
|
+
_checkStatus() {
|
|
60
|
+
const { gl } = this;
|
|
61
|
+
// TODO - should we really rely on this trick?
|
|
62
|
+
const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
|
|
63
|
+
const status = gl.checkFramebufferStatus(GL.FRAMEBUFFER);
|
|
64
|
+
gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
|
|
65
|
+
if (status !== gl.FRAMEBUFFER_COMPLETE) {
|
|
66
|
+
throw new Error(`Framebuffer ${_getFrameBufferStatus(status)}`);
|
|
67
|
+
}
|
|
74
68
|
}
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
/** In WebGL we must use renderbuffers for depth/stencil attachments (unless we have extensions) */
|
|
70
|
+
createDepthStencilTexture(format) {
|
|
71
|
+
return new WEBGLRenderbuffer(this.device, {
|
|
72
|
+
id: `${this.id}-depth-stencil`, // TODO misleading if not depth and stencil?
|
|
73
|
+
format,
|
|
74
|
+
// dataFormat: GL.DEPTH_STENCIL,
|
|
75
|
+
// type: GL.UNSIGNED_INT_24_8,
|
|
76
|
+
width: this.width,
|
|
77
|
+
height: this.height
|
|
78
|
+
});
|
|
77
79
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Attachment resize is expected to be a noop if size is same
|
|
82
|
+
*/
|
|
83
|
+
resizeAttachments(width, height) {
|
|
84
|
+
// for default framebuffer, just update the stored size
|
|
85
|
+
if (this.handle === null) {
|
|
86
|
+
// assert(width === undefined && height === undefined);
|
|
87
|
+
this.width = this.gl.drawingBufferWidth;
|
|
88
|
+
this.height = this.gl.drawingBufferHeight;
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
if (width === undefined) {
|
|
92
|
+
width = this.gl.drawingBufferWidth;
|
|
93
|
+
}
|
|
94
|
+
if (height === undefined) {
|
|
95
|
+
height = this.gl.drawingBufferHeight;
|
|
96
|
+
}
|
|
97
|
+
// TODO Not clear that this is better than default destroy/create implementation
|
|
98
|
+
for (const colorAttachment of this.colorAttachments) {
|
|
99
|
+
colorAttachment.resize({ width, height });
|
|
100
|
+
}
|
|
101
|
+
if (this.depthStencilAttachment) {
|
|
102
|
+
this.depthStencilAttachment.resize({ width, height });
|
|
103
|
+
}
|
|
104
|
+
return this;
|
|
83
105
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
106
|
+
/** Attach one attachment */
|
|
107
|
+
_attachOne(attachmentPoint, attachment) {
|
|
108
|
+
if (attachment instanceof WEBGLRenderbuffer) {
|
|
109
|
+
this._attachWEBGLRenderbuffer(attachmentPoint, attachment);
|
|
110
|
+
return attachment;
|
|
111
|
+
}
|
|
112
|
+
else if (Array.isArray(attachment)) {
|
|
113
|
+
const [texture, layer = 0, level = 0] = attachment;
|
|
114
|
+
this._attachTexture(attachmentPoint, texture, layer, level);
|
|
115
|
+
return texture;
|
|
116
|
+
}
|
|
117
|
+
else if (attachment instanceof WEBGLTexture) {
|
|
118
|
+
this._attachTexture(attachmentPoint, attachment, 0, 0);
|
|
119
|
+
return attachment;
|
|
120
|
+
}
|
|
121
|
+
throw new Error('attach');
|
|
89
122
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
_attachOne(attachmentPoint, attachment) {
|
|
93
|
-
if (attachment instanceof WEBGLRenderbuffer) {
|
|
94
|
-
this._attachWEBGLRenderbuffer(attachmentPoint, attachment);
|
|
95
|
-
return attachment;
|
|
96
|
-
} else if (Array.isArray(attachment)) {
|
|
97
|
-
const [texture, layer = 0, level = 0] = attachment;
|
|
98
|
-
this._attachTexture(attachmentPoint, texture, layer, level);
|
|
99
|
-
return texture;
|
|
100
|
-
} else if (attachment instanceof WEBGLTexture) {
|
|
101
|
-
this._attachTexture(attachmentPoint, attachment, 0, 0);
|
|
102
|
-
return attachment;
|
|
123
|
+
_attachWEBGLRenderbuffer(attachment, renderbuffer) {
|
|
124
|
+
this.gl.framebufferRenderbuffer(GL.FRAMEBUFFER, attachment, GL.RENDERBUFFER, renderbuffer.handle);
|
|
103
125
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
/**
|
|
127
|
+
* @param attachment
|
|
128
|
+
* @param texture
|
|
129
|
+
* @param layer = 0 - index into WEBGLTextureArray and Texture3D or face for `TextureCubeMap`
|
|
130
|
+
* @param level = 0 - mipmapLevel
|
|
131
|
+
*/
|
|
132
|
+
_attachTexture(attachment, texture, layer, level) {
|
|
133
|
+
const { gl } = this.device;
|
|
134
|
+
gl.bindTexture(texture.target, texture.handle);
|
|
135
|
+
switch (texture.target) {
|
|
136
|
+
case GL.TEXTURE_2D_ARRAY:
|
|
137
|
+
case GL.TEXTURE_3D:
|
|
138
|
+
gl.framebufferTextureLayer(GL.FRAMEBUFFER, attachment, texture.target, level, layer);
|
|
139
|
+
break;
|
|
140
|
+
case GL.TEXTURE_CUBE_MAP:
|
|
141
|
+
// layer must be a cubemap face (or if index, converted to cube map face)
|
|
142
|
+
const face = mapIndexToCubeMapFace(layer);
|
|
143
|
+
gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, face, texture.handle, level);
|
|
144
|
+
break;
|
|
145
|
+
case GL.TEXTURE_2D:
|
|
146
|
+
gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, texture.handle, level);
|
|
147
|
+
break;
|
|
148
|
+
default:
|
|
149
|
+
assert(false, 'Illegal texture type');
|
|
150
|
+
}
|
|
151
|
+
gl.bindTexture(texture.target, null);
|
|
130
152
|
}
|
|
131
|
-
gl.bindTexture(texture.target, null);
|
|
132
|
-
}
|
|
133
153
|
}
|
|
154
|
+
// Helper functions
|
|
155
|
+
// Map an index to a cube map face constant
|
|
134
156
|
function mapIndexToCubeMapFace(layer) {
|
|
135
|
-
|
|
157
|
+
// TEXTURE_CUBE_MAP_POSITIVE_X is a big value (0x8515)
|
|
158
|
+
// if smaller assume layer is index, otherwise assume it is already a cube map face constant
|
|
159
|
+
return layer < GL.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + GL.TEXTURE_CUBE_MAP_POSITIVE_X : layer;
|
|
136
160
|
}
|
|
161
|
+
// Helper METHODS
|
|
162
|
+
// Get a string describing the framebuffer error if installed
|
|
137
163
|
function _getFrameBufferStatus(status) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
164
|
+
switch (status) {
|
|
165
|
+
case GL.FRAMEBUFFER_COMPLETE:
|
|
166
|
+
return 'success';
|
|
167
|
+
case GL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
|
|
168
|
+
return 'Mismatched attachments';
|
|
169
|
+
case GL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
|
|
170
|
+
return 'No attachments';
|
|
171
|
+
case GL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:
|
|
172
|
+
return 'Height/width mismatch';
|
|
173
|
+
case GL.FRAMEBUFFER_UNSUPPORTED:
|
|
174
|
+
return 'Unsupported or split attachments';
|
|
175
|
+
// WebGL2
|
|
176
|
+
case GL.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:
|
|
177
|
+
return 'Samples mismatch';
|
|
178
|
+
// OVR_multiview2 extension
|
|
179
|
+
// case GL.FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: return 'baseViewIndex mismatch';
|
|
180
|
+
default:
|
|
181
|
+
return `${status}`;
|
|
182
|
+
}
|
|
154
183
|
}
|
|
155
|
-
//# sourceMappingURL=webgl-framebuffer.js.map
|
|
@@ -1,107 +1,133 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
1
3
|
import { RenderPass } from '@luma.gl/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { GL } from '@luma.gl/constants';
|
|
5
|
+
import { withGLParameters } from '../../context/state-tracker/with-parameters';
|
|
6
|
+
import { setGLParameters } from '../../context/parameters/unified-parameter-api';
|
|
7
|
+
import { pushContextState, popContextState } from '../../context/state-tracker/track-context-state';
|
|
8
|
+
// Should collapse during minification
|
|
5
9
|
const GL_DEPTH_BUFFER_BIT = 0x00000100;
|
|
6
10
|
const GL_STENCIL_BUFFER_BIT = 0x00000400;
|
|
7
11
|
const GL_COLOR_BUFFER_BIT = 0x00004000;
|
|
8
12
|
const GL_COLOR = 0x1800;
|
|
9
13
|
export class WEBGLRenderPass extends RenderPass {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (this.props.framebuffer) {
|
|
22
|
-
setGLParameters(this.device, {
|
|
23
|
-
framebuffer: null
|
|
24
|
-
});
|
|
14
|
+
device;
|
|
15
|
+
/** Parameters that should be applied before each draw call */
|
|
16
|
+
glParameters;
|
|
17
|
+
constructor(device, props) {
|
|
18
|
+
super(device, props);
|
|
19
|
+
this.device = device;
|
|
20
|
+
// TODO - do parameters (scissorRect) affect the clear operation?
|
|
21
|
+
pushContextState(this.device.gl);
|
|
22
|
+
this.setParameters(this.props.parameters);
|
|
23
|
+
// Hack - for now WebGL draws in "immediate mode" (instead of queueing the operations)...
|
|
24
|
+
this.clear();
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const glParameters = {};
|
|
33
|
-
if (this.props.framebuffer) {
|
|
34
|
-
glParameters.framebuffer = this.props.framebuffer;
|
|
26
|
+
end() {
|
|
27
|
+
popContextState(this.device.gl);
|
|
28
|
+
if (this.props.framebuffer) {
|
|
29
|
+
setGLParameters(this.device, { framebuffer: null });
|
|
30
|
+
}
|
|
31
|
+
// should add commands to CommandEncoder.
|
|
35
32
|
}
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
pushDebugGroup(groupLabel) { }
|
|
34
|
+
popDebugGroup() { }
|
|
35
|
+
insertDebugMarker(markerLabel) { }
|
|
36
|
+
// writeTimestamp(querySet: GPUQuerySet, queryIndex: number): void;
|
|
37
|
+
// beginOcclusionQuery(queryIndex: number): void;
|
|
38
|
+
// endOcclusionQuery(): void;
|
|
39
|
+
// executeBundles(bundles: Iterable<GPURenderBundle>): void;
|
|
40
|
+
/**
|
|
41
|
+
* Maps RenderPass parameters to GL parameters
|
|
42
|
+
*/
|
|
43
|
+
setParameters(parameters = {}) {
|
|
44
|
+
const glParameters = {};
|
|
45
|
+
// Framebuffers are specified using parameters in WebGL
|
|
46
|
+
if (this.props.framebuffer) {
|
|
47
|
+
glParameters.framebuffer = this.props.framebuffer;
|
|
48
|
+
}
|
|
49
|
+
if (this.props.depthReadOnly) {
|
|
50
|
+
glParameters.depthMask = !this.props.depthReadOnly;
|
|
51
|
+
}
|
|
52
|
+
glParameters.stencilMask = this.props.stencilReadOnly ? 0 : 1;
|
|
53
|
+
glParameters[GL.RASTERIZER_DISCARD] = this.props.discard;
|
|
54
|
+
// Map the four renderpass parameters to WebGL parameters
|
|
55
|
+
if (parameters.viewport) {
|
|
56
|
+
// WebGPU viewports are 6 coordinates (X, Y, Z)
|
|
57
|
+
if (parameters.viewport.length >= 6) {
|
|
58
|
+
glParameters.viewport = parameters.viewport.slice(0, 4);
|
|
59
|
+
glParameters.depthRange = [parameters.viewport[4], parameters.viewport[5]];
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// WebGL viewports are 4 coordinates (X, Y)
|
|
63
|
+
glParameters.viewport = parameters.viewport;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
glParameters.scissorTest = Boolean(parameters.scissorRect);
|
|
67
|
+
if (parameters.scissorRect) {
|
|
68
|
+
glParameters.scissor = parameters.scissorRect;
|
|
69
|
+
}
|
|
70
|
+
if (parameters.blendConstant) {
|
|
71
|
+
glParameters.blendColor = parameters.blendConstant;
|
|
72
|
+
}
|
|
73
|
+
if (parameters.stencilReference) {
|
|
74
|
+
// eslint-disable-next-line no-console
|
|
75
|
+
console.warn('RenderPassParameters.stencilReference not yet implemented in WebGL');
|
|
76
|
+
// parameters.stencilFunc = [func, ref, mask];
|
|
77
|
+
// Does this work?
|
|
78
|
+
parameters[GL.STENCIL_REF] = parameters.stencilReference;
|
|
79
|
+
}
|
|
80
|
+
this.glParameters = glParameters;
|
|
81
|
+
setGLParameters(this.device, glParameters);
|
|
38
82
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
glParameters
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
83
|
+
// Internal
|
|
84
|
+
/**
|
|
85
|
+
* Optionally clears depth, color and stencil buffers based on parameters
|
|
86
|
+
*/
|
|
87
|
+
clear() {
|
|
88
|
+
const glParameters = { ...this.glParameters };
|
|
89
|
+
let clearMask = 0;
|
|
90
|
+
if (this.props.clearColor !== false) {
|
|
91
|
+
clearMask |= GL_COLOR_BUFFER_BIT;
|
|
92
|
+
glParameters.clearColor = this.props.clearColor;
|
|
93
|
+
}
|
|
94
|
+
if (this.props.clearDepth !== false) {
|
|
95
|
+
clearMask |= GL_DEPTH_BUFFER_BIT;
|
|
96
|
+
glParameters.clearDepth = this.props.clearDepth;
|
|
97
|
+
}
|
|
98
|
+
if (this.props.clearStencil !== false) {
|
|
99
|
+
clearMask |= GL_STENCIL_BUFFER_BIT;
|
|
100
|
+
glParameters.clearStencil = this.props.clearStencil;
|
|
101
|
+
}
|
|
102
|
+
if (clearMask !== 0) {
|
|
103
|
+
// Temporarily set any clear "colors" and call clear
|
|
104
|
+
withGLParameters(this.device, glParameters, () => {
|
|
105
|
+
this.device.gl.clear(clearMask);
|
|
106
|
+
});
|
|
107
|
+
// TODO - clear multiple color attachments
|
|
108
|
+
// for (attachment of this.framebuffer.colorAttachments) {
|
|
109
|
+
// this.clearColorBuffer
|
|
110
|
+
// }
|
|
111
|
+
}
|
|
48
112
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
113
|
+
/**
|
|
114
|
+
* WebGL2 - clear a specific color buffer
|
|
115
|
+
*/
|
|
116
|
+
clearColorBuffer(drawBuffer = 0, value = [0, 0, 0, 0]) {
|
|
117
|
+
withGLParameters(this.device.gl, { framebuffer: this.props.framebuffer }, () => {
|
|
118
|
+
// Method selection per OpenGL ES 3 docs
|
|
119
|
+
switch (value.constructor) {
|
|
120
|
+
case Int32Array:
|
|
121
|
+
this.device.gl.clearBufferiv(GL_COLOR, drawBuffer, value);
|
|
122
|
+
break;
|
|
123
|
+
case Uint32Array:
|
|
124
|
+
this.device.gl.clearBufferuiv(GL_COLOR, drawBuffer, value);
|
|
125
|
+
break;
|
|
126
|
+
case Float32Array:
|
|
127
|
+
default:
|
|
128
|
+
this.device.gl.clearBufferfv(GL_COLOR, drawBuffer, value);
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
52
132
|
}
|
|
53
|
-
if (parameters.blendConstant) {
|
|
54
|
-
glParameters.blendColor = parameters.blendConstant;
|
|
55
|
-
}
|
|
56
|
-
if (parameters.stencilReference) {
|
|
57
|
-
console.warn('RenderPassParameters.stencilReference not yet implemented in WebGL');
|
|
58
|
-
parameters[2967] = parameters.stencilReference;
|
|
59
|
-
}
|
|
60
|
-
this.glParameters = glParameters;
|
|
61
|
-
setGLParameters(this.device, glParameters);
|
|
62
|
-
}
|
|
63
|
-
clear() {
|
|
64
|
-
const glParameters = {
|
|
65
|
-
...this.glParameters
|
|
66
|
-
};
|
|
67
|
-
let clearMask = 0;
|
|
68
|
-
if (this.props.clearColor !== false) {
|
|
69
|
-
clearMask |= GL_COLOR_BUFFER_BIT;
|
|
70
|
-
glParameters.clearColor = this.props.clearColor;
|
|
71
|
-
}
|
|
72
|
-
if (this.props.clearDepth !== false) {
|
|
73
|
-
clearMask |= GL_DEPTH_BUFFER_BIT;
|
|
74
|
-
glParameters.clearDepth = this.props.clearDepth;
|
|
75
|
-
}
|
|
76
|
-
if (this.props.clearStencil !== false) {
|
|
77
|
-
clearMask |= GL_STENCIL_BUFFER_BIT;
|
|
78
|
-
glParameters.clearStencil = this.props.clearStencil;
|
|
79
|
-
}
|
|
80
|
-
if (clearMask !== 0) {
|
|
81
|
-
withGLParameters(this.device, glParameters, () => {
|
|
82
|
-
this.device.gl.clear(clearMask);
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
clearColorBuffer() {
|
|
87
|
-
let drawBuffer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
88
|
-
let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0, 0];
|
|
89
|
-
withGLParameters(this.device.gl2, {
|
|
90
|
-
framebuffer: this.props.framebuffer
|
|
91
|
-
}, () => {
|
|
92
|
-
switch (value.constructor) {
|
|
93
|
-
case Int32Array:
|
|
94
|
-
this.device.gl2.clearBufferiv(GL_COLOR, drawBuffer, value);
|
|
95
|
-
break;
|
|
96
|
-
case Uint32Array:
|
|
97
|
-
this.device.gl2.clearBufferuiv(GL_COLOR, drawBuffer, value);
|
|
98
|
-
break;
|
|
99
|
-
case Float32Array:
|
|
100
|
-
default:
|
|
101
|
-
this.device.gl2.clearBufferfv(GL_COLOR, drawBuffer, value);
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
133
|
}
|
|
107
|
-
//# sourceMappingURL=webgl-render-pass.js.map
|
|
@@ -51,7 +51,17 @@ export declare class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
51
51
|
baseVertex?: number;
|
|
52
52
|
transformFeedback?: WEBGLTransformFeedback;
|
|
53
53
|
}): boolean;
|
|
54
|
-
protected
|
|
54
|
+
protected _linkShaders(): Promise<void>;
|
|
55
|
+
/** Report link status. First, check for shader compilation failures if linking fails */
|
|
56
|
+
_reportLinkStatus(status: 'success' | 'linking' | 'validation'): void;
|
|
57
|
+
/**
|
|
58
|
+
* Get the shader compilation status
|
|
59
|
+
* TODO - Load log even when no error reported, to catch warnings?
|
|
60
|
+
* https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings
|
|
61
|
+
*/
|
|
62
|
+
_getLinkStatus(): 'success' | 'linking' | 'validation';
|
|
63
|
+
/** Use KHR_parallel_shader_compile extension if available */
|
|
64
|
+
_waitForLinkComplete(): Promise<void>;
|
|
55
65
|
/**
|
|
56
66
|
* Checks if all texture-values uniforms are renderable (i.e. loaded)
|
|
57
67
|
* Update a texture if needed (e.g. from video)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAsC,MAAM,eAAe,CAAC;AAUlF,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAK3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAKlE,oCAAoC;AACpC,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,yDAAyD;IACzD,MAAM,EAAE,WAAW,CAAC;IACpB,yCAAyC;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,oBAAoB;IACpB,EAAE,EAAE,WAAW,CAAC;IAChB,sBAAsB;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,mEAAmE;IACnE,kBAAkB,EAAE,YAAY,CAAC;IAEjC,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAM;IAC5C,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACvC,qBAAqB;IACrB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAEjC,aAAa,EAAE,MAAM,CAAK;IAC1B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAM;gBAEnC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"webgl-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAsC,MAAM,eAAe,CAAC;AAUlF,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAK3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAKlE,oCAAoC;AACpC,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,yDAAyD;IACzD,MAAM,EAAE,WAAW,CAAC;IACpB,yCAAyC;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,oBAAoB;IACpB,EAAE,EAAE,WAAW,CAAC;IAChB,sBAAsB;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,mEAAmE;IACnE,kBAAkB,EAAE,YAAY,CAAC;IAEjC,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAM;IAC5C,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACvC,qBAAqB;IACrB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAEjC,aAAa,EAAE,MAAM,CAAK;IAC1B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAM;gBAEnC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB;IAsClD,OAAO,IAAI,IAAI;IAQxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAiDpD,wDAAwD;IACxD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAalD;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,wBAAwB;QACxB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;KAC5C,GAAG,OAAO;cAsHK,YAAY;IA2B5B,wFAAwF;IACxF,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY;IAmB9D;;;;OAIG;IACH,cAAc,IAAI,SAAS,GAAG,SAAS,GAAG,YAAY;IAmBtD,6DAA6D;IACvD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3C;;;;OAIG;IACH,sBAAsB;IAatB,iDAAiD;IACjD,cAAc;IAiFd;;;OAGG;IACH,cAAc;CASf"}
|