@luma.gl/webgpu 9.0.0-alpha.5 → 9.0.0-alpha.50

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 (121) hide show
  1. package/LICENSE +3 -1
  2. package/dist/adapter/helpers/accessor-to-format.js.map +1 -1
  3. package/dist/adapter/helpers/convert-texture-format.d.ts +2 -2
  4. package/dist/adapter/helpers/convert-texture-format.d.ts.map +1 -1
  5. package/dist/adapter/helpers/convert-texture-format.js +0 -1
  6. package/dist/adapter/helpers/convert-texture-format.js.map +1 -1
  7. package/dist/adapter/helpers/generate-mipmaps.d.ts +1 -1
  8. package/dist/adapter/helpers/generate-mipmaps.js +20 -15
  9. package/dist/adapter/helpers/generate-mipmaps.js.map +1 -1
  10. package/dist/adapter/helpers/get-bind-group.d.ts +4 -4
  11. package/dist/adapter/helpers/get-bind-group.d.ts.map +1 -1
  12. package/dist/adapter/helpers/get-bind-group.js +8 -17
  13. package/dist/adapter/helpers/get-bind-group.js.map +1 -1
  14. package/dist/adapter/helpers/get-vertex-buffer-layout.d.ts +5 -5
  15. package/dist/adapter/helpers/get-vertex-buffer-layout.d.ts.map +1 -1
  16. package/dist/adapter/helpers/get-vertex-buffer-layout.js +32 -40
  17. package/dist/adapter/helpers/get-vertex-buffer-layout.js.map +1 -1
  18. package/dist/adapter/helpers/webgpu-parameters.d.ts +2 -2
  19. package/dist/adapter/helpers/webgpu-parameters.d.ts.map +1 -1
  20. package/dist/adapter/helpers/webgpu-parameters.js +51 -48
  21. package/dist/adapter/helpers/webgpu-parameters.js.map +1 -1
  22. package/dist/adapter/resources/webgpu-buffer.d.ts +5 -6
  23. package/dist/adapter/resources/webgpu-buffer.d.ts.map +1 -1
  24. package/dist/adapter/resources/webgpu-buffer.js +19 -33
  25. package/dist/adapter/resources/webgpu-buffer.js.map +1 -1
  26. package/dist/adapter/resources/webgpu-command-encoder.d.ts +6 -15
  27. package/dist/adapter/resources/webgpu-command-encoder.d.ts.map +1 -1
  28. package/dist/adapter/resources/webgpu-command-encoder.js +11 -29
  29. package/dist/adapter/resources/webgpu-command-encoder.js.map +1 -1
  30. package/dist/adapter/resources/webgpu-compute-pass.d.ts +6 -6
  31. package/dist/adapter/resources/webgpu-compute-pass.d.ts.map +1 -1
  32. package/dist/adapter/resources/webgpu-compute-pass.js +14 -27
  33. package/dist/adapter/resources/webgpu-compute-pass.js.map +1 -1
  34. package/dist/adapter/resources/webgpu-compute-pipeline.d.ts +4 -4
  35. package/dist/adapter/resources/webgpu-compute-pipeline.d.ts.map +1 -1
  36. package/dist/adapter/resources/webgpu-compute-pipeline.js +6 -11
  37. package/dist/adapter/resources/webgpu-compute-pipeline.js.map +1 -1
  38. package/dist/adapter/resources/webgpu-external-texture.d.ts +5 -5
  39. package/dist/adapter/resources/webgpu-external-texture.d.ts.map +1 -1
  40. package/dist/adapter/resources/webgpu-external-texture.js +6 -14
  41. package/dist/adapter/resources/webgpu-external-texture.js.map +1 -1
  42. package/dist/adapter/resources/webgpu-framebuffer.d.ts +4 -21
  43. package/dist/adapter/resources/webgpu-framebuffer.d.ts.map +1 -1
  44. package/dist/adapter/resources/webgpu-framebuffer.js +4 -105
  45. package/dist/adapter/resources/webgpu-framebuffer.js.map +1 -1
  46. package/dist/adapter/resources/webgpu-query.js.map +1 -1
  47. package/dist/adapter/resources/webgpu-render-pass.d.ts +12 -7
  48. package/dist/adapter/resources/webgpu-render-pass.d.ts.map +1 -1
  49. package/dist/adapter/resources/webgpu-render-pass.js +59 -36
  50. package/dist/adapter/resources/webgpu-render-pass.js.map +1 -1
  51. package/dist/adapter/resources/webgpu-render-pipeline.d.ts +14 -10
  52. package/dist/adapter/resources/webgpu-render-pipeline.d.ts.map +1 -1
  53. package/dist/adapter/resources/webgpu-render-pipeline.js +50 -67
  54. package/dist/adapter/resources/webgpu-render-pipeline.js.map +1 -1
  55. package/dist/adapter/resources/webgpu-sampler.d.ts +5 -5
  56. package/dist/adapter/resources/webgpu-sampler.d.ts.map +1 -1
  57. package/dist/adapter/resources/webgpu-sampler.js +11 -11
  58. package/dist/adapter/resources/webgpu-sampler.js.map +1 -1
  59. package/dist/adapter/resources/webgpu-shader.d.ts +7 -7
  60. package/dist/adapter/resources/webgpu-shader.d.ts.map +1 -1
  61. package/dist/adapter/resources/webgpu-shader.js +11 -25
  62. package/dist/adapter/resources/webgpu-shader.js.map +1 -1
  63. package/dist/adapter/resources/webgpu-texture.d.ts +15 -8
  64. package/dist/adapter/resources/webgpu-texture.d.ts.map +1 -1
  65. package/dist/adapter/resources/webgpu-texture.js +17 -27
  66. package/dist/adapter/resources/webgpu-texture.js.map +1 -1
  67. package/dist/adapter/resources/webgpu-vertex-array.d.ts +26 -0
  68. package/dist/adapter/resources/webgpu-vertex-array.d.ts.map +1 -0
  69. package/dist/adapter/resources/webgpu-vertex-array.js +39 -0
  70. package/dist/adapter/resources/webgpu-vertex-array.js.map +1 -0
  71. package/dist/adapter/webgpu-canvas-context.d.ts +16 -12
  72. package/dist/adapter/webgpu-canvas-context.d.ts.map +1 -1
  73. package/dist/adapter/webgpu-canvas-context.js +26 -47
  74. package/dist/adapter/webgpu-canvas-context.js.map +1 -1
  75. package/dist/adapter/webgpu-device.d.ts +39 -22
  76. package/dist/adapter/webgpu-device.d.ts.map +1 -1
  77. package/dist/adapter/webgpu-device.js +94 -95
  78. package/dist/adapter/webgpu-device.js.map +1 -1
  79. package/dist/adapter/webgpu-types.js.map +1 -1
  80. package/dist/dist.dev.js +2988 -0
  81. package/dist/glsl/glsllang.js +0 -1
  82. package/dist/glsl/glsllang.js.map +1 -1
  83. package/dist/index.cjs +1518 -0
  84. package/dist/index.d.ts +5 -7
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +5 -7
  87. package/dist/index.js.map +1 -1
  88. package/dist.min.js +20 -0
  89. package/package.json +18 -9
  90. package/src/adapter/helpers/accessor-to-format.ts +1 -2
  91. package/src/adapter/helpers/convert-texture-format.ts +1 -1
  92. package/src/adapter/helpers/generate-mipmaps.ts +2 -2
  93. package/src/adapter/helpers/get-bind-group.ts +22 -12
  94. package/src/adapter/helpers/get-vertex-buffer-layout.ts +55 -34
  95. package/src/adapter/helpers/webgpu-parameters.ts +56 -47
  96. package/src/adapter/resources/webgpu-buffer.ts +11 -12
  97. package/src/adapter/resources/webgpu-command-encoder.ts +62 -41
  98. package/src/adapter/resources/webgpu-compute-pass.ts +13 -13
  99. package/src/adapter/resources/webgpu-compute-pipeline.ts +6 -5
  100. package/src/adapter/resources/webgpu-external-texture.ts +5 -5
  101. package/src/adapter/resources/webgpu-framebuffer.ts +8 -109
  102. package/src/adapter/resources/webgpu-query.ts +3 -3
  103. package/src/adapter/resources/webgpu-render-pass.ts +74 -18
  104. package/src/adapter/resources/webgpu-render-pipeline.ts +64 -39
  105. package/src/adapter/resources/webgpu-sampler.ts +12 -5
  106. package/src/adapter/resources/webgpu-shader.ts +13 -10
  107. package/src/adapter/resources/webgpu-texture.ts +22 -8
  108. package/src/adapter/resources/webgpu-vertex-array.ts +74 -0
  109. package/src/adapter/webgpu-canvas-context.ts +52 -27
  110. package/src/adapter/webgpu-device.ts +158 -64
  111. package/src/index.ts +7 -9
  112. package/dist/bundle.d.ts +0 -2
  113. package/dist/bundle.d.ts.map +0 -1
  114. package/dist/bundle.js +0 -5
  115. package/dist/bundle.js.map +0 -1
  116. package/dist/init.d.ts +0 -2
  117. package/dist/init.d.ts.map +0 -1
  118. package/dist/init.js +0 -4
  119. package/dist/init.js.map +0 -1
  120. package/src/bundle.ts +0 -4
  121. package/src/init.ts +0 -4
@@ -1,4 +1,5 @@
1
- /// <reference types="@webgpu/types" />
1
+ // prettier-ignore
2
+ // / <reference types="@webgpu/types" />
2
3
 
3
4
  import type {
4
5
  DeviceProps,
@@ -9,6 +10,7 @@ import type {
9
10
  BufferProps,
10
11
  SamplerProps,
11
12
  ShaderProps,
13
+ Texture,
12
14
  TextureProps,
13
15
  TextureFormat,
14
16
  ExternalTextureProps,
@@ -16,32 +18,38 @@ import type {
16
18
  RenderPipelineProps,
17
19
  ComputePipelineProps,
18
20
  RenderPassProps,
19
- ComputePassProps
20
- } from '@luma.gl/api';
21
- import {Device, CanvasContext, log, cast} from '@luma.gl/api';
22
- import WebGPUBuffer from './resources/webgpu-buffer';
23
- import WebGPUTexture from './resources/webgpu-texture';
24
- import WebGPUExternalTexture from './resources/webgpu-external-texture';
25
- import WebGPUSampler from './resources/webgpu-sampler';
26
- import WebGPUShader from './resources/webgpu-shader';
27
- import WebGPURenderPipeline from './resources/webgpu-render-pipeline';
28
- import WebGPUFramebuffer from './resources/webgpu-framebuffer';
29
- import WebGPUComputePipeline from './resources/webgpu-compute-pipeline';
30
- import WebGPURenderPass from './resources/webgpu-render-pass';
31
- import WebGPUComputePass from './resources/webgpu-compute-pass';
32
-
33
- import WebGPUCanvasContext from './webgpu-canvas-context';
21
+ ComputePassProps,
22
+ // CommandEncoderProps,
23
+ VertexArrayProps,
24
+ TransformFeedback,
25
+ TransformFeedbackProps
26
+ } from '@luma.gl/core';
27
+ import {Device, CanvasContext, log, uid} from '@luma.gl/core';
28
+ import {WebGPUBuffer} from './resources/webgpu-buffer';
29
+ import {WebGPUTexture} from './resources/webgpu-texture';
30
+ import {WebGPUExternalTexture} from './resources/webgpu-external-texture';
31
+ import {WebGPUSampler} from './resources/webgpu-sampler';
32
+ import {WebGPUShader} from './resources/webgpu-shader';
33
+ import {WebGPURenderPipeline} from './resources/webgpu-render-pipeline';
34
+ import {WebGPUFramebuffer} from './resources/webgpu-framebuffer';
35
+ import {WebGPUComputePipeline} from './resources/webgpu-compute-pipeline';
36
+ import {WebGPURenderPass} from './resources/webgpu-render-pass';
37
+ import {WebGPUComputePass} from './resources/webgpu-compute-pass';
38
+ // import {WebGPUCommandEncoder} from './resources/webgpu-command-encoder';
39
+ import {WebGPUVertexArray} from './resources/webgpu-vertex-array';
40
+
41
+ import {WebGPUCanvasContext} from './webgpu-canvas-context';
34
42
  // import {loadGlslangModule} from '../glsl/glslang';
35
43
 
36
44
  /** WebGPU Device implementation */
37
- export default class WebGPUDevice extends Device {
45
+ export class WebGPUDevice extends Device {
38
46
  readonly handle: GPUDevice;
39
47
  readonly adapter: GPUAdapter;
40
- readonly lost: Promise<{reason: 'destroyed', message: string}>;
41
- canvasContext: WebGPUCanvasContext | undefined;
48
+ readonly lost: Promise<{reason: 'destroyed'; message: string}>;
49
+ canvasContext: WebGPUCanvasContext | null = null;
42
50
 
43
- commandEncoder: GPUCommandEncoder;
44
- renderPass: WebGPURenderPass;
51
+ commandEncoder: GPUCommandEncoder | null = null;
52
+ renderPass: WebGPURenderPass | null = null;
45
53
 
46
54
  private _info: DeviceInfo;
47
55
  private _isLost: boolean = false;
@@ -55,63 +63,74 @@ export default class WebGPUDevice extends Device {
55
63
 
56
64
  static async create(props: DeviceProps): Promise<WebGPUDevice> {
57
65
  if (!navigator.gpu) {
58
- throw new Error('WebGPU not available. Open in Chrome Canary and turn on chrome://flags/#enable-unsafe-webgpu');
66
+ throw new Error(
67
+ 'WebGPU not available. Open in Chrome Canary and turn on chrome://flags/#enable-unsafe-webgpu'
68
+ );
59
69
  }
60
70
  log.groupCollapsed(1, 'WebGPUDevice created')();
61
71
  const adapter = await navigator.gpu.requestAdapter({
62
- powerPreference: "high-performance"
72
+ powerPreference: 'high-performance'
63
73
  // forceSoftware: false
64
74
  });
65
- log.probe(1, "Adapter available")();
75
+ if (!adapter) {
76
+ throw new Error('Failed to request WebGPU adapter');
77
+ }
78
+
79
+ const adapterInfo = await adapter.requestAdapterInfo();
80
+ log.probe(1, 'Adapter available', adapterInfo)();
66
81
 
67
82
  const gpuDevice = await adapter.requestDevice({
68
- requiredFeatures: adapter.features as ReadonlySet<GPUFeatureName>,
83
+ requiredFeatures: adapter.features as ReadonlySet<GPUFeatureName>
69
84
  // TODO ensure we obtain best limits
70
85
  // requiredLimits: adapter.limits
71
86
  });
72
- log.probe(1, "GPUDevice available")();
87
+ log.probe(1, 'GPUDevice available')();
73
88
 
74
89
  if (typeof props.canvas === 'string') {
75
90
  await CanvasContext.pageLoaded;
76
- log.probe(1, "DOM is loaded")();
91
+ log.probe(1, 'DOM is loaded')();
77
92
  }
78
93
 
79
94
  const device = new WebGPUDevice(gpuDevice, adapter, props);
80
- log.probe(1, "Device created", device.info)();
95
+ log.probe(1, 'Device created', device.info)();
81
96
  log.table(1, device.info)();
82
97
  log.groupEnd(1)();
83
98
  return device;
84
99
  }
85
100
 
86
101
  constructor(device: GPUDevice, adapter: GPUAdapter, props: DeviceProps) {
87
- super(props);
102
+ super({...props, id: props.id || uid('webgpu-device')});
88
103
  this.handle = device;
89
104
  this.adapter = adapter;
90
105
 
91
106
  this._info = {
92
107
  type: 'webgpu',
93
- vendor: this.adapter.name,
108
+ vendor: this.adapter.__brand,
94
109
  renderer: '',
95
110
  version: '',
96
111
  gpu: 'unknown', // 'nvidia' | 'amd' | 'intel' | 'apple' | 'unknown',
97
- shadingLanguages: ['glsl', 'wgsl'],
98
- shadingLanguageVersions: {
99
- glsl: '450',
100
- wgsl: '100'
101
- },
112
+ shadingLanguage: 'wgsl',
113
+ shadingLanguageVersion: 100,
102
114
  vendorMasked: '',
103
115
  rendererMasked: ''
104
116
  };
105
117
 
106
- this.lost = this.handle.lost;
107
- this.lost.then(_ => {
118
+ // "Context" loss handling
119
+ this.lost = new Promise<{reason: 'destroyed'; message: string}>(async resolve => {
120
+ const lostInfo = await this.handle.lost;
108
121
  this._isLost = true;
122
+ resolve({reason: 'destroyed', message: lostInfo.message});
109
123
  });
110
124
 
111
125
  // Note: WebGPU devices can be created without a canvas, for compute shader purposes
112
- if (props.canvas) {
113
- this.canvasContext = new WebGPUCanvasContext(this, this.adapter, {canvas: props.canvas});
114
- }
126
+ // if (props.canvas) {
127
+ this.canvasContext = new WebGPUCanvasContext(this, this.adapter, {
128
+ canvas: props.canvas,
129
+ height: props.height,
130
+ width: props.width,
131
+ container: props.container
132
+ });
133
+ // }
115
134
 
116
135
  this.features = this._getFeatures();
117
136
  }
@@ -121,7 +140,7 @@ export default class WebGPUDevice extends Device {
121
140
  // const {glsl = true} = props;
122
141
  // this.glslang = glsl && await loadGlslangModule();
123
142
 
124
- destroy() {
143
+ destroy(): void {
125
144
  this.handle.destroy();
126
145
  }
127
146
 
@@ -141,20 +160,21 @@ export default class WebGPUDevice extends Device {
141
160
 
142
161
  /** @todo implement proper check? */
143
162
  isTextureFormatFilterable(format: TextureFormat): boolean {
144
- return this.isTextureFormatSupported(format);
163
+ return this.isTextureFormatSupported(format);
145
164
  }
146
165
 
147
166
  /** @todo implement proper check? */
148
167
  isTextureFormatRenderable(format: TextureFormat): boolean {
149
- return this.isTextureFormatSupported(format);
168
+ return this.isTextureFormatSupported(format);
150
169
  }
151
170
 
152
171
  get isLost(): boolean {
153
172
  return this._isLost;
154
173
  }
155
174
 
156
- _createBuffer(props: BufferProps): WebGPUBuffer {
157
- return new WebGPUBuffer(this, props);
175
+ createBuffer(props: BufferProps | ArrayBuffer | ArrayBufferView): WebGPUBuffer {
176
+ const newProps = this._getBufferProps(props);
177
+ return new WebGPUBuffer(this, newProps);
158
178
  }
159
179
 
160
180
  _createTexture(props: TextureProps): WebGPUTexture {
@@ -185,44 +205,62 @@ export default class WebGPUDevice extends Device {
185
205
  return new WebGPUComputePipeline(this, props);
186
206
  }
187
207
 
208
+ createVertexArray(props: VertexArrayProps): WebGPUVertexArray {
209
+ return new WebGPUVertexArray(this, props);
210
+ }
211
+
188
212
  // WebGPU specifics
189
213
 
190
- /**
214
+ /**
191
215
  * Allows a render pass to begin against a canvas context
192
216
  * @todo need to support a "Framebuffer" equivalent (aka preconfigured RenderPassDescriptors?).
193
217
  */
194
- beginRenderPass(props?: RenderPassProps): WebGPURenderPass {
218
+ beginRenderPass(props: RenderPassProps): WebGPURenderPass {
195
219
  this.commandEncoder = this.commandEncoder || this.handle.createCommandEncoder();
196
220
  return new WebGPURenderPass(this, props);
197
221
  }
198
222
 
199
- beginComputePass(props?: ComputePassProps): WebGPUComputePass {
223
+ beginComputePass(props: ComputePassProps): WebGPUComputePass {
200
224
  this.commandEncoder = this.commandEncoder || this.handle.createCommandEncoder();
201
225
  return new WebGPUComputePass(this, props);
202
226
  }
203
227
 
204
- createCanvasContext(props?: CanvasContextProps): WebGPUCanvasContext {
228
+ // createCommandEncoder(props: CommandEncoderProps): WebGPUCommandEncoder {
229
+ // return new WebGPUCommandEncoder(this, props);
230
+ // }
231
+
232
+ createTransformFeedback(props: TransformFeedbackProps): TransformFeedback {
233
+ throw new Error('Transform feedback not supported in WebGPU');
234
+ }
235
+
236
+ createCanvasContext(props: CanvasContextProps): WebGPUCanvasContext {
205
237
  return new WebGPUCanvasContext(this, this.adapter, props);
206
238
  }
207
239
 
208
- /**
240
+ /**
209
241
  * Gets default renderpass encoder.
210
- * Creates a new encoder against default canvasContext if not already created
242
+ * Creates a new encoder against default canvasContext if not already created
211
243
  * @note Called internally by Model.
244
+ * @deprecated Create explicit pass with device.beginRenderPass
212
245
  */
213
246
  getDefaultRenderPass(): WebGPURenderPass {
214
- this.renderPass = this.renderPass || this.beginRenderPass({
215
- framebuffer: this.canvasContext.getCurrentFramebuffer()
216
- });
217
- return this.renderPass;
247
+ // this.renderPass =
248
+ // this.renderPass ||
249
+ // this.beginRenderPass({
250
+ // framebuffer: this.canvasContext?.getCurrentFramebuffer()
251
+ // });
252
+ // return this.renderPass;
253
+ throw new Error('a');
218
254
  }
219
255
 
220
256
  submit(): void {
221
- this.renderPass.endPass();
222
- const commandBuffer = this.commandEncoder.finish();
223
- this.handle.queue.submit([commandBuffer]);
257
+ // this.renderPass?.end();
258
+ const commandBuffer = this.commandEncoder?.finish();
259
+ if (commandBuffer) {
260
+ this.handle.queue.submit([commandBuffer]);
261
+ }
224
262
  this.commandEncoder = null;
225
- this.renderPass = null;
263
+ // this.renderPass = null;
226
264
  }
227
265
 
228
266
  _getFeatures() {
@@ -253,24 +291,24 @@ export default class WebGPUDevice extends Device {
253
291
  features.add('index-uint32-webgl1');
254
292
  features.add('blend-minmax-webgl1');
255
293
  features.add('texture-blend-float-webgl1');
256
-
294
+
257
295
  // TEXTURES, RENDERBUFFERS
258
296
  features.add('texture-formats-srgb-webgl1');
259
-
297
+
260
298
  // TEXTURES
261
299
  features.add('texture-formats-depth-webgl1');
262
300
  features.add('texture-formats-float32-webgl1');
263
301
  features.add('texture-formats-float16-webgl1');
264
-
302
+
265
303
  features.add('texture-filter-linear-float32-webgl');
266
304
  features.add('texture-filter-linear-float16-webgl');
267
305
  features.add('texture-filter-anisotropic-webgl');
268
-
306
+
269
307
  // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS
270
308
  features.add('texture-renderable-rgba32float-webgl');
271
309
  features.add('texture-renderable-float32-webgl');
272
310
  features.add('texture-renderable-float16-webgl');
273
-
311
+
274
312
  // GLSL extensions
275
313
  features.add('glsl-frag-data');
276
314
  features.add('glsl-frag-depth');
@@ -279,4 +317,60 @@ export default class WebGPUDevice extends Device {
279
317
 
280
318
  return features;
281
319
  }
320
+
321
+ copyExternalImageToTexture(options: {
322
+ texture: Texture;
323
+ mipLevel?: number;
324
+ aspect?: 'all' | 'stencil-only' | 'depth-only';
325
+ colorSpace?: 'display-p3' | 'srgb';
326
+ premultipliedAlpha?: boolean;
327
+
328
+ source: ImageBitmap | HTMLVideoElement | HTMLCanvasElement | OffscreenCanvas;
329
+ sourceX?: number;
330
+ sourceY?: number;
331
+
332
+ width?: number;
333
+ height?: number;
334
+ depth?: number;
335
+ }): void {
336
+ const {
337
+ source,
338
+ sourceX = 0,
339
+ sourceY = 0,
340
+
341
+ texture,
342
+ mipLevel = 0,
343
+ aspect = 'all',
344
+ colorSpace = 'display-p3',
345
+ premultipliedAlpha = false,
346
+ // destinationX,
347
+ // destinationY,
348
+ // desitnationZ,
349
+
350
+ width = texture.width,
351
+ height = texture.height,
352
+ depth = 1
353
+ } = options;
354
+
355
+ const webGpuTexture = texture as WebGPUTexture;
356
+
357
+ this.handle?.queue.copyExternalImageToTexture(
358
+ // source: GPUImageCopyExternalImage
359
+ {
360
+ source,
361
+ origin: [sourceX, sourceY]
362
+ },
363
+ // destination: GPUImageCopyTextureTagged
364
+ {
365
+ texture: webGpuTexture.handle,
366
+ origin: [0, 0, 0], // [x, y, z],
367
+ mipLevel,
368
+ aspect,
369
+ colorSpace,
370
+ premultipliedAlpha
371
+ },
372
+ // copySize: GPUExtent3D
373
+ [width, height, depth]
374
+ );
375
+ }
282
376
  }
package/src/index.ts CHANGED
@@ -1,13 +1,11 @@
1
-
2
- // Initialize any global state
3
- import '@luma.gl/api';
4
- import './init'
1
+ // luma.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
5
3
 
6
4
  // WEBGPU ADAPTER
7
- export {default as WebGPUDevice} from './adapter/webgpu-device';
5
+ export {WebGPUDevice} from './adapter/webgpu-device';
8
6
 
9
7
  // WEBGPU CLASSES (typically not accessed directly)
10
- export {default as WebGPUBuffer} from './adapter/resources/webgpu-buffer';
11
- export {default as WebGPUTexture} from './adapter/resources/webgpu-texture';
12
- export {default as WebGPUSampler} from './adapter/resources/webgpu-sampler';
13
- export {default as WebGPUShader} from './adapter/resources/webgpu-shader';
8
+ export {WebGPUBuffer} from './adapter/resources/webgpu-buffer';
9
+ export {WebGPUTexture} from './adapter/resources/webgpu-texture';
10
+ export {WebGPUSampler} from './adapter/resources/webgpu-sampler';
11
+ export {WebGPUShader} from './adapter/resources/webgpu-shader';
package/dist/bundle.d.ts DELETED
@@ -1,2 +0,0 @@
1
- declare const moduleExports: any;
2
- //# sourceMappingURL=bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}
package/dist/bundle.js DELETED
@@ -1,5 +0,0 @@
1
- const moduleExports = require('./index');
2
-
3
- globalThis.luma = globalThis.luma || {};
4
- module.exports = Object.assign(globalThis.luma, moduleExports);
5
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/bundle.ts"],"names":["moduleExports","require","globalThis","luma","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,IAAX,GAAkBD,UAAU,CAACC,IAAX,IAAmB,EAArC;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,IAAzB,EAA+BH,aAA/B,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.luma = globalThis.luma || {};\nmodule.exports = Object.assign(globalThis.luma, moduleExports);\n"],"file":"bundle.js"}
package/dist/init.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":""}
package/dist/init.js DELETED
@@ -1,4 +0,0 @@
1
- import { luma } from '@luma.gl/api';
2
- import WebGPUDevice from './adapter/webgpu-device';
3
- luma.registerDevices([WebGPUDevice]);
4
- //# sourceMappingURL=init.js.map
package/dist/init.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/init.ts"],"names":["luma","WebGPUDevice","registerDevices"],"mappings":"AAAA,SAAQA,IAAR,QAAmB,cAAnB;AACA,OAAOC,YAAP,MAAyB,yBAAzB;AAEAD,IAAI,CAACE,eAAL,CAAqB,CAACD,YAAD,CAArB","sourcesContent":["import {luma} from '@luma.gl/api';\nimport WebGPUDevice from './adapter/webgpu-device';\n\nluma.registerDevices([WebGPUDevice]);\n"],"file":"init.js"}
package/src/bundle.ts DELETED
@@ -1,4 +0,0 @@
1
- // @ts-nocheck
2
- const moduleExports = require('./index');
3
- globalThis.luma = globalThis.luma || {};
4
- module.exports = Object.assign(globalThis.luma, moduleExports);
package/src/init.ts DELETED
@@ -1,4 +0,0 @@
1
- import {luma} from '@luma.gl/api';
2
- import WebGPUDevice from './adapter/webgpu-device';
3
-
4
- luma.registerDevices([WebGPUDevice]);