@luma.gl/webgl 9.1.0-alpha.9 → 9.1.0-beta.11

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 (198) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts +3 -3
  2. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  3. package/dist/adapter/converters/device-parameters.js +1 -0
  4. package/dist/adapter/converters/device-parameters.js.map +1 -0
  5. package/dist/adapter/converters/sampler-parameters.js +7 -4
  6. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  7. package/dist/adapter/converters/shader-formats.js +1 -0
  8. package/dist/adapter/converters/shader-formats.js.map +1 -0
  9. package/dist/adapter/converters/vertex-formats.js +1 -0
  10. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  11. package/dist/adapter/converters/webgl-texture-table.d.ts +40 -0
  12. package/dist/adapter/converters/webgl-texture-table.d.ts.map +1 -0
  13. package/dist/adapter/converters/webgl-texture-table.js +304 -0
  14. package/dist/adapter/converters/webgl-texture-table.js.map +1 -0
  15. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
  16. package/dist/adapter/device-helpers/webgl-device-features.js +2 -2
  17. package/dist/adapter/device-helpers/webgl-device-features.js.map +1 -0
  18. package/dist/adapter/device-helpers/webgl-device-info.js +1 -0
  19. package/dist/adapter/device-helpers/webgl-device-info.js.map +1 -0
  20. package/dist/adapter/device-helpers/webgl-device-limits.js +1 -0
  21. package/dist/adapter/device-helpers/webgl-device-limits.js.map +1 -0
  22. package/dist/adapter/helpers/decode-webgl-types.js +1 -0
  23. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  24. package/dist/adapter/helpers/format-utils.d.ts.map +1 -0
  25. package/dist/{classic → adapter/helpers}/format-utils.js +7 -0
  26. package/dist/adapter/helpers/format-utils.js.map +1 -0
  27. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -1
  28. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  29. package/dist/adapter/helpers/get-shader-layout.js +5 -4
  30. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  31. package/dist/adapter/helpers/parse-shader-compiler-log.js +1 -0
  32. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  33. package/dist/adapter/helpers/set-uniform.js +1 -0
  34. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  35. package/dist/adapter/helpers/typed-array-utils.d.ts.map +1 -0
  36. package/dist/{classic → adapter/helpers}/typed-array-utils.js +1 -0
  37. package/dist/adapter/helpers/typed-array-utils.js.map +1 -0
  38. package/dist/adapter/helpers/webgl-texture-utils.d.ts +96 -25
  39. package/dist/adapter/helpers/webgl-texture-utils.d.ts.map +1 -1
  40. package/dist/adapter/helpers/webgl-texture-utils.js +225 -236
  41. package/dist/adapter/helpers/webgl-texture-utils.js.map +1 -0
  42. package/dist/adapter/helpers/webgl-topology-utils.js +1 -0
  43. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  44. package/dist/adapter/resources/webgl-buffer.js +1 -0
  45. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  46. package/dist/adapter/resources/webgl-command-buffer.d.ts +59 -2
  47. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  48. package/dist/adapter/resources/webgl-command-buffer.js +89 -32
  49. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  50. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  51. package/dist/adapter/resources/webgl-command-encoder.js +4 -0
  52. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  53. package/dist/adapter/resources/webgl-external-texture.js +15 -0
  54. package/dist/adapter/resources/webgl-external-texture.js.map +1 -0
  55. package/dist/adapter/resources/webgl-framebuffer.d.ts +33 -35
  56. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  57. package/dist/adapter/resources/webgl-framebuffer.js +68 -73
  58. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  59. package/dist/adapter/resources/webgl-query-set.js +1 -0
  60. package/dist/adapter/resources/webgl-query-set.js.map +1 -0
  61. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  62. package/dist/adapter/resources/webgl-render-pass.js +30 -17
  63. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  64. package/dist/adapter/resources/webgl-render-pipeline.d.ts +2 -4
  65. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  66. package/dist/adapter/resources/webgl-render-pipeline.js +33 -18
  67. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  68. package/dist/adapter/resources/webgl-sampler.js +1 -0
  69. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  70. package/dist/adapter/resources/webgl-shader.d.ts +1 -0
  71. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  72. package/dist/adapter/resources/webgl-shader.js +8 -5
  73. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  74. package/dist/adapter/resources/webgl-texture-view.js +1 -0
  75. package/dist/adapter/resources/webgl-texture-view.js.map +1 -0
  76. package/dist/adapter/resources/webgl-texture.d.ts +32 -20
  77. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-texture.js +158 -218
  79. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  80. package/dist/adapter/resources/webgl-transform-feedback.js +1 -0
  81. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
  82. package/dist/adapter/resources/webgl-vertex-array.js +1 -0
  83. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  84. package/dist/adapter/webgl-adapter.d.ts.map +1 -1
  85. package/dist/adapter/webgl-adapter.js +5 -10
  86. package/dist/adapter/webgl-adapter.js.map +1 -0
  87. package/dist/adapter/webgl-canvas-context.d.ts +1 -0
  88. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  89. package/dist/adapter/webgl-canvas-context.js +4 -0
  90. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  91. package/dist/adapter/webgl-device.d.ts +11 -14
  92. package/dist/adapter/webgl-device.d.ts.map +1 -1
  93. package/dist/adapter/webgl-device.js +60 -39
  94. package/dist/adapter/webgl-device.js.map +1 -0
  95. package/dist/context/debug/spector-types.js +2 -1
  96. package/dist/context/debug/spector-types.js.map +1 -0
  97. package/dist/context/debug/spector.d.ts +5 -5
  98. package/dist/context/debug/spector.d.ts.map +1 -1
  99. package/dist/context/debug/spector.js +7 -6
  100. package/dist/context/debug/spector.js.map +1 -0
  101. package/dist/context/debug/webgl-developer-tools.d.ts +2 -3
  102. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  103. package/dist/context/debug/webgl-developer-tools.js +7 -19
  104. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  105. package/dist/context/helpers/create-browser-context.d.ts +6 -22
  106. package/dist/context/helpers/create-browser-context.d.ts.map +1 -1
  107. package/dist/context/helpers/create-browser-context.js +41 -32
  108. package/dist/context/helpers/create-browser-context.js.map +1 -0
  109. package/dist/context/helpers/webgl-context-data.js +1 -0
  110. package/dist/context/helpers/webgl-context-data.js.map +1 -0
  111. package/dist/context/helpers/webgl-extensions.js +1 -0
  112. package/dist/context/helpers/webgl-extensions.js.map +1 -0
  113. package/dist/context/parameters/unified-parameter-api.js +1 -0
  114. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  115. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  116. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  117. package/dist/context/parameters/webgl-parameter-tables.js +3 -2
  118. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  119. package/dist/context/polyfills/polyfill-webgl1-extensions.js +1 -0
  120. package/dist/context/polyfills/polyfill-webgl1-extensions.js.map +1 -0
  121. package/dist/context/state-tracker/deep-array-equal.js +1 -0
  122. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  123. package/dist/context/state-tracker/webgl-state-tracker.js +1 -0
  124. package/dist/context/state-tracker/webgl-state-tracker.js.map +1 -0
  125. package/dist/context/state-tracker/with-parameters.js +1 -0
  126. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  127. package/dist/deprecated/accessor.d.ts.map +1 -0
  128. package/dist/{classic → deprecated}/accessor.js +37 -1
  129. package/dist/deprecated/accessor.js.map +1 -0
  130. package/dist/dist.dev.js +2217 -2366
  131. package/dist/dist.min.js +2 -2
  132. package/dist/index.cjs +2098 -2240
  133. package/dist/index.cjs.map +4 -4
  134. package/dist/index.d.ts +2 -3
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +3 -4
  137. package/dist/index.js.map +1 -0
  138. package/dist/types.js +1 -0
  139. package/dist/types.js.map +1 -0
  140. package/dist/utils/fill-array.d.ts +4 -4
  141. package/dist/utils/fill-array.d.ts.map +1 -1
  142. package/dist/utils/fill-array.js +1 -0
  143. package/dist/utils/fill-array.js.map +1 -0
  144. package/dist/utils/load-script.js +1 -0
  145. package/dist/utils/load-script.js.map +1 -0
  146. package/dist/utils/split-uniforms-and-bindings.d.ts +1 -1
  147. package/dist/utils/split-uniforms-and-bindings.d.ts.map +1 -1
  148. package/dist/utils/split-uniforms-and-bindings.js +1 -0
  149. package/dist/utils/split-uniforms-and-bindings.js.map +1 -0
  150. package/dist/utils/uid.js +1 -0
  151. package/dist/utils/uid.js.map +1 -0
  152. package/package.json +5 -5
  153. package/src/adapter/converters/device-parameters.ts +3 -3
  154. package/src/adapter/converters/sampler-parameters.ts +6 -4
  155. package/src/adapter/converters/webgl-texture-table.ts +404 -0
  156. package/src/adapter/device-helpers/webgl-device-features.ts +5 -2
  157. package/src/{classic → adapter/helpers}/format-utils.ts +6 -0
  158. package/src/adapter/helpers/get-shader-layout.ts +7 -4
  159. package/src/adapter/helpers/webgl-texture-utils.ts +400 -57
  160. package/src/adapter/resources/webgl-command-buffer.ts +125 -41
  161. package/src/adapter/resources/webgl-command-encoder.ts +6 -0
  162. package/src/adapter/resources/webgl-external-texture.ts +14 -0
  163. package/src/adapter/resources/webgl-framebuffer.ts +77 -83
  164. package/src/adapter/resources/webgl-render-pass.ts +52 -41
  165. package/src/adapter/resources/webgl-render-pipeline.ts +44 -21
  166. package/src/adapter/resources/webgl-shader.ts +8 -6
  167. package/src/adapter/resources/webgl-texture.ts +183 -250
  168. package/src/adapter/webgl-adapter.ts +4 -12
  169. package/src/adapter/webgl-canvas-context.ts +4 -0
  170. package/src/adapter/webgl-device.ts +100 -72
  171. package/src/context/debug/spector-types.ts +1 -1
  172. package/src/context/debug/spector.ts +11 -11
  173. package/src/context/debug/webgl-developer-tools.ts +8 -31
  174. package/src/context/helpers/create-browser-context.ts +53 -63
  175. package/src/context/parameters/webgl-parameter-tables.ts +2 -2
  176. package/src/{classic → deprecated}/accessor.ts +44 -3
  177. package/src/index.ts +2 -5
  178. package/src/utils/fill-array.ts +4 -4
  179. package/src/utils/split-uniforms-and-bindings.ts +3 -3
  180. package/dist/adapter/converters/texture-formats.d.ts +0 -83
  181. package/dist/adapter/converters/texture-formats.d.ts.map +0 -1
  182. package/dist/adapter/converters/texture-formats.js +0 -511
  183. package/dist/classic/accessor.d.ts.map +0 -1
  184. package/dist/classic/clear.d.ts +0 -22
  185. package/dist/classic/clear.d.ts.map +0 -1
  186. package/dist/classic/clear.js +0 -86
  187. package/dist/classic/copy-and-blit.d.ts +0 -64
  188. package/dist/classic/copy-and-blit.d.ts.map +0 -1
  189. package/dist/classic/copy-and-blit.js +0 -194
  190. package/dist/classic/format-utils.d.ts.map +0 -1
  191. package/dist/classic/typed-array-utils.d.ts.map +0 -1
  192. package/src/adapter/converters/texture-formats.ts +0 -657
  193. package/src/classic/clear.ts +0 -115
  194. package/src/classic/copy-and-blit.ts +0 -323
  195. /package/dist/{classic → adapter/helpers}/format-utils.d.ts +0 -0
  196. /package/dist/{classic → adapter/helpers}/typed-array-utils.d.ts +0 -0
  197. /package/dist/{classic → deprecated}/accessor.d.ts +0 -0
  198. /package/src/{classic → adapter/helpers}/typed-array-utils.ts +0 -0
@@ -1,64 +1,33 @@
1
1
  // luma.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- // import {decodeTextureFormat} from '@luma.gl/core';
5
- // import {Buffer, Texture, log} from '@luma.gl/core';
6
4
  import { Texture, log } from '@luma.gl/core';
7
5
  import { GL } from '@luma.gl/constants';
8
- // import {GLPixelDataType} from '@luma.gl/constants';
9
- import { withGLParameters } from "../../context/state-tracker/with-parameters.js";
10
- // getTextureFormatBytesPerPixel
11
- import { getTextureFormatWebGL } from "../converters/texture-formats.js";
6
+ import { getTextureFormatWebGL } from "../converters/webgl-texture-table.js";
12
7
  import { convertSamplerParametersToWebGL } from "../converters/sampler-parameters.js";
13
- // import {WEBGLBuffer} from './webgl-buffer';
14
8
  import { WEBGLSampler } from "./webgl-sampler.js";
15
9
  import { WEBGLTextureView } from "./webgl-texture-view.js";
16
- // import type {WebGLSetTextureOptions, WebGLCopyTextureOptions} from '../helpers/webgl-texture-utils';
17
10
  import { initializeTextureStorage,
18
11
  // clearMipLevel,
19
- copyCPUImageToMipLevel, copyCPUDataToMipLevel,
12
+ copyExternalImageToMipLevel, copyCPUDataToMipLevel,
20
13
  // copyGPUBufferToMipLevel,
21
14
  getWebGLTextureTarget } from "../helpers/webgl-texture-utils.js";
22
- // PORTABLE HELPERS (Move to methods on Texture?)
23
- /**
24
- * Normalize TextureData to an array of TextureLevelData / ExternalImages
25
- * @param data
26
- * @param options
27
- * @returns array of TextureLevelData / ExternalImages
28
- */
29
- function normalizeTextureData(data, options) {
30
- let lodArray;
31
- if (ArrayBuffer.isView(data)) {
32
- lodArray = [
33
- {
34
- // ts-expect-error does data really need to be Uint8ClampedArray?
35
- data,
36
- width: options.width,
37
- height: options.height
38
- // depth: options.depth
39
- }
40
- ];
41
- }
42
- else if (!Array.isArray(data)) {
43
- lodArray = [data];
44
- }
45
- else {
46
- lodArray = data;
47
- }
48
- return lodArray;
49
- }
50
15
  /**
51
16
  * WebGL... the texture API from hell... hopefully made simpler
52
17
  */
53
18
  export class WEBGLTexture extends Texture {
54
- MAX_ATTRIBUTES;
19
+ // readonly MAX_ATTRIBUTES: number;
55
20
  device;
56
21
  gl;
57
22
  handle;
58
23
  sampler = undefined; // TODO - currently unused in WebGL. Create dummy sampler?
59
24
  view = undefined; // TODO - currently unused in WebGL. Create dummy view?
60
- mipmaps = false;
25
+ mipmaps;
26
+ // Texture type
27
+ /** Whether the internal format is compressed */
28
+ compressed;
61
29
  /**
30
+ * The WebGL target corresponding to the texture type
62
31
  * @note `target` cannot be modified by bind:
63
32
  * textures are special because when you first bind them to a target,
64
33
  * When you first bind a texture as a GL_TEXTURE_2D, you are saying that this texture is a 2D texture.
@@ -67,142 +36,84 @@ export class WEBGLTexture extends Texture {
67
36
  * attempting to bind it as GL_TEXTURE_3D will give rise to a run-time error
68
37
  */
69
38
  glTarget;
70
- // Texture type
71
39
  /** The WebGL format - essentially channel structure */
72
40
  glFormat;
73
41
  /** The WebGL data format - the type of each channel */
74
42
  glType;
75
43
  /** The WebGL constant corresponding to the WebGPU style constant in format */
76
44
  glInternalFormat;
77
- /** Whether the internal format is compressed */
78
- compressed;
79
- // data;
80
- // inherited props
81
- // dimension: ...
82
- // format: GLTextureTarget;
83
- // width: number = undefined;
84
- // height: number = undefined;
85
- // depth: number = undefined;
86
45
  // state
87
- /** Texture binding slot */
46
+ /** Texture binding slot - TODO - move to texture view? */
88
47
  textureUnit = 0;
89
- /** For automatically updating video */
90
- _video = null;
91
48
  constructor(device, props) {
92
- // Note: Clear out `props.data` so that we don't hold a reference to any big memory chunks
93
- super(device, { ...Texture.defaultProps, ...props, data: undefined });
49
+ super(device, props);
50
+ // Texture base class strips out the data prop, so we need to add it back in
51
+ const propsWithData = { ...this.props };
52
+ propsWithData.data = props.data;
94
53
  this.device = device;
95
54
  this.gl = this.device.gl;
96
55
  // Note: In WebGL the texture target defines the type of texture on first bind.
97
56
  this.glTarget = getWebGLTextureTarget(this.props.dimension);
98
57
  // The target format of this texture
99
- const format = getTextureFormatWebGL(this.props.format);
100
- this.glInternalFormat = format.internalFormat;
101
- this.glFormat = format.format;
102
- this.glType = format.type;
103
- this.compressed = format.compressed;
104
- if (typeof HTMLVideoElement !== 'undefined' &&
105
- props.data instanceof HTMLVideoElement &&
106
- // @ts-expect-error
107
- props.data.readyState < HTMLVideoElement.HAVE_METADATA) {
108
- const video = props.data;
109
- this._video = null; // Declare member before the object is sealed
110
- video.addEventListener('loadeddata', () => this.initialize(props));
111
- }
112
- // We removed data, we need to add it again.
113
- // @ts-expect-error
114
- this.initialize({ ...this.props, data: props.data });
58
+ const formatInfo = getTextureFormatWebGL(this.props.format);
59
+ this.glInternalFormat = formatInfo.internalFormat;
60
+ this.glFormat = formatInfo.format;
61
+ this.glType = formatInfo.type;
62
+ this.compressed = formatInfo.compressed;
63
+ this.mipmaps = Boolean(this.props.mipmaps);
64
+ this._initialize(propsWithData);
115
65
  Object.seal(this);
116
66
  }
117
- /**
118
- * Initialize texture with supplied props
119
- */
67
+ /** Initialize texture with supplied props */
120
68
  // eslint-disable-next-line max-statements
121
- initialize(props = {}) {
69
+ _initialize(propsWithData) {
122
70
  this.handle = this.props.handle || this.gl.createTexture();
123
- this.device.setSpectorMetadata(this.handle, { ...this.props, data: typeof this.props.data });
124
- const data = props.data;
125
- // const {parameters = {} as Record<GL, any>} = props;
126
- let { width, height } = props;
71
+ this.device.setSpectorMetadata(this.handle, { ...this.props, data: propsWithData.data });
72
+ let { width, height } = propsWithData;
127
73
  if (!width || !height) {
128
- const textureSize = this.getTextureDataSize(data);
74
+ const textureSize = Texture.getTextureDataSize(propsWithData.data);
129
75
  width = textureSize?.width || 1;
130
76
  height = textureSize?.height || 1;
131
77
  }
132
78
  // Store opts for accessors
133
79
  this.width = width;
134
80
  this.height = height;
135
- this.depth = props.depth;
81
+ this.depth = propsWithData.depth;
136
82
  // Set texture sampler parameters
137
- this.setSampler(props.sampler);
138
- // @ts-ignore
83
+ this.setSampler(propsWithData.sampler);
84
+ // @ts-ignore TODO - fix types
139
85
  this.view = new WEBGLTextureView(this.device, { ...this.props, texture: this });
140
86
  this.bind();
141
- if (!this.props.data) {
142
- initializeTextureStorage(this.gl, this.mipLevels, this);
143
- }
144
- if (props.data) {
87
+ initializeTextureStorage(this.gl, this.mipLevels, this);
88
+ if (propsWithData.data) {
145
89
  // prettier-ignore
146
- switch (props.dimension) {
90
+ switch (propsWithData.dimension) {
147
91
  case '1d':
148
- this.setTexture1DData(props.data);
92
+ this.setTexture1DData(propsWithData.data);
149
93
  break;
150
94
  case '2d':
151
- this.setTexture2DData(props.data);
95
+ this.setTexture2DData(propsWithData.data);
152
96
  break;
153
97
  case '3d':
154
- this.setTexture3DData(props.data);
98
+ this.setTexture3DData(propsWithData.data);
155
99
  break;
156
100
  case 'cube':
157
- this.setTextureCubeData(props.data);
101
+ this.setTextureCubeData(propsWithData.data);
158
102
  break;
159
103
  case '2d-array':
160
- this.setTextureArrayData(props.data);
104
+ this.setTextureArrayData(propsWithData.data);
161
105
  break;
162
106
  case 'cube-array':
163
- this.setTextureCubeArrayData(props.data);
107
+ this.setTextureCubeArrayData(propsWithData.data);
164
108
  break;
165
109
  // @ts-expect-error
166
- default: throw new Error(props.dimension);
110
+ default: throw new Error(propsWithData.dimension);
167
111
  }
168
112
  }
169
- this.mipmaps = Boolean(props.mipmaps);
170
113
  if (this.mipmaps) {
171
114
  this.generateMipmap();
172
115
  }
173
- // if (isVideo) {
174
- // this._video = {
175
- // video: data,
176
- // // TODO - should we be using the sampler parameters here?
177
- // parameters: {},
178
- // // @ts-expect-error HTMLVideoElement.HAVE_CURRENT_DATA is not declared
179
- // lastTime: data.readyState >= HTMLVideoElement.HAVE_CURRENT_DATA ? data.currentTime : -1
180
- // };
181
- // }
182
- }
183
- /*
184
- initializeCube(props?: TextureProps): void {
185
- const {mipmaps = true} = props; // , parameters = {} as Record<GL, any>} = props;
186
-
187
- // Store props for accessors
188
- // this.props = props;
189
-
190
- // @ts-expect-error
191
- this.setCubeMapData(props).then(() => {
192
- // TODO - should genMipmap() be called on the cubemap or on the faces?
193
- // TODO - without generateMipmap() cube textures do not work at all!!! Why?
194
- if (mipmaps) {
195
- this.generateMipmap(props);
196
- }
197
-
198
- this.setSampler(props.sampler);
199
-
200
- // v8 compatibility?
201
- // const {parameters = {} as Record<GL, any>} = props;
202
- // this._setSamplerParameters(parameters);
203
- });
204
116
  }
205
- */
206
117
  destroy() {
207
118
  if (this.handle) {
208
119
  this.gl.deleteTexture(this.handle);
@@ -212,9 +123,6 @@ export class WEBGLTexture extends Texture {
212
123
  this.destroyed = true;
213
124
  }
214
125
  }
215
- toString() {
216
- return `Texture(${this.id},${this.width}x${this.height})`;
217
- }
218
126
  createView(props) {
219
127
  return new WEBGLTextureView(this.device, { ...props, texture: this });
220
128
  }
@@ -231,45 +139,65 @@ export class WEBGLTexture extends Texture {
231
139
  const parameters = convertSamplerParametersToWebGL(samplerProps);
232
140
  this._setSamplerParameters(parameters);
233
141
  }
234
- /** Update external texture (video frame or canvas) */
235
- update() {
236
- log.warn('Texture.update() not implemented');
237
- // if (this._video) {
238
- // const {video, parameters, lastTime} = this._video;
239
- // // @ts-expect-error
240
- // if (lastTime === video.currentTime || video.readyState < HTMLVideoElement.HAVE_CURRENT_DATA) {
241
- // return;
242
- // }
243
- // this.setSubImageData({
244
- // data: video,
245
- // parameters
246
- // });
247
- // if (this.mipmaps) {
248
- // this.generateMipmap();
249
- // }
250
- // this._video.lastTime = video.currentTime;
251
- // }
252
- }
253
142
  // Call to regenerate mipmaps after modifying texture(s)
254
- generateMipmap(params = {}) {
255
- if (!this.props.data) {
256
- return;
143
+ generateMipmap(options) {
144
+ const isFilterableAndRenderable = this.device.isTextureFormatRenderable(this.props.format) &&
145
+ this.device.isTextureFormatFilterable(this.props.format);
146
+ if (!isFilterableAndRenderable) {
147
+ log.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)();
148
+ if (!options?.force) {
149
+ return;
150
+ }
257
151
  }
258
- this.mipmaps = true;
259
- this.gl.bindTexture(this.glTarget, this.handle);
260
- withGLParameters(this.gl, params, () => {
152
+ try {
153
+ this.gl.bindTexture(this.glTarget, this.handle);
261
154
  this.gl.generateMipmap(this.glTarget);
262
- });
263
- this.gl.bindTexture(this.glTarget, null);
155
+ }
156
+ catch (error) {
157
+ log.warn(`Error generating mipmap for ${this}: ${error.message}`)();
158
+ }
159
+ finally {
160
+ this.gl.bindTexture(this.glTarget, null);
161
+ }
264
162
  }
265
163
  // Image Data Setters
164
+ copyExternalImage(options) {
165
+ const size = Texture.getExternalImageSize(options.image);
166
+ const opts = { ...Texture.defaultCopyExternalImageOptions, ...size, ...options };
167
+ const { image, depth, mipLevel, x, y, z, flipY } = opts;
168
+ let { width, height } = opts;
169
+ const { dimension, glTarget, glFormat, glInternalFormat, glType } = this;
170
+ // WebGL will error if we try to copy outside the bounds of the texture
171
+ width = Math.min(width, this.width - x);
172
+ height = Math.min(height, this.height - y);
173
+ if (options.sourceX || options.sourceY) {
174
+ // requires copyTexSubImage2D from a framebuffer'
175
+ throw new Error('WebGL does not support sourceX/sourceY)');
176
+ }
177
+ copyExternalImageToMipLevel(this.device.gl, this.handle, image, {
178
+ dimension,
179
+ mipLevel,
180
+ x,
181
+ y,
182
+ z,
183
+ width,
184
+ height,
185
+ depth,
186
+ glFormat,
187
+ glInternalFormat,
188
+ glType,
189
+ glTarget,
190
+ flipY
191
+ });
192
+ return { width: opts.width, height: opts.height };
193
+ }
266
194
  setTexture1DData(data) {
267
195
  throw new Error('setTexture1DData not supported in WebGL.');
268
196
  }
269
197
  /** Set a simple texture */
270
198
  setTexture2DData(lodData, depth = 0) {
271
199
  this.bind();
272
- const lodArray = normalizeTextureData(lodData, this);
200
+ const lodArray = Texture.normalizeTextureData(lodData, this);
273
201
  // If the user provides multiple LODs, then automatic mipmap
274
202
  // generation generateMipmap() should be disabled to avoid overwriting them.
275
203
  if (lodArray.length > 1 && this.props.mipmaps !== false) {
@@ -336,6 +264,11 @@ export class WEBGLTexture extends Texture {
336
264
  const faceDepth = Texture.CubeFaces.indexOf(face);
337
265
  this.setTexture2DData(lodData, faceDepth);
338
266
  }
267
+ // DEPRECATED METHODS
268
+ /** Update external texture (video frame or canvas) @deprecated Use ExternalTexture */
269
+ update() {
270
+ throw new Error('Texture.update() not implemented. Use ExternalTexture');
271
+ }
339
272
  // INTERNAL METHODS
340
273
  /** @todo update this method to accept LODs */
341
274
  setImageDataForFace(options) {
@@ -374,7 +307,7 @@ export class WEBGLTexture extends Texture {
374
307
  * Sets sampler parameters on texture
375
308
  */
376
309
  _setSamplerParameters(parameters) {
377
- log.log(1, 'texture sampler parameters', parameters)();
310
+ log.log(1, `${this.id} sampler parameters`, this.device.getGLKeys(parameters))();
378
311
  this.gl.bindTexture(this.glTarget, this.handle);
379
312
  for (const [pname, pvalue] of Object.entries(parameters)) {
380
313
  const param = Number(pname);
@@ -406,81 +339,32 @@ export class WEBGLTexture extends Texture {
406
339
  }
407
340
  this.gl.bindTexture(this.glTarget, null);
408
341
  }
409
- // CLASSIC
410
- /*
411
- setCubeMapData(options: {
412
- width: number;
413
- height: number;
414
- data: Record<GL, Texture2DData> | Record<TextureCubeFace, Texture2DData>;
415
- format?: any;
416
- type?: any;
417
- /** @deprecated Use .data *
418
- pixels: any;
419
- }): void {
420
- const {gl} = this;
421
-
422
- const {width, height, pixels, data, format = GL.RGBA, type = GL.UNSIGNED_BYTE} = options;
423
-
424
- // pixel data (imageDataMap) is an Object from Face to Image or Promise.
425
- // For example:
426
- // {
427
- // GL.TEXTURE_CUBE_MAP_POSITIVE_X : Image-or-Promise,
428
- // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : Image-or-Promise,
429
- // ... }
430
- // To provide multiple level-of-details (LODs) this can be Face to Array
431
- // of Image or Promise, like this
432
- // {
433
- // GL.TEXTURE_CUBE_MAP_POSITIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],
434
- // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],
435
- // ... }
436
-
437
- const imageDataMap = this._getImageDataMap(pixels || data);
438
-
439
- const resolvedFaces = WEBGLTexture.FACES.map(face => {
440
- const facePixels = imageDataMap[face];
441
- return Array.isArray(facePixels) ? facePixels : [facePixels];
442
- });
443
- this.bind();
444
-
445
- WEBGLTexture.FACES.forEach((face, index) => {
446
- if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {
447
- // If the user provides multiple LODs, then automatic mipmap
448
- // generation generateMipmap() should be disabled to avoid overwritting them.
449
- log.warn(`${this.id} has mipmap and multiple LODs.`)();
450
- }
451
- resolvedFaces[index].forEach((image, lodLevel) => {
452
- // TODO: adjust width & height for LOD!
453
- if (width && height) {
454
- gl.texImage2D(face, lodLevel, format, width, height, 0 /* border*, format, type, image);
455
- } else {
456
- gl.texImage2D(face, lodLevel, format, format, type, image);
457
- }
458
- });
459
- });
460
-
461
- this.unbind();
462
- }
463
- */
464
342
  // INTERNAL SETTERS
465
343
  /**
466
344
  * Copy a region of data from a CPU memory buffer into this texture.
467
345
  * @todo - GLUnpackParameters parameters
468
346
  */
469
- _setMipLevel(depth, level, textureData, glTarget = this.glTarget) {
347
+ _setMipLevel(depth, mipLevel, textureData, glTarget = this.glTarget) {
470
348
  // if (!textureData) {
471
349
  // clearMipLevel(this.device.gl, {...this, depth, level});
472
350
  // return;
473
351
  // }
474
352
  if (Texture.isExternalImage(textureData)) {
475
- copyCPUImageToMipLevel(this.device.gl, textureData, { ...this, depth, level, glTarget });
353
+ copyExternalImageToMipLevel(this.device.gl, this.handle, textureData, {
354
+ ...this,
355
+ depth,
356
+ mipLevel,
357
+ glTarget,
358
+ flipY: this.props.flipY
359
+ });
476
360
  return;
477
361
  }
478
362
  // @ts-expect-error
479
- if (this.isTextureLevelData(textureData)) {
363
+ if (Texture.isTextureLevelData(textureData)) {
480
364
  copyCPUDataToMipLevel(this.device.gl, textureData.data, {
481
365
  ...this,
482
366
  depth,
483
- level,
367
+ mipLevel,
484
368
  glTarget
485
369
  });
486
370
  return;
@@ -510,3 +394,59 @@ export class WEBGLTexture extends Texture {
510
394
  return textureUnit;
511
395
  }
512
396
  }
397
+ // TODO - Remove when texture refactor is complete
398
+ /*
399
+ setCubeMapData(options: {
400
+ width: number;
401
+ height: number;
402
+ data: Record<GL, Texture2DData> | Record<TextureCubeFace, Texture2DData>;
403
+ format?: any;
404
+ type?: any;
405
+ /** @deprecated Use .data *
406
+ pixels: any;
407
+ }): void {
408
+ const {gl} = this;
409
+
410
+ const {width, height, pixels, data, format = GL.RGBA, type = GL.UNSIGNED_BYTE} = options;
411
+
412
+ // pixel data (imageDataMap) is an Object from Face to Image or Promise.
413
+ // For example:
414
+ // {
415
+ // GL.TEXTURE_CUBE_MAP_POSITIVE_X : Image-or-Promise,
416
+ // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : Image-or-Promise,
417
+ // ... }
418
+ // To provide multiple level-of-details (LODs) this can be Face to Array
419
+ // of Image or Promise, like this
420
+ // {
421
+ // GL.TEXTURE_CUBE_MAP_POSITIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],
422
+ // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],
423
+ // ... }
424
+
425
+ const imageDataMap = this._getImageDataMap(pixels || data);
426
+
427
+ const resolvedFaces = WEBGLTexture.FACES.map(face => {
428
+ const facePixels = imageDataMap[face];
429
+ return Array.isArray(facePixels) ? facePixels : [facePixels];
430
+ });
431
+ this.bind();
432
+
433
+ WEBGLTexture.FACES.forEach((face, index) => {
434
+ if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {
435
+ // If the user provides multiple LODs, then automatic mipmap
436
+ // generation generateMipmap() should be disabled to avoid overwritting them.
437
+ log.warn(`${this.id} has mipmap and multiple LODs.`)();
438
+ }
439
+ resolvedFaces[index].forEach((image, lodLevel) => {
440
+ // TODO: adjust width & height for LOD!
441
+ if (width && height) {
442
+ gl.texImage2D(face, lodLevel, format, width, height, 0 /* border*, format, type, image);
443
+ } else {
444
+ gl.texImage2D(face, lodLevel, format, format, type, image);
445
+ }
446
+ });
447
+ });
448
+
449
+ this.unbind();
450
+ }
451
+ */
452
+ //# sourceMappingURL=webgl-texture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"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"}
@@ -160,3 +160,4 @@ function isIndex(value) {
160
160
  }
161
161
  return /^\d+$/.test(value);
162
162
  }
163
+ //# sourceMappingURL=webgl-transform-feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-transform-feedback.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-transform-feedback.ts"],"names":[],"mappings":"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"}
@@ -229,3 +229,4 @@ function compareConstantArrayValues(v1, v2) {
229
229
  }
230
230
  return true;
231
231
  }
232
+ //# sourceMappingURL=webgl-vertex-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-vertex-array.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-vertex-array.ts"],"names":[],"mappings":"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"}
@@ -1 +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,EAAqB,MAAM,eAAe,CAAC;AAC/E,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;CA4C5D;AAWD,eAAO,MAAM,aAAa,cAAqB,CAAC"}
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"}
@@ -1,7 +1,7 @@
1
1
  // luma.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { Adapter, Device, CanvasContext, log } from '@luma.gl/core';
4
+ import { Adapter, Device, log } from '@luma.gl/core';
5
5
  import { WebGLDevice } from "./webgl-device.js";
6
6
  import { enforceWebGL2 } from "../context/polyfills/polyfill-webgl1-extensions.js";
7
7
  import { loadSpectorJS, DEFAULT_SPECTOR_PROPS } from "../context/debug/spector.js";
@@ -43,23 +43,18 @@ export class WebGLAdapter extends Adapter {
43
43
  if (!isWebGL(gl)) {
44
44
  throw new Error('Invalid WebGL2RenderingContext');
45
45
  }
46
- return new WebGLDevice({ gl: gl });
46
+ return new WebGLDevice({ _handle: gl });
47
47
  }
48
48
  async create(props = {}) {
49
49
  log.groupCollapsed(LOG_LEVEL, 'WebGLDevice created')();
50
50
  const promises = [];
51
51
  // Load webgl and spector debug scripts from CDN if requested
52
- if (props.debug) {
52
+ if (props.debugWebGL || props.debug) {
53
53
  promises.push(loadWebGLDeveloperTools());
54
54
  }
55
- if (props.debugWithSpectorJS) {
55
+ if (props.debugSpectorJS) {
56
56
  promises.push(loadSpectorJS(props));
57
57
  }
58
- // Wait for page to load: if canvas is a string we need to query the DOM for the canvas element.
59
- // We only wait when props.canvas is string to avoids setting the global page onload callback unless necessary.
60
- if (typeof props.canvas === 'string') {
61
- promises.push(CanvasContext.pageLoaded);
62
- }
63
58
  // Wait for all the loads to settle before creating the context.
64
59
  // The Device.create() functions are async, so in contrast to the constructor, we can `await` here.
65
60
  const results = await Promise.allSettled(promises);
@@ -68,7 +63,6 @@ export class WebGLAdapter extends Adapter {
68
63
  log.error(`Failed to initialize debug libraries ${result.reason}`)();
69
64
  }
70
65
  }
71
- log.probe(LOG_LEVEL + 1, 'DOM is loaded')();
72
66
  const device = new WebGLDevice(props);
73
67
  // Log some debug info about the newly created context
74
68
  const message = `\
@@ -89,3 +83,4 @@ function isWebGL(gl) {
89
83
  return Boolean(gl && Number.isFinite(gl._version));
90
84
  }
91
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":"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"}