@luma.gl/webgl 9.0.17 → 9.1.0-alpha.10
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 +30 -12
- package/dist/adapter/converters/texture-formats.d.ts +22 -16
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +39 -47
- package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-features.js +1 -2
- package/dist/adapter/device-helpers/webgl-device-limits.js +1 -1
- package/dist/adapter/helpers/webgl-texture-utils.d.ts +300 -0
- package/dist/adapter/helpers/webgl-texture-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/webgl-texture-utils.js +370 -0
- package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.js +0 -4
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +2 -2
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +6 -9
- package/dist/adapter/resources/webgl-framebuffer.d.ts +32 -5
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +42 -60
- package/dist/adapter/resources/webgl-render-pass.d.ts +3 -2
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +18 -7
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +46 -21
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +3 -3
- package/dist/adapter/resources/webgl-texture-view.d.ts +1 -1
- package/dist/adapter/resources/webgl-texture-view.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture-view.js +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +76 -172
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +397 -511
- package/dist/adapter/resources/webgl-vertex-array.d.ts +3 -2
- package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-vertex-array.js +2 -2
- 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 +91 -0
- package/dist/adapter/webgl-canvas-context.d.ts +3 -1
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +2 -0
- package/dist/adapter/webgl-device.d.ts +19 -30
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +35 -114
- package/dist/classic/accessor.d.ts +22 -1
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +1 -9
- package/dist/classic/clear.d.ts.map +1 -1
- package/dist/classic/clear.js +2 -5
- package/dist/classic/copy-and-blit.d.ts +3 -1
- package/dist/classic/copy-and-blit.d.ts.map +1 -1
- package/dist/classic/copy-and-blit.js +21 -18
- package/dist/classic/format-utils.d.ts.map +1 -1
- package/dist/classic/format-utils.js +0 -3
- package/dist/classic/typed-array-utils.d.ts +1 -1
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- 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 +697 -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 +25 -18
- package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +2 -5
- package/dist/context/parameters/webgl-parameter-tables.js +1 -1
- 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 +181 -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} +46 -77
- 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 +1112 -1380
- package/dist/dist.min.js +2 -2
- package/dist/index.cjs +1122 -1284
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/utils/fill-array.d.ts +8 -0
- package/dist/utils/fill-array.d.ts.map +1 -0
- package/dist/utils/fill-array.js +26 -0
- package/dist/utils/load-script.d.ts +8 -0
- package/dist/utils/load-script.d.ts.map +1 -0
- package/dist/utils/load-script.js +26 -0
- package/dist/utils/split-uniforms-and-bindings.d.ts +9 -0
- package/dist/utils/split-uniforms-and-bindings.d.ts.map +1 -0
- package/dist/utils/split-uniforms-and-bindings.js +20 -0
- package/dist/utils/uid.d.ts +7 -0
- package/dist/utils/uid.d.ts.map +1 -0
- package/dist/utils/uid.js +14 -0
- package/package.json +6 -5
- package/src/adapter/converters/device-parameters.ts +31 -13
- package/src/adapter/converters/texture-formats.ts +51 -56
- package/src/adapter/device-helpers/webgl-device-features.ts +1 -2
- package/src/adapter/device-helpers/webgl-device-limits.ts +1 -1
- package/src/adapter/helpers/webgl-texture-utils.ts +484 -0
- package/src/adapter/helpers/webgl-topology-utils.ts +0 -4
- package/src/adapter/resources/webgl-buffer.ts +2 -2
- package/src/adapter/resources/webgl-command-buffer.ts +8 -10
- package/src/adapter/resources/webgl-framebuffer.ts +22 -56
- package/src/adapter/resources/webgl-render-pass.ts +21 -9
- package/src/adapter/resources/webgl-render-pipeline.ts +50 -24
- package/src/adapter/resources/webgl-shader.ts +4 -4
- package/src/adapter/resources/webgl-texture-view.ts +1 -3
- package/src/adapter/resources/webgl-texture.ts +445 -784
- package/src/adapter/resources/webgl-vertex-array.ts +8 -7
- package/src/adapter/webgl-adapter.ts +113 -0
- package/src/adapter/webgl-canvas-context.ts +4 -1
- package/src/adapter/webgl-device.ts +40 -151
- package/src/classic/accessor.ts +31 -11
- package/src/classic/clear.ts +3 -6
- package/src/classic/copy-and-blit.ts +32 -27
- package/src/classic/format-utils.ts +0 -3
- package/src/classic/typed-array-utils.ts +1 -1
- package/src/context/debug/spector-types.ts +1154 -0
- package/src/context/debug/spector.ts +40 -30
- package/src/context/debug/webgl-developer-tools.ts +3 -7
- package/src/context/parameters/webgl-parameter-tables.ts +3 -3
- package/src/context/polyfills/polyfill-webgl1-extensions.ts +202 -0
- package/src/context/state-tracker/{track-context-state.ts → webgl-state-tracker.ts} +57 -97
- package/src/context/state-tracker/with-parameters.ts +5 -4
- package/src/index.ts +5 -13
- package/src/utils/fill-array.ts +35 -0
- package/src/utils/load-script.ts +30 -0
- package/src/utils/split-uniforms-and-bindings.ts +31 -0
- package/src/utils/uid.ts +16 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +0 -3
- package/dist/adapter/objects/constants-to-keys.d.ts.map +0 -1
- package/dist/adapter/objects/constants-to-keys.js +0 -22
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +0 -43
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +0 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +0 -95
- package/dist/adapter/objects/webgl-resource.d.ts +0 -32
- package/dist/adapter/objects/webgl-resource.d.ts.map +0 -1
- package/dist/adapter/objects/webgl-resource.js +0 -114
- 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/objects/constants-to-keys.ts +0 -27
- package/src/adapter/objects/webgl-renderbuffer.ts +0 -132
- package/src/adapter/objects/webgl-resource.ts +0 -183
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
// luma.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
|
|
5
|
-
import type {Device, ResourceProps} from '@luma.gl/core';
|
|
6
|
-
import {Resource, uid, stubRemovedMethods} from '@luma.gl/core';
|
|
7
|
-
import {GL} from '@luma.gl/constants';
|
|
8
|
-
import {WebGLDevice} from '../webgl-device';
|
|
9
|
-
|
|
10
|
-
const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Base class for WebGL object wrappers
|
|
14
|
-
*/
|
|
15
|
-
export abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {
|
|
16
|
-
readonly device: WebGLDevice;
|
|
17
|
-
readonly gl: WebGL2RenderingContext;
|
|
18
|
-
readonly gl2: WebGL2RenderingContext;
|
|
19
|
-
private _handle: any;
|
|
20
|
-
|
|
21
|
-
private _bound = false;
|
|
22
|
-
// Only meaningful for resources that allocate GPU memory
|
|
23
|
-
byteLength = 0;
|
|
24
|
-
|
|
25
|
-
constructor(device: Device, props: Props, defaultProps: Required<Props>) {
|
|
26
|
-
super(device, props, defaultProps);
|
|
27
|
-
|
|
28
|
-
this.device = device as WebGLDevice;
|
|
29
|
-
const gl = this.device.gl;
|
|
30
|
-
|
|
31
|
-
// extends
|
|
32
|
-
const {id} = props || {};
|
|
33
|
-
this.gl = gl;
|
|
34
|
-
this.gl2 = gl;
|
|
35
|
-
this.id = id || uid(this.constructor.name);
|
|
36
|
-
|
|
37
|
-
// Set the handle
|
|
38
|
-
// If handle was provided, use it, otherwise create a new handle
|
|
39
|
-
|
|
40
|
-
// TODO - Stores the handle with context loss information
|
|
41
|
-
// this.glCount = glGetContextLossCount(this.gl);
|
|
42
|
-
|
|
43
|
-
// Default VertexArray needs to be created with null handle, so compare against undefined
|
|
44
|
-
this._handle = props?.handle;
|
|
45
|
-
if (this._handle === undefined) {
|
|
46
|
-
this._handle = this._createHandle();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
this.byteLength = 0;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
override toString(): string {
|
|
53
|
-
return `${this.constructor.name}(${this.id})`;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
get handle() {
|
|
57
|
-
// TODO - Add context loss handling
|
|
58
|
-
// Will regenerate and reinitialize the handle if necessary
|
|
59
|
-
// const glCount = glGetContextLossCount(this.gl);
|
|
60
|
-
// if (this.glCount !== glCount) {
|
|
61
|
-
// this._handle = this._createHandle(this.props);
|
|
62
|
-
// this._glCount = glCount;
|
|
63
|
-
// // Reinitialize object
|
|
64
|
-
// this.initialize(this.props);
|
|
65
|
-
// }
|
|
66
|
-
return this._handle;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
override delete({deleteChildren = false} = {}) {
|
|
70
|
-
// Delete this object, and get refs to any children
|
|
71
|
-
// @ts-expect-error
|
|
72
|
-
const children = this._handle && this._deleteHandle(this._handle);
|
|
73
|
-
if (this._handle) {
|
|
74
|
-
this.removeStats();
|
|
75
|
-
}
|
|
76
|
-
this._handle = null;
|
|
77
|
-
|
|
78
|
-
// Optionally, recursively delete the children
|
|
79
|
-
// @ts-expect-error
|
|
80
|
-
if (children && deleteChildren) {
|
|
81
|
-
// @ts-expect-error
|
|
82
|
-
children.filter(Boolean).forEach(child => child.destroy());
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return this;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
bind(funcOrHandle = this.handle) {
|
|
89
|
-
if (typeof funcOrHandle !== 'function') {
|
|
90
|
-
this._bindHandle(funcOrHandle);
|
|
91
|
-
return this;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
let value;
|
|
95
|
-
|
|
96
|
-
if (!this._bound) {
|
|
97
|
-
this._bindHandle(this.handle);
|
|
98
|
-
this._bound = true;
|
|
99
|
-
|
|
100
|
-
value = funcOrHandle();
|
|
101
|
-
|
|
102
|
-
this._bound = false;
|
|
103
|
-
this._bindHandle(null);
|
|
104
|
-
} else {
|
|
105
|
-
value = funcOrHandle();
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return value;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
unbind() {
|
|
112
|
-
this.bind(null);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// Install stubs for removed methods
|
|
116
|
-
stubRemovedMethods(className: string, version: string, methodNames: string[]) {
|
|
117
|
-
return stubRemovedMethods(this, className, version, methodNames);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// PUBLIC VIRTUAL METHODS
|
|
121
|
-
initialize(props: ResourceProps) {}
|
|
122
|
-
|
|
123
|
-
// PROTECTED METHODS - These must be overridden by subclass
|
|
124
|
-
_createHandle() {
|
|
125
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
_deleteHandle() {
|
|
129
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
_bindHandle(handle: any) {
|
|
133
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
_getOptsFromHandle() {
|
|
137
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
_getParameter(pname: GL, props: Record<string, any>): number {
|
|
141
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
_setParameter(pname: GL | string, value: any) {
|
|
145
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// PRIVATE METHODS
|
|
149
|
-
|
|
150
|
-
/*
|
|
151
|
-
_addStats() {
|
|
152
|
-
const name = this.constructor.name;
|
|
153
|
-
const stats = lumaStats.get('Resource Counts');
|
|
154
|
-
|
|
155
|
-
stats.get('Resources Created').incrementCount();
|
|
156
|
-
stats.get(`${name}s Created`).incrementCount();
|
|
157
|
-
stats.get(`${name}s Active`).incrementCount();
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
_removeStats() {
|
|
161
|
-
const name = this.constructor.name;
|
|
162
|
-
const stats = lumaStats.get('Resource Counts');
|
|
163
|
-
|
|
164
|
-
stats.get(`${name}s Active`).decrementCount();
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
trackAllocatedMemory(bytes, name = this.constructor.name) {
|
|
168
|
-
const stats = lumaStats.get('Memory Usage');
|
|
169
|
-
|
|
170
|
-
stats.get('GPU Memory').addCount(bytes);
|
|
171
|
-
stats.get(`${name} Memory`).addCount(bytes);
|
|
172
|
-
this.byteLength = bytes;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
trackDeallocatedMemory(name = this.constructor.name) {
|
|
176
|
-
const stats = lumaStats.get('Memory Usage');
|
|
177
|
-
|
|
178
|
-
stats.get('GPU Memory').subtractCount(this.byteLength);
|
|
179
|
-
stats.get(`${name} Memory`).subtractCount(this.byteLength);
|
|
180
|
-
this.byteLength = 0;
|
|
181
|
-
}
|
|
182
|
-
*/
|
|
183
|
-
}
|