@luma.gl/webgl 9.0.0-beta.5 → 9.0.0-beta.7

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 (192) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +128 -71
  3. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/sampler-parameters.js +20 -19
  5. package/dist/adapter/converters/shader-formats.d.ts.map +1 -1
  6. package/dist/adapter/converters/shader-formats.js +40 -20
  7. package/dist/adapter/converters/texture-formats.d.ts +16 -11
  8. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  9. package/dist/adapter/converters/texture-formats.js +224 -205
  10. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  11. package/dist/adapter/converters/vertex-formats.js +22 -21
  12. package/dist/adapter/device-helpers/webgl-device-features.d.ts +19 -5
  13. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
  14. package/dist/adapter/device-helpers/webgl-device-features.js +89 -43
  15. package/dist/adapter/device-helpers/webgl-device-info.d.ts +2 -1
  16. package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -1
  17. package/dist/adapter/device-helpers/webgl-device-info.js +22 -19
  18. package/dist/adapter/device-helpers/webgl-device-limits.d.ts +33 -48
  19. package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -1
  20. package/dist/adapter/device-helpers/webgl-device-limits.js +42 -87
  21. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -1
  22. package/dist/adapter/helpers/decode-webgl-types.js +47 -46
  23. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  24. package/dist/adapter/helpers/get-shader-layout.js +35 -34
  25. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  26. package/dist/adapter/helpers/parse-shader-compiler-log.js +3 -2
  27. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  28. package/dist/adapter/helpers/set-uniform.js +42 -41
  29. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
  30. package/dist/adapter/helpers/webgl-topology-utils.js +40 -39
  31. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  32. package/dist/adapter/objects/constants-to-keys.js +2 -1
  33. package/dist/adapter/objects/webgl-renderbuffer.d.ts +2 -2
  34. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  35. package/dist/adapter/objects/webgl-renderbuffer.js +30 -17
  36. package/dist/adapter/objects/webgl-resource.d.ts +2 -24
  37. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  38. package/dist/adapter/objects/webgl-resource.js +6 -101
  39. package/dist/adapter/resources/webgl-buffer.d.ts +1 -1
  40. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  41. package/dist/adapter/resources/webgl-buffer.js +16 -15
  42. package/dist/adapter/resources/webgl-command-buffer.d.ts +1 -1
  43. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  44. package/dist/adapter/resources/webgl-command-buffer.js +32 -31
  45. package/dist/adapter/resources/webgl-command-encoder.d.ts +8 -3
  46. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  47. package/dist/adapter/resources/webgl-command-encoder.js +4 -2
  48. package/dist/adapter/resources/webgl-external-texture.js +6 -5
  49. package/dist/adapter/resources/webgl-framebuffer.d.ts +6 -10
  50. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  51. package/dist/adapter/resources/webgl-framebuffer.js +60 -53
  52. package/dist/adapter/resources/webgl-query-set.d.ts +44 -0
  53. package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -0
  54. package/dist/adapter/resources/webgl-query-set.js +136 -0
  55. package/dist/adapter/resources/webgl-render-pass.d.ts +3 -1
  56. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  57. package/dist/adapter/resources/webgl-render-pass.js +20 -12
  58. package/dist/adapter/resources/webgl-render-pipeline.d.ts +4 -5
  59. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-render-pipeline.js +52 -61
  61. package/dist/adapter/resources/webgl-sampler.d.ts +1 -1
  62. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-sampler.js +5 -4
  64. package/dist/adapter/resources/webgl-shader.d.ts +3 -2
  65. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  66. package/dist/adapter/resources/webgl-shader.js +15 -9
  67. package/dist/adapter/resources/webgl-texture-view.d.ts +14 -0
  68. package/dist/adapter/resources/webgl-texture-view.d.ts.map +1 -0
  69. package/dist/adapter/resources/webgl-texture-view.js +18 -0
  70. package/dist/adapter/resources/webgl-texture.d.ts +6 -4
  71. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  72. package/dist/adapter/resources/webgl-texture.js +39 -32
  73. package/dist/adapter/resources/webgl-transform-feedback.d.ts +1 -1
  74. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-transform-feedback.js +10 -10
  76. package/dist/adapter/resources/webgl-vertex-array.d.ts +3 -3
  77. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-vertex-array.js +10 -9
  79. package/dist/adapter/webgl-canvas-context.d.ts +2 -2
  80. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  81. package/dist/adapter/webgl-canvas-context.js +3 -2
  82. package/dist/adapter/webgl-device.d.ts +35 -30
  83. package/dist/adapter/webgl-device.d.ts.map +1 -1
  84. package/dist/adapter/webgl-device.js +110 -109
  85. package/dist/classic/accessor.d.ts.map +1 -1
  86. package/dist/classic/accessor.js +8 -7
  87. package/dist/classic/clear.d.ts.map +1 -1
  88. package/dist/classic/clear.js +5 -4
  89. package/dist/classic/copy-and-blit.d.ts +1 -1
  90. package/dist/classic/copy-and-blit.d.ts.map +1 -1
  91. package/dist/classic/copy-and-blit.js +19 -19
  92. package/dist/classic/format-utils.d.ts.map +1 -1
  93. package/dist/classic/format-utils.js +16 -15
  94. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  95. package/dist/classic/typed-array-utils.js +20 -19
  96. package/dist/context/debug/spector.d.ts.map +1 -1
  97. package/dist/context/debug/spector.js +2 -1
  98. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  99. package/dist/context/debug/webgl-developer-tools.js +7 -6
  100. package/dist/context/{context → helpers}/create-browser-context.d.ts.map +1 -1
  101. package/dist/context/{context → helpers}/create-browser-context.js +2 -1
  102. package/dist/context/{context/context-data.d.ts → helpers/webgl-context-data.d.ts} +2 -3
  103. package/dist/context/helpers/webgl-context-data.d.ts.map +1 -0
  104. package/dist/context/helpers/webgl-context-data.js +21 -0
  105. package/dist/context/helpers/webgl-extensions.d.ts +4 -0
  106. package/dist/context/helpers/webgl-extensions.d.ts.map +1 -0
  107. package/dist/context/helpers/webgl-extensions.js +10 -0
  108. package/dist/context/parameters/unified-parameter-api.d.ts +3 -4
  109. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  110. package/dist/context/parameters/unified-parameter-api.js +7 -11
  111. package/dist/context/parameters/webgl-parameter-tables.d.ts +12 -13
  112. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  113. package/dist/context/parameters/webgl-parameter-tables.js +302 -295
  114. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  115. package/dist/context/state-tracker/deep-array-equal.js +2 -1
  116. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  117. package/dist/context/state-tracker/track-context-state.js +5 -4
  118. package/dist/context/state-tracker/with-parameters.d.ts +2 -3
  119. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  120. package/dist/context/state-tracker/with-parameters.js +6 -8
  121. package/dist/dist.dev.js +1635 -1387
  122. package/dist/index.cjs +1766 -1534
  123. package/dist/index.cjs.map +4 -4
  124. package/dist/index.d.ts +25 -25
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +24 -23
  127. package/dist/types.d.ts.map +1 -1
  128. package/dist/types.js +2 -1
  129. package/dist.min.js +6 -6
  130. package/package.json +4 -4
  131. package/src/adapter/converters/device-parameters.ts +114 -27
  132. package/src/adapter/converters/sampler-parameters.ts +12 -3
  133. package/src/adapter/converters/shader-formats.ts +47 -22
  134. package/src/adapter/converters/texture-formats.ts +138 -114
  135. package/src/adapter/converters/vertex-formats.ts +3 -3
  136. package/src/adapter/device-helpers/webgl-device-features.ts +102 -50
  137. package/src/adapter/device-helpers/webgl-device-info.ts +28 -19
  138. package/src/adapter/device-helpers/webgl-device-limits.ts +46 -150
  139. package/src/adapter/helpers/decode-webgl-types.ts +13 -7
  140. package/src/adapter/helpers/get-shader-layout.ts +4 -3
  141. package/src/adapter/helpers/parse-shader-compiler-log.ts +10 -6
  142. package/src/adapter/helpers/set-uniform.ts +2 -1
  143. package/src/adapter/helpers/webgl-topology-utils.ts +10 -3
  144. package/src/adapter/objects/constants-to-keys.ts +2 -1
  145. package/src/adapter/objects/webgl-renderbuffer.ts +36 -14
  146. package/src/adapter/objects/webgl-resource.ts +7 -125
  147. package/src/adapter/resources/webgl-buffer.ts +4 -3
  148. package/src/adapter/resources/webgl-command-buffer.ts +5 -5
  149. package/src/adapter/resources/webgl-command-encoder.ts +14 -11
  150. package/src/adapter/resources/webgl-external-texture.ts +6 -5
  151. package/src/adapter/resources/webgl-framebuffer.ts +61 -53
  152. package/src/adapter/resources/webgl-query-set.ts +171 -0
  153. package/src/adapter/resources/webgl-render-pass.ts +20 -11
  154. package/src/adapter/resources/webgl-render-pipeline.ts +54 -54
  155. package/src/adapter/resources/webgl-sampler.ts +2 -1
  156. package/src/adapter/resources/webgl-shader.ts +12 -5
  157. package/src/adapter/resources/webgl-texture-view.ts +28 -0
  158. package/src/adapter/resources/webgl-texture.ts +14 -3
  159. package/src/adapter/resources/webgl-transform-feedback.ts +2 -7
  160. package/src/adapter/resources/webgl-vertex-array.ts +4 -3
  161. package/src/adapter/webgl-canvas-context.ts +6 -4
  162. package/src/adapter/webgl-device.ts +116 -107
  163. package/src/classic/accessor.ts +5 -4
  164. package/src/classic/clear.ts +14 -8
  165. package/src/classic/copy-and-blit.ts +11 -4
  166. package/src/classic/format-utils.ts +2 -1
  167. package/src/classic/typed-array-utils.ts +3 -7
  168. package/src/context/debug/spector.ts +9 -6
  169. package/src/context/debug/webgl-developer-tools.ts +27 -14
  170. package/src/context/{context → helpers}/create-browser-context.ts +3 -2
  171. package/src/context/helpers/webgl-context-data.ts +31 -0
  172. package/src/context/helpers/webgl-extensions.ts +17 -0
  173. package/src/context/parameters/unified-parameter-api.ts +6 -17
  174. package/src/context/parameters/webgl-parameter-tables.ts +69 -32
  175. package/src/context/state-tracker/deep-array-equal.ts +2 -1
  176. package/src/context/state-tracker/track-context-state.ts +11 -6
  177. package/src/context/state-tracker/with-parameters.ts +8 -8
  178. package/src/index.ts +7 -6
  179. package/src/types.ts +2 -1
  180. package/dist/adapter/device-helpers/device-features.d.ts +0 -6
  181. package/dist/adapter/device-helpers/device-features.d.ts.map +0 -1
  182. package/dist/adapter/device-helpers/device-features.js +0 -65
  183. package/dist/adapter/device-helpers/device-limits.d.ts +0 -50
  184. package/dist/adapter/device-helpers/device-limits.d.ts.map +0 -1
  185. package/dist/adapter/device-helpers/device-limits.js +0 -92
  186. package/dist/adapter/device-helpers/get-device-info.d.ts +0 -4
  187. package/dist/adapter/device-helpers/get-device-info.d.ts.map +0 -1
  188. package/dist/adapter/device-helpers/get-device-info.js +0 -87
  189. package/dist/context/context/context-data.d.ts.map +0 -1
  190. package/dist/context/context/context-data.js +0 -33
  191. package/src/context/context/context-data.ts +0 -44
  192. /package/dist/context/{context → helpers}/create-browser-context.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/webgl",
3
- "version": "9.0.0-beta.5",
3
+ "version": "9.0.0-beta.7",
4
4
  "description": "WebGL2 adapter for the luma.gl core API",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -43,9 +43,9 @@
43
43
  "@luma.gl/constants": "^9.0.0-beta.4"
44
44
  },
45
45
  "dependencies": {
46
- "@luma.gl/constants": "9.0.0-beta.5",
47
- "@luma.gl/core": "9.0.0-beta.5",
46
+ "@luma.gl/constants": "9.0.0-beta.7",
47
+ "@luma.gl/core": "9.0.0-beta.7",
48
48
  "@probe.gl/env": "^4.0.2"
49
49
  },
50
- "gitHead": "793d3ab42f5a572b6cb603ea78aabaa73a873301"
50
+ "gitHead": "e9606a88e0aab3dc27c87020cac89040ea1a8a02"
51
51
  }
@@ -1,4 +1,5 @@
1
- // luma.gl, MIT license
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
2
3
  // Copyright (c) vis.gl contributors
3
4
 
4
5
  import {
@@ -28,7 +29,7 @@ import {WebGLDevice} from '../webgl-device';
28
29
  * - Returns the return value of the supplied function
29
30
  */
30
31
  export function withDeviceAndGLParameters<T = unknown>(
31
- device: Device,
32
+ device: Device,
32
33
  parameters: Parameters,
33
34
  glParameters: GLParameters,
34
35
  func: (device?: Device) => T
@@ -39,15 +40,14 @@ export function withDeviceAndGLParameters<T = unknown>(
39
40
  }
40
41
 
41
42
  // Wrap in a try-catch to ensure that parameters are restored on exceptions
42
- // @ts-expect-error
43
- pushContextState(device.gl);
43
+ const webglDevice = device as WebGLDevice;
44
+ pushContextState(webglDevice.gl);
44
45
  try {
45
46
  setDeviceParameters(device, parameters);
46
- setGLParameters(device, glParameters);
47
+ setGLParameters(webglDevice.gl, glParameters);
47
48
  return func(device);
48
49
  } finally {
49
- // @ts-expect-error
50
- popContextState(device.gl);
50
+ popContextState(webglDevice.gl);
51
51
  }
52
52
  }
53
53
 
@@ -71,14 +71,13 @@ export function withGLParameters<T = unknown>(
71
71
  }
72
72
 
73
73
  // Wrap in a try-catch to ensure that parameters are restored on exceptions
74
- // @ts-expect-error
75
- pushContextState(device.gl);
74
+ const webglDevice = device as WebGLDevice;
75
+ pushContextState(webglDevice.gl);
76
76
  try {
77
- setGLParameters(device, parameters);
77
+ setGLParameters(webglDevice.gl, parameters);
78
78
  return func(device);
79
79
  } finally {
80
- // @ts-expect-error
81
- popContextState(device.gl);
80
+ popContextState(webglDevice.gl);
82
81
  }
83
82
  }
84
83
 
@@ -114,7 +113,7 @@ export function withDeviceParameters<T = unknown>(
114
113
 
115
114
  /** Set WebGPU Style Parameters */
116
115
  export function setDeviceParameters(device: Device, parameters: Parameters) {
117
- const webglDevice = WebGLDevice.attach(device);
116
+ const webglDevice = device as WebGLDevice;
118
117
  const {gl} = webglDevice;
119
118
 
120
119
  // RASTERIZATION SETTINGS
@@ -143,6 +142,13 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
143
142
  );
144
143
  }
145
144
 
145
+ if (parameters.unclippedDepth) {
146
+ if (device.features.has('depth-clip-control')) {
147
+ // EXT_depth_clamp
148
+ gl.enable(GL.DEPTH_CLAMP_EXT);
149
+ }
150
+ }
151
+
146
152
  if (parameters.depthBias !== undefined) {
147
153
  gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);
148
154
  }
@@ -151,6 +157,66 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
151
157
  // // Handled by depthBias
152
158
  // },
153
159
 
160
+ // WEBGL EXTENSIONS
161
+
162
+ if (device.features.has('provoking-vertex-webgl')) {
163
+ const extensions = webglDevice.getExtension('WEBGL_provoking_vertex');
164
+ const ext = extensions.WEBGL_provoking_vertex;
165
+
166
+ if (parameters.provokingVertex) {
167
+ const vertex = map('provokingVertex', parameters.provokingVertex, {
168
+ first: GL.FIRST_VERTEX_CONVENTION_WEBGL,
169
+ last: GL.LAST_VERTEX_CONVENTION_WEBGL
170
+ });
171
+ ext?.provokingVertexWEBGL(vertex);
172
+ }
173
+ }
174
+
175
+ if (device.features.has('polygon-mode-webgl')) {
176
+ const extensions = webglDevice.getExtension('WEBGL_polygon_mode');
177
+ const ext = extensions.WEBGL_polygon_mode;
178
+
179
+ if (parameters.polygonMode) {
180
+ const mode = map('polygonMode', parameters.provokingVertex, {
181
+ fill: GL.FILL_WEBGL,
182
+ lint: GL.LINE_WEBGL
183
+ });
184
+ ext?.polygonModeWEBGL(GL.FRONT, mode);
185
+ ext?.polygonModeWEBGL(GL.BACK, mode);
186
+ }
187
+
188
+ if (parameters.polygonOffsetLine) {
189
+ gl.enable(GL.POLYGON_OFFSET_LINE_WEBGL);
190
+ }
191
+ }
192
+
193
+ if (device.features.has('shader-clip-cull-distance-webgl')) {
194
+ if (parameters.clipDistance0) {
195
+ gl.enable(GL.CLIP_DISTANCE0_WEBGL);
196
+ }
197
+ if (parameters.clipDistance1) {
198
+ gl.enable(GL.CLIP_DISTANCE1_WEBGL);
199
+ }
200
+ if (parameters.clipDistance2) {
201
+ gl.enable(GL.CLIP_DISTANCE2_WEBGL);
202
+ }
203
+ if (parameters.clipDistance3) {
204
+ gl.enable(GL.CLIP_DISTANCE3_WEBGL);
205
+ }
206
+ if (parameters.clipDistance4) {
207
+ gl.enable(GL.CLIP_DISTANCE4_WEBGL);
208
+ }
209
+ if (parameters.clipDistance5) {
210
+ gl.enable(GL.CLIP_DISTANCE5_WEBGL);
211
+ }
212
+ if (parameters.clipDistance6) {
213
+ gl.enable(GL.CLIP_DISTANCE6_WEBGL);
214
+ }
215
+ if (parameters.clipDistance7) {
216
+ gl.enable(GL.CLIP_DISTANCE7_WEBGL);
217
+ }
218
+ }
219
+
154
220
  // DEPTH STENCIL
155
221
 
156
222
  if (parameters.depthWriteEnabled !== undefined) {
@@ -212,14 +278,32 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
212
278
  if (parameters.blendColorOperation || parameters.blendAlphaOperation) {
213
279
  gl.enable(GL.BLEND);
214
280
 
215
- const colorEquation = convertBlendOperationToEquation('blendColorOperation', parameters.blendColorOperation || 'add');
216
- const alphaEquation = convertBlendOperationToEquation('blendAlphaOperation', parameters.blendAlphaOperation || 'add');
281
+ const colorEquation = convertBlendOperationToEquation(
282
+ 'blendColorOperation',
283
+ parameters.blendColorOperation || 'add'
284
+ );
285
+ const alphaEquation = convertBlendOperationToEquation(
286
+ 'blendAlphaOperation',
287
+ parameters.blendAlphaOperation || 'add'
288
+ );
217
289
  gl.blendEquationSeparate(colorEquation, alphaEquation);
218
290
 
219
- const colorSrcFactor = convertBlendFactorToFunction('blendColorSrcFactor', parameters.blendColorSrcFactor || 'one');
220
- const colorDstFactor = convertBlendFactorToFunction('blendColorDstFactor', parameters.blendColorDstFactor || 'zero');
221
- const alphaSrcFactor = convertBlendFactorToFunction('blendAlphaSrcFactor', parameters.blendAlphaSrcFactor || 'one');
222
- const alphaDstFactor = convertBlendFactorToFunction('blendAlphaDstFactor', parameters.blendAlphaDstFactor || 'zero');
291
+ const colorSrcFactor = convertBlendFactorToFunction(
292
+ 'blendColorSrcFactor',
293
+ parameters.blendColorSrcFactor || 'one'
294
+ );
295
+ const colorDstFactor = convertBlendFactorToFunction(
296
+ 'blendColorDstFactor',
297
+ parameters.blendColorDstFactor || 'zero'
298
+ );
299
+ const alphaSrcFactor = convertBlendFactorToFunction(
300
+ 'blendAlphaSrcFactor',
301
+ parameters.blendAlphaSrcFactor || 'one'
302
+ );
303
+ const alphaDstFactor = convertBlendFactorToFunction(
304
+ 'blendAlphaDstFactor',
305
+ parameters.blendAlphaDstFactor || 'zero'
306
+ );
223
307
  gl.blendFuncSeparate(colorSrcFactor, colorDstFactor, alphaSrcFactor, alphaDstFactor);
224
308
  }
225
309
  }
@@ -286,20 +370,23 @@ function convertStencilOperation(parameter: string, value: StencilOperation): GL
286
370
  });
287
371
  }
288
372
 
289
- function convertBlendOperationToEquation(parameter: string, value: BlendOperation): GLBlendEquation {
373
+ function convertBlendOperationToEquation(
374
+ parameter: string,
375
+ value: BlendOperation
376
+ ): GLBlendEquation {
290
377
  return map(parameter, value, {
291
- 'add': GL.FUNC_ADD,
292
- 'subtract': GL.FUNC_SUBTRACT,
378
+ add: GL.FUNC_ADD,
379
+ subtract: GL.FUNC_SUBTRACT,
293
380
  'reverse-subtract': GL.FUNC_REVERSE_SUBTRACT,
294
- 'min': GL.MIN,
295
- 'max': GL.MAX
381
+ min: GL.MIN,
382
+ max: GL.MAX
296
383
  } as Record<BlendOperation, GLBlendEquation>);
297
384
  }
298
385
 
299
386
  function convertBlendFactorToFunction(parameter: string, value: BlendFactor): GLBlendFunction {
300
387
  return map(parameter, value, {
301
- 'one': GL.ONE,
302
- 'zero': GL.ZERO,
388
+ one: GL.ONE,
389
+ zero: GL.ZERO,
303
390
  'src-color': GL.SRC_COLOR,
304
391
  'one-minus-src-color': GL.ONE_MINUS_SRC_COLOR,
305
392
  'dst-color': GL.DST_COLOR,
@@ -307,7 +394,7 @@ function convertBlendFactorToFunction(parameter: string, value: BlendFactor): GL
307
394
  'src-alpha': GL.SRC_ALPHA,
308
395
  'one-minus-src-alpha': GL.ONE_MINUS_SRC_ALPHA,
309
396
  'dst-alpha': GL.DST_ALPHA,
310
- 'one-minus-dst-alpha': GL.ONE_MINUS_DST_ALPHA,
397
+ 'one-minus-dst-alpha': GL.ONE_MINUS_DST_ALPHA
311
398
  } as Record<BlendFactor, GLBlendFunction>);
312
399
  }
313
400
 
@@ -1,4 +1,5 @@
1
- // luma.gl, MIT license
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
2
3
  // Copyright (c) vis.gl contributors
3
4
 
4
5
  // SAMPLER FILTERS
@@ -55,7 +56,9 @@ export function convertSamplerParametersToWebGL(props: SamplerProps): GLSamplerP
55
56
  // HELPERS
56
57
 
57
58
  /** Convert address more */
58
- function convertAddressMode(addressMode: 'clamp-to-edge' | 'repeat' | 'mirror-repeat'): GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT {
59
+ function convertAddressMode(
60
+ addressMode: 'clamp-to-edge' | 'repeat' | 'mirror-repeat'
61
+ ): GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT {
59
62
  switch (addressMode) {
60
63
  case 'clamp-to-edge':
61
64
  return GL.CLAMP_TO_EDGE;
@@ -82,7 +85,13 @@ function convertMaxFilterMode(maxFilter: 'nearest' | 'linear'): GL.NEAREST | GL.
82
85
  function convertMinFilterMode(
83
86
  minFilter: 'nearest' | 'linear',
84
87
  mipmapFilter?: 'nearest' | 'linear'
85
- ): GL.NEAREST | GL.LINEAR | GL.NEAREST_MIPMAP_NEAREST | GL.LINEAR_MIPMAP_NEAREST | GL.NEAREST_MIPMAP_LINEAR | GL.LINEAR_MIPMAP_LINEAR {
88
+ ):
89
+ | GL.NEAREST
90
+ | GL.LINEAR
91
+ | GL.NEAREST_MIPMAP_NEAREST
92
+ | GL.LINEAR_MIPMAP_NEAREST
93
+ | GL.NEAREST_MIPMAP_LINEAR
94
+ | GL.LINEAR_MIPMAP_LINEAR {
86
95
  if (!mipmapFilter) {
87
96
  return convertMaxFilterMode(minFilter);
88
97
  }
@@ -1,44 +1,69 @@
1
- // luma.gl, MIT license
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
2
3
  // Copyright (c) vis.gl contributors
3
4
 
4
5
  import {GL} from '@luma.gl/constants';
5
6
  import {ShaderAttributeType, ShaderDataType} from '@luma.gl/core';
6
7
 
7
8
  /** Get shader attribute type from GL constants */
8
- export function getShaderAttributeTypeFromGL(type: GL, components: 1 | 2 | 3 | 4): ShaderAttributeType {
9
+ export function getShaderAttributeTypeFromGL(
10
+ type: GL,
11
+ components: 1 | 2 | 3 | 4
12
+ ): ShaderAttributeType {
9
13
  const dataType = getShaderDataTypeFromGL(type);
10
14
  switch (components) {
11
- case 1: return dataType;
12
- case 2: return `vec2<${dataType}>`;
13
- case 3: return `vec2<${dataType}>`;
14
- case 4: return `vec2<${dataType}>`;
15
- default: throw new Error(String(components));
15
+ case 1:
16
+ return dataType;
17
+ case 2:
18
+ return `vec2<${dataType}>`;
19
+ case 3:
20
+ return `vec2<${dataType}>`;
21
+ case 4:
22
+ return `vec2<${dataType}>`;
23
+ default:
24
+ throw new Error(String(components));
16
25
  }
17
26
  }
18
27
 
19
28
  /** Get shader data type from GL constants */
20
29
  export function getShaderDataTypeFromGL(type: GL): ShaderDataType {
21
30
  switch (type) {
22
- case GL.INT: return 'i32';
23
- case GL.UNSIGNED_INT: return 'u32';
24
- case GL.SHORT: return 'i32';
25
- case GL.UNSIGNED_SHORT: return 'u32';
26
- case GL.BYTE: return 'i32';
27
- case GL.UNSIGNED_BYTE: return 'u32';
28
- case GL.FLOAT: return 'f32';
29
- case GL.HALF_FLOAT: return 'f16';
30
- default: throw new Error(String(type));
31
+ case GL.INT:
32
+ return 'i32';
33
+ case GL.UNSIGNED_INT:
34
+ return 'u32';
35
+ case GL.SHORT:
36
+ return 'i32';
37
+ case GL.UNSIGNED_SHORT:
38
+ return 'u32';
39
+ case GL.BYTE:
40
+ return 'i32';
41
+ case GL.UNSIGNED_BYTE:
42
+ return 'u32';
43
+ case GL.FLOAT:
44
+ return 'f32';
45
+ case GL.HALF_FLOAT:
46
+ return 'f16';
47
+ default:
48
+ throw new Error(String(type));
31
49
  }
32
50
  }
33
51
 
34
52
  /** GetGL constant from shader data type */
35
- export function getGLFromShaderDataType(type: ShaderDataType): GL.INT | GL.UNSIGNED_INT | GL.FLOAT | GL.HALF_FLOAT {
53
+ export function getGLFromShaderDataType(
54
+ type: ShaderDataType
55
+ ): GL.INT | GL.UNSIGNED_INT | GL.FLOAT | GL.HALF_FLOAT {
36
56
  switch (type) {
37
57
  // TODO
38
- case 'i32': return GL.INT;
39
- case 'u32': return GL.UNSIGNED_INT;
40
- case 'f32': return GL.FLOAT;
41
- case 'f16': return GL.HALF_FLOAT;
42
- default: throw new Error(String(type));
58
+ case 'i32':
59
+ return GL.INT;
60
+ case 'u32':
61
+ return GL.UNSIGNED_INT;
62
+ case 'f32':
63
+ return GL.FLOAT;
64
+ case 'f16':
65
+ return GL.HALF_FLOAT;
66
+ default:
67
+ throw new Error(String(type));
43
68
  }
44
69
  }