@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.
Files changed (144) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +30 -12
  3. package/dist/adapter/converters/texture-formats.d.ts +22 -16
  4. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  5. package/dist/adapter/converters/texture-formats.js +39 -47
  6. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
  7. package/dist/adapter/device-helpers/webgl-device-features.js +1 -2
  8. package/dist/adapter/device-helpers/webgl-device-limits.js +1 -1
  9. package/dist/adapter/helpers/webgl-texture-utils.d.ts +300 -0
  10. package/dist/adapter/helpers/webgl-texture-utils.d.ts.map +1 -0
  11. package/dist/adapter/helpers/webgl-texture-utils.js +370 -0
  12. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
  13. package/dist/adapter/helpers/webgl-topology-utils.js +0 -4
  14. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  15. package/dist/adapter/resources/webgl-buffer.js +2 -2
  16. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  17. package/dist/adapter/resources/webgl-command-buffer.js +6 -9
  18. package/dist/adapter/resources/webgl-framebuffer.d.ts +32 -5
  19. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  20. package/dist/adapter/resources/webgl-framebuffer.js +42 -60
  21. package/dist/adapter/resources/webgl-render-pass.d.ts +3 -2
  22. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  23. package/dist/adapter/resources/webgl-render-pass.js +18 -7
  24. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  25. package/dist/adapter/resources/webgl-render-pipeline.js +46 -21
  26. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  27. package/dist/adapter/resources/webgl-shader.js +3 -3
  28. package/dist/adapter/resources/webgl-texture-view.d.ts +1 -1
  29. package/dist/adapter/resources/webgl-texture-view.d.ts.map +1 -1
  30. package/dist/adapter/resources/webgl-texture-view.js +1 -1
  31. package/dist/adapter/resources/webgl-texture.d.ts +76 -172
  32. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  33. package/dist/adapter/resources/webgl-texture.js +397 -511
  34. package/dist/adapter/resources/webgl-vertex-array.d.ts +3 -2
  35. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
  36. package/dist/adapter/resources/webgl-vertex-array.js +2 -2
  37. package/dist/adapter/webgl-adapter.d.ts +21 -0
  38. package/dist/adapter/webgl-adapter.d.ts.map +1 -0
  39. package/dist/adapter/webgl-adapter.js +91 -0
  40. package/dist/adapter/webgl-canvas-context.d.ts +3 -1
  41. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  42. package/dist/adapter/webgl-canvas-context.js +2 -0
  43. package/dist/adapter/webgl-device.d.ts +19 -30
  44. package/dist/adapter/webgl-device.d.ts.map +1 -1
  45. package/dist/adapter/webgl-device.js +35 -114
  46. package/dist/classic/accessor.d.ts +22 -1
  47. package/dist/classic/accessor.d.ts.map +1 -1
  48. package/dist/classic/accessor.js +1 -9
  49. package/dist/classic/clear.d.ts.map +1 -1
  50. package/dist/classic/clear.js +2 -5
  51. package/dist/classic/copy-and-blit.d.ts +3 -1
  52. package/dist/classic/copy-and-blit.d.ts.map +1 -1
  53. package/dist/classic/copy-and-blit.js +21 -18
  54. package/dist/classic/format-utils.d.ts.map +1 -1
  55. package/dist/classic/format-utils.js +0 -3
  56. package/dist/classic/typed-array-utils.d.ts +1 -1
  57. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  58. package/dist/context/debug/spector-types.d.ts +1108 -0
  59. package/dist/context/debug/spector-types.d.ts.map +1 -0
  60. package/dist/context/debug/spector-types.js +697 -0
  61. package/dist/context/debug/spector.d.ts +12 -8
  62. package/dist/context/debug/spector.d.ts.map +1 -1
  63. package/dist/context/debug/spector.js +25 -18
  64. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  65. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  66. package/dist/context/debug/webgl-developer-tools.js +2 -5
  67. package/dist/context/parameters/webgl-parameter-tables.js +1 -1
  68. package/dist/context/polyfills/polyfill-webgl1-extensions.d.ts +9 -0
  69. package/dist/context/polyfills/polyfill-webgl1-extensions.d.ts.map +1 -0
  70. package/dist/context/polyfills/polyfill-webgl1-extensions.js +181 -0
  71. package/dist/context/state-tracker/webgl-state-tracker.d.ts +43 -0
  72. package/dist/context/state-tracker/webgl-state-tracker.d.ts.map +1 -0
  73. package/dist/context/state-tracker/{track-context-state.js → webgl-state-tracker.js} +46 -77
  74. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  75. package/dist/context/state-tracker/with-parameters.js +5 -4
  76. package/dist/dist.dev.js +1112 -1380
  77. package/dist/dist.min.js +2 -2
  78. package/dist/index.cjs +1122 -1284
  79. package/dist/index.cjs.map +4 -4
  80. package/dist/index.d.ts +3 -5
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +3 -5
  83. package/dist/utils/fill-array.d.ts +8 -0
  84. package/dist/utils/fill-array.d.ts.map +1 -0
  85. package/dist/utils/fill-array.js +26 -0
  86. package/dist/utils/load-script.d.ts +8 -0
  87. package/dist/utils/load-script.d.ts.map +1 -0
  88. package/dist/utils/load-script.js +26 -0
  89. package/dist/utils/split-uniforms-and-bindings.d.ts +9 -0
  90. package/dist/utils/split-uniforms-and-bindings.d.ts.map +1 -0
  91. package/dist/utils/split-uniforms-and-bindings.js +20 -0
  92. package/dist/utils/uid.d.ts +7 -0
  93. package/dist/utils/uid.d.ts.map +1 -0
  94. package/dist/utils/uid.js +14 -0
  95. package/package.json +6 -5
  96. package/src/adapter/converters/device-parameters.ts +31 -13
  97. package/src/adapter/converters/texture-formats.ts +51 -56
  98. package/src/adapter/device-helpers/webgl-device-features.ts +1 -2
  99. package/src/adapter/device-helpers/webgl-device-limits.ts +1 -1
  100. package/src/adapter/helpers/webgl-texture-utils.ts +484 -0
  101. package/src/adapter/helpers/webgl-topology-utils.ts +0 -4
  102. package/src/adapter/resources/webgl-buffer.ts +2 -2
  103. package/src/adapter/resources/webgl-command-buffer.ts +8 -10
  104. package/src/adapter/resources/webgl-framebuffer.ts +22 -56
  105. package/src/adapter/resources/webgl-render-pass.ts +21 -9
  106. package/src/adapter/resources/webgl-render-pipeline.ts +50 -24
  107. package/src/adapter/resources/webgl-shader.ts +4 -4
  108. package/src/adapter/resources/webgl-texture-view.ts +1 -3
  109. package/src/adapter/resources/webgl-texture.ts +445 -784
  110. package/src/adapter/resources/webgl-vertex-array.ts +8 -7
  111. package/src/adapter/webgl-adapter.ts +113 -0
  112. package/src/adapter/webgl-canvas-context.ts +4 -1
  113. package/src/adapter/webgl-device.ts +40 -151
  114. package/src/classic/accessor.ts +31 -11
  115. package/src/classic/clear.ts +3 -6
  116. package/src/classic/copy-and-blit.ts +32 -27
  117. package/src/classic/format-utils.ts +0 -3
  118. package/src/classic/typed-array-utils.ts +1 -1
  119. package/src/context/debug/spector-types.ts +1154 -0
  120. package/src/context/debug/spector.ts +40 -30
  121. package/src/context/debug/webgl-developer-tools.ts +3 -7
  122. package/src/context/parameters/webgl-parameter-tables.ts +3 -3
  123. package/src/context/polyfills/polyfill-webgl1-extensions.ts +202 -0
  124. package/src/context/state-tracker/{track-context-state.ts → webgl-state-tracker.ts} +57 -97
  125. package/src/context/state-tracker/with-parameters.ts +5 -4
  126. package/src/index.ts +5 -13
  127. package/src/utils/fill-array.ts +35 -0
  128. package/src/utils/load-script.ts +30 -0
  129. package/src/utils/split-uniforms-and-bindings.ts +31 -0
  130. package/src/utils/uid.ts +16 -0
  131. package/dist/adapter/objects/constants-to-keys.d.ts +0 -3
  132. package/dist/adapter/objects/constants-to-keys.d.ts.map +0 -1
  133. package/dist/adapter/objects/constants-to-keys.js +0 -22
  134. package/dist/adapter/objects/webgl-renderbuffer.d.ts +0 -43
  135. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +0 -1
  136. package/dist/adapter/objects/webgl-renderbuffer.js +0 -95
  137. package/dist/adapter/objects/webgl-resource.d.ts +0 -32
  138. package/dist/adapter/objects/webgl-resource.d.ts.map +0 -1
  139. package/dist/adapter/objects/webgl-resource.js +0 -114
  140. package/dist/context/state-tracker/track-context-state.d.ts +0 -22
  141. package/dist/context/state-tracker/track-context-state.d.ts.map +0 -1
  142. package/src/adapter/objects/constants-to-keys.ts +0 -27
  143. package/src/adapter/objects/webgl-renderbuffer.ts +0 -132
  144. 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
- }