@luma.gl/webgl 9.0.0-beta.4 → 9.0.0-beta.6

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 (288) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +297 -155
  3. package/dist/adapter/converters/sampler-parameters.d.ts +0 -4
  4. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  5. package/dist/adapter/converters/sampler-parameters.js +73 -67
  6. package/dist/adapter/converters/shader-formats.d.ts.map +1 -1
  7. package/dist/adapter/converters/shader-formats.js +53 -46
  8. package/dist/adapter/converters/texture-formats.d.ts +13 -19
  9. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  10. package/dist/adapter/converters/texture-formats.js +474 -879
  11. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  12. package/dist/adapter/converters/vertex-formats.js +53 -61
  13. package/dist/adapter/device-helpers/device-features.d.ts +2 -5
  14. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  15. package/dist/adapter/device-helpers/device-features.js +56 -87
  16. package/dist/adapter/device-helpers/device-limits.d.ts +2 -4
  17. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  18. package/dist/adapter/device-helpers/device-limits.js +88 -83
  19. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  20. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  21. package/dist/adapter/device-helpers/get-device-info.js +79 -63
  22. package/dist/adapter/device-helpers/webgl-device-features.d.ts +19 -0
  23. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -0
  24. package/dist/adapter/device-helpers/webgl-device-features.js +86 -0
  25. package/dist/adapter/device-helpers/webgl-device-info.d.ts +5 -0
  26. package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -0
  27. package/dist/adapter/device-helpers/webgl-device-info.js +90 -0
  28. package/dist/adapter/device-helpers/webgl-device-limits.d.ts +35 -0
  29. package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -0
  30. package/dist/adapter/device-helpers/webgl-device-limits.js +47 -0
  31. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -1
  32. package/dist/adapter/helpers/decode-webgl-types.js +88 -76
  33. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -1
  34. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  35. package/dist/adapter/helpers/get-shader-layout.js +261 -225
  36. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  37. package/dist/adapter/helpers/parse-shader-compiler-log.js +47 -37
  38. package/dist/adapter/helpers/set-uniform.d.ts +1 -1
  39. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  40. package/dist/adapter/helpers/set-uniform.js +68 -82
  41. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
  42. package/dist/adapter/helpers/webgl-topology-utils.js +78 -93
  43. package/dist/adapter/objects/constants-to-keys.d.ts +1 -1
  44. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  45. package/dist/adapter/objects/constants-to-keys.js +19 -12
  46. package/dist/adapter/objects/webgl-renderbuffer.d.ts +2 -2
  47. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  48. package/dist/adapter/objects/webgl-renderbuffer.js +86 -77
  49. package/dist/adapter/objects/webgl-resource.d.ts +3 -25
  50. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  51. package/dist/adapter/objects/webgl-resource.js +102 -146
  52. package/dist/adapter/resources/webgl-buffer.d.ts +3 -4
  53. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  54. package/dist/adapter/resources/webgl-buffer.js +161 -119
  55. package/dist/adapter/resources/webgl-command-buffer.d.ts +1 -1
  56. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  57. package/dist/adapter/resources/webgl-command-buffer.js +266 -168
  58. package/dist/adapter/resources/webgl-command-encoder.d.ts +8 -3
  59. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-command-encoder.js +33 -39
  61. package/dist/adapter/resources/webgl-external-texture.js +93 -1
  62. package/dist/adapter/resources/webgl-framebuffer.d.ts +8 -10
  63. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  64. package/dist/adapter/resources/webgl-framebuffer.js +167 -137
  65. package/dist/adapter/resources/webgl-query-set.d.ts +44 -0
  66. package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -0
  67. package/dist/adapter/resources/webgl-query-set.js +136 -0
  68. package/dist/adapter/resources/webgl-render-pass.d.ts +3 -1
  69. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  70. package/dist/adapter/resources/webgl-render-pass.js +124 -90
  71. package/dist/adapter/resources/webgl-render-pipeline.d.ts +15 -6
  72. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  73. package/dist/adapter/resources/webgl-render-pipeline.js +356 -221
  74. package/dist/adapter/resources/webgl-sampler.d.ts +1 -3
  75. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  76. package/dist/adapter/resources/webgl-sampler.js +43 -33
  77. package/dist/adapter/resources/webgl-shader.d.ts +12 -2
  78. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-shader.js +114 -47
  80. package/dist/adapter/resources/webgl-texture-view.d.ts +14 -0
  81. package/dist/adapter/resources/webgl-texture-view.d.ts.map +1 -0
  82. package/dist/adapter/resources/webgl-texture-view.js +18 -0
  83. package/dist/adapter/resources/webgl-texture.d.ts +6 -9
  84. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  85. package/dist/adapter/resources/webgl-texture.js +615 -695
  86. package/dist/adapter/resources/webgl-transform-feedback.d.ts +2 -2
  87. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-transform-feedback.js +141 -143
  89. package/dist/adapter/resources/webgl-vertex-array.d.ts +3 -3
  90. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
  91. package/dist/adapter/resources/webgl-vertex-array.js +229 -157
  92. package/dist/adapter/webgl-canvas-context.d.ts +2 -2
  93. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  94. package/dist/adapter/webgl-canvas-context.js +58 -36
  95. package/dist/adapter/webgl-device.d.ts +34 -40
  96. package/dist/adapter/webgl-device.d.ts.map +1 -1
  97. package/dist/adapter/webgl-device.js +418 -363
  98. package/dist/classic/accessor.d.ts.map +1 -1
  99. package/dist/classic/accessor.js +132 -101
  100. package/dist/classic/clear.d.ts +2 -2
  101. package/dist/classic/clear.d.ts.map +1 -1
  102. package/dist/classic/clear.js +73 -72
  103. package/dist/classic/copy-and-blit.d.ts +1 -1
  104. package/dist/classic/copy-and-blit.d.ts.map +1 -1
  105. package/dist/classic/copy-and-blit.js +175 -175
  106. package/dist/classic/format-utils.d.ts +2 -2
  107. package/dist/classic/format-utils.d.ts.map +1 -1
  108. package/dist/classic/format-utils.js +39 -32
  109. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  110. package/dist/classic/typed-array-utils.js +96 -81
  111. package/dist/context/context/context-data.d.ts +14 -0
  112. package/dist/context/context/context-data.d.ts.map +1 -0
  113. package/dist/context/context/context-data.js +33 -0
  114. package/dist/context/context/create-browser-context.d.ts +1 -6
  115. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  116. package/dist/context/context/create-browser-context.js +62 -49
  117. package/dist/context/debug/spector.d.ts.map +1 -1
  118. package/dist/context/debug/spector.js +55 -50
  119. package/dist/context/debug/webgl-developer-tools.d.ts +1 -2
  120. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  121. package/dist/context/debug/webgl-developer-tools.js +104 -77
  122. package/dist/context/helpers/create-browser-context.d.ts +35 -0
  123. package/dist/context/helpers/create-browser-context.d.ts.map +1 -0
  124. package/dist/context/helpers/create-browser-context.js +67 -0
  125. package/dist/context/{polyfill/context-data.d.ts → helpers/webgl-context-data.d.ts} +2 -2
  126. package/dist/context/helpers/webgl-context-data.d.ts.map +1 -0
  127. package/dist/context/helpers/webgl-context-data.js +21 -0
  128. package/dist/context/helpers/webgl-extensions.d.ts +4 -0
  129. package/dist/context/helpers/webgl-extensions.d.ts.map +1 -0
  130. package/dist/context/helpers/webgl-extensions.js +10 -0
  131. package/dist/context/parameters/unified-parameter-api.d.ts +3 -3
  132. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  133. package/dist/context/parameters/unified-parameter-api.js +94 -44
  134. package/dist/context/parameters/webgl-parameter-tables.d.ts +120 -99
  135. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  136. package/dist/context/parameters/webgl-parameter-tables.js +469 -404
  137. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  138. package/dist/context/state-tracker/deep-array-equal.js +19 -14
  139. package/dist/context/state-tracker/track-context-state.d.ts +4 -4
  140. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  141. package/dist/context/state-tracker/track-context-state.js +188 -123
  142. package/dist/context/state-tracker/with-parameters.d.ts +2 -2
  143. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  144. package/dist/context/state-tracker/with-parameters.js +43 -26
  145. package/dist/dist.dev.js +3135 -4142
  146. package/dist/index.cjs +1766 -2717
  147. package/dist/index.cjs.map +7 -0
  148. package/dist/index.d.ts +25 -28
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.js +16 -5
  151. package/dist/types.d.ts.map +1 -1
  152. package/dist/types.js +3 -1
  153. package/dist.min.js +9 -42
  154. package/package.json +11 -15
  155. package/src/adapter/converters/device-parameters.ts +105 -17
  156. package/src/adapter/converters/sampler-parameters.ts +12 -20
  157. package/src/adapter/converters/shader-formats.ts +47 -22
  158. package/src/adapter/converters/texture-formats.ts +138 -185
  159. package/src/adapter/converters/vertex-formats.ts +3 -3
  160. package/src/adapter/device-helpers/webgl-device-features.ts +101 -0
  161. package/src/adapter/device-helpers/{get-device-info.ts → webgl-device-info.ts} +30 -22
  162. package/src/adapter/device-helpers/webgl-device-limits.ts +53 -0
  163. package/src/adapter/helpers/decode-webgl-types.ts +13 -7
  164. package/src/adapter/helpers/get-shader-layout.ts +21 -31
  165. package/src/adapter/helpers/parse-shader-compiler-log.ts +10 -6
  166. package/src/adapter/helpers/set-uniform.ts +3 -4
  167. package/src/adapter/helpers/webgl-topology-utils.ts +10 -3
  168. package/src/adapter/objects/constants-to-keys.ts +3 -2
  169. package/src/adapter/objects/webgl-renderbuffer.ts +38 -16
  170. package/src/adapter/objects/webgl-resource.ts +7 -140
  171. package/src/adapter/resources/webgl-buffer.ts +10 -14
  172. package/src/adapter/resources/webgl-command-buffer.ts +24 -34
  173. package/src/adapter/resources/webgl-command-encoder.ts +14 -11
  174. package/src/adapter/resources/webgl-external-texture.ts +5 -5
  175. package/src/adapter/resources/webgl-framebuffer.ts +38 -34
  176. package/src/adapter/resources/webgl-query-set.ts +171 -0
  177. package/src/adapter/resources/webgl-render-pass.ts +24 -15
  178. package/src/adapter/resources/webgl-render-pipeline.ts +138 -70
  179. package/src/adapter/resources/webgl-sampler.ts +7 -10
  180. package/src/adapter/resources/webgl-shader.ts +65 -11
  181. package/src/adapter/resources/webgl-texture-view.ts +28 -0
  182. package/src/adapter/resources/webgl-texture.ts +38 -105
  183. package/src/adapter/resources/webgl-transform-feedback.ts +16 -22
  184. package/src/adapter/resources/webgl-vertex-array.ts +20 -21
  185. package/src/adapter/webgl-canvas-context.ts +7 -11
  186. package/src/adapter/webgl-device.ts +106 -151
  187. package/src/classic/accessor.ts +5 -4
  188. package/src/classic/clear.ts +25 -20
  189. package/src/classic/copy-and-blit.ts +12 -6
  190. package/src/classic/format-utils.ts +2 -1
  191. package/src/classic/typed-array-utils.ts +3 -7
  192. package/src/context/debug/spector.ts +9 -6
  193. package/src/context/debug/webgl-developer-tools.ts +31 -20
  194. package/src/context/{context → helpers}/create-browser-context.ts +9 -33
  195. package/src/context/{polyfill/context-data.ts → helpers/webgl-context-data.ts} +3 -2
  196. package/src/context/helpers/webgl-extensions.ts +17 -0
  197. package/src/context/parameters/unified-parameter-api.ts +5 -4
  198. package/src/context/parameters/webgl-parameter-tables.ts +118 -90
  199. package/src/context/state-tracker/deep-array-equal.ts +2 -1
  200. package/src/context/state-tracker/track-context-state.ts +29 -23
  201. package/src/context/state-tracker/with-parameters.ts +7 -2
  202. package/src/index.ts +4 -18
  203. package/src/types.ts +2 -1
  204. package/dist/adapter/converters/device-parameters.js.map +0 -1
  205. package/dist/adapter/converters/sampler-parameters.js.map +0 -1
  206. package/dist/adapter/converters/shader-formats.js.map +0 -1
  207. package/dist/adapter/converters/texture-formats.js.map +0 -1
  208. package/dist/adapter/converters/vertex-formats.js.map +0 -1
  209. package/dist/adapter/device-helpers/device-features.js.map +0 -1
  210. package/dist/adapter/device-helpers/device-limits.js.map +0 -1
  211. package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
  212. package/dist/adapter/device-helpers/is-old-ie.d.ts +0 -2
  213. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +0 -1
  214. package/dist/adapter/device-helpers/is-old-ie.js +0 -9
  215. package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
  216. package/dist/adapter/helpers/decode-webgl-types.js.map +0 -1
  217. package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
  218. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  219. package/dist/adapter/helpers/set-uniform.js.map +0 -1
  220. package/dist/adapter/helpers/webgl-topology-utils.js.map +0 -1
  221. package/dist/adapter/objects/constants-to-keys.js.map +0 -1
  222. package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
  223. package/dist/adapter/objects/webgl-resource.js.map +0 -1
  224. package/dist/adapter/resources/webgl-buffer.js.map +0 -1
  225. package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
  226. package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
  227. package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
  228. package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
  229. package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
  230. package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
  231. package/dist/adapter/resources/webgl-sampler.js.map +0 -1
  232. package/dist/adapter/resources/webgl-shader.js.map +0 -1
  233. package/dist/adapter/resources/webgl-texture.js.map +0 -1
  234. package/dist/adapter/resources/webgl-transform-feedback.js.map +0 -1
  235. package/dist/adapter/resources/webgl-vertex-array.js.map +0 -1
  236. package/dist/adapter/webgl-canvas-context.js.map +0 -1
  237. package/dist/adapter/webgl-device.js.map +0 -1
  238. package/dist/classic/accessor.js.map +0 -1
  239. package/dist/classic/clear.js.map +0 -1
  240. package/dist/classic/copy-and-blit.js.map +0 -1
  241. package/dist/classic/format-utils.js.map +0 -1
  242. package/dist/classic/typed-array-utils.js.map +0 -1
  243. package/dist/context/context/create-browser-context.js.map +0 -1
  244. package/dist/context/context/create-headless-context.d.ts +0 -9
  245. package/dist/context/context/create-headless-context.d.ts.map +0 -1
  246. package/dist/context/context/create-headless-context.js +0 -42
  247. package/dist/context/context/create-headless-context.js.map +0 -1
  248. package/dist/context/context/webgl-checks.d.ts +0 -13
  249. package/dist/context/context/webgl-checks.d.ts.map +0 -1
  250. package/dist/context/context/webgl-checks.js +0 -31
  251. package/dist/context/context/webgl-checks.js.map +0 -1
  252. package/dist/context/debug/spector.js.map +0 -1
  253. package/dist/context/debug/webgl-developer-tools.js.map +0 -1
  254. package/dist/context/parameters/unified-parameter-api.js.map +0 -1
  255. package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
  256. package/dist/context/polyfill/context-data.d.ts.map +0 -1
  257. package/dist/context/polyfill/context-data.js +0 -12
  258. package/dist/context/polyfill/context-data.js.map +0 -1
  259. package/dist/context/polyfill/get-parameter-polyfill.d.ts +0 -2
  260. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +0 -1
  261. package/dist/context/polyfill/get-parameter-polyfill.js +0 -85
  262. package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
  263. package/dist/context/polyfill/polyfill-context.d.ts +0 -5
  264. package/dist/context/polyfill/polyfill-context.d.ts.map +0 -1
  265. package/dist/context/polyfill/polyfill-context.js +0 -87
  266. package/dist/context/polyfill/polyfill-context.js.map +0 -1
  267. package/dist/context/polyfill/polyfill-table.d.ts +0 -48
  268. package/dist/context/polyfill/polyfill-table.d.ts.map +0 -1
  269. package/dist/context/polyfill/polyfill-table.js +0 -137
  270. package/dist/context/polyfill/polyfill-table.js.map +0 -1
  271. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +0 -2
  272. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +0 -1
  273. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -265
  274. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  275. package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
  276. package/dist/context/state-tracker/track-context-state.js.map +0 -1
  277. package/dist/context/state-tracker/with-parameters.js.map +0 -1
  278. package/dist/index.js.map +0 -1
  279. package/dist/types.js.map +0 -1
  280. package/src/adapter/device-helpers/device-features.ts +0 -161
  281. package/src/adapter/device-helpers/device-limits.ts +0 -155
  282. package/src/adapter/device-helpers/is-old-ie.ts +0 -14
  283. package/src/context/context/create-headless-context.ts +0 -51
  284. package/src/context/context/webgl-checks.ts +0 -51
  285. package/src/context/polyfill/get-parameter-polyfill.ts +0 -122
  286. package/src/context/polyfill/polyfill-context.ts +0 -104
  287. package/src/context/polyfill/polyfill-table.ts +0 -167
  288. package/src/context/polyfill/polyfill-vertex-array-object.ts +0 -365
@@ -1,84 +1,70 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { GL } from '@luma.gl/constants';
5
+ /** Set a raw uniform (without type conversion and caching) */
6
+ /* eslint-disable max-len */
1
7
  export function setUniform(gl, location, type, value) {
2
- const gl2 = gl;
3
- let uniformValue = value;
4
- if (uniformValue === true) {
5
- uniformValue = 1;
6
- }
7
- if (uniformValue === false) {
8
- uniformValue = 0;
9
- }
10
- const arrayValue = typeof uniformValue === 'number' ? [uniformValue] : uniformValue;
11
- switch (type) {
12
- case 35678:
13
- case 35680:
14
- case 35679:
15
- case 35682:
16
- case 36289:
17
- case 36292:
18
- case 36293:
19
- case 36298:
20
- case 36299:
21
- case 36300:
22
- case 36303:
23
- case 36306:
24
- case 36307:
25
- case 36308:
26
- case 36311:
27
- if (typeof value !== 'number') {
28
- throw new Error('samplers must be set to integers');
29
- }
30
- return gl.uniform1i(location, value);
31
- case 5126:
32
- return gl.uniform1fv(location, arrayValue);
33
- case 35664:
34
- return gl.uniform2fv(location, arrayValue);
35
- case 35665:
36
- return gl.uniform3fv(location, arrayValue);
37
- case 35666:
38
- return gl.uniform4fv(location, arrayValue);
39
- case 5124:
40
- return gl.uniform1iv(location, arrayValue);
41
- case 35667:
42
- return gl.uniform2iv(location, arrayValue);
43
- case 35668:
44
- return gl.uniform3iv(location, arrayValue);
45
- case 35669:
46
- return gl.uniform4iv(location, arrayValue);
47
- case 35670:
48
- return gl.uniform1iv(location, arrayValue);
49
- case 35671:
50
- return gl.uniform2iv(location, arrayValue);
51
- case 35672:
52
- return gl.uniform3iv(location, arrayValue);
53
- case 35673:
54
- return gl.uniform4iv(location, arrayValue);
55
- case 5125:
56
- return gl2.uniform1uiv(location, arrayValue, 1);
57
- case 36294:
58
- return gl2.uniform2uiv(location, arrayValue, 2);
59
- case 36295:
60
- return gl2.uniform3uiv(location, arrayValue, 3);
61
- case 36296:
62
- return gl2.uniform4uiv(location, arrayValue, 4);
63
- case 35674:
64
- return gl.uniformMatrix2fv(location, false, arrayValue);
65
- case 35675:
66
- return gl.uniformMatrix3fv(location, false, arrayValue);
67
- case 35676:
68
- return gl.uniformMatrix4fv(location, false, arrayValue);
69
- case 35685:
70
- return gl2.uniformMatrix2x3fv(location, false, arrayValue);
71
- case 35686:
72
- return gl2.uniformMatrix2x4fv(location, false, arrayValue);
73
- case 35687:
74
- return gl2.uniformMatrix3x2fv(location, false, arrayValue);
75
- case 35688:
76
- return gl2.uniformMatrix3x4fv(location, false, arrayValue);
77
- case 35689:
78
- return gl2.uniformMatrix4x2fv(location, false, arrayValue);
79
- case 35690:
80
- return gl2.uniformMatrix4x3fv(location, false, arrayValue);
81
- }
82
- throw new Error('Illegal uniform');
8
+ const gl2 = gl;
9
+ // Prepare the value for WebGL setters
10
+ let uniformValue = value;
11
+ if (uniformValue === true) {
12
+ uniformValue = 1;
13
+ }
14
+ if (uniformValue === false) {
15
+ uniformValue = 0;
16
+ }
17
+ const arrayValue = typeof uniformValue === 'number' ? [uniformValue] : uniformValue;
18
+ // prettier-ignore
19
+ switch (type) {
20
+ case GL.SAMPLER_2D:
21
+ case GL.SAMPLER_CUBE:
22
+ case GL.SAMPLER_3D:
23
+ case GL.SAMPLER_2D_SHADOW:
24
+ case GL.SAMPLER_2D_ARRAY:
25
+ case GL.SAMPLER_2D_ARRAY_SHADOW:
26
+ case GL.SAMPLER_CUBE_SHADOW:
27
+ case GL.INT_SAMPLER_2D:
28
+ case GL.INT_SAMPLER_3D:
29
+ case GL.INT_SAMPLER_CUBE:
30
+ case GL.INT_SAMPLER_2D_ARRAY:
31
+ case GL.UNSIGNED_INT_SAMPLER_2D:
32
+ case GL.UNSIGNED_INT_SAMPLER_3D:
33
+ case GL.UNSIGNED_INT_SAMPLER_CUBE:
34
+ case GL.UNSIGNED_INT_SAMPLER_2D_ARRAY:
35
+ if (typeof value !== 'number') {
36
+ throw new Error('samplers must be set to integers');
37
+ }
38
+ return gl.uniform1i(location, value);
39
+ case GL.FLOAT: return gl.uniform1fv(location, arrayValue);
40
+ case GL.FLOAT_VEC2: return gl.uniform2fv(location, arrayValue);
41
+ case GL.FLOAT_VEC3: return gl.uniform3fv(location, arrayValue);
42
+ case GL.FLOAT_VEC4: return gl.uniform4fv(location, arrayValue);
43
+ case GL.INT: return gl.uniform1iv(location, arrayValue);
44
+ case GL.INT_VEC2: return gl.uniform2iv(location, arrayValue);
45
+ case GL.INT_VEC3: return gl.uniform3iv(location, arrayValue);
46
+ case GL.INT_VEC4: return gl.uniform4iv(location, arrayValue);
47
+ case GL.BOOL: return gl.uniform1iv(location, arrayValue);
48
+ case GL.BOOL_VEC2: return gl.uniform2iv(location, arrayValue);
49
+ case GL.BOOL_VEC3: return gl.uniform3iv(location, arrayValue);
50
+ case GL.BOOL_VEC4: return gl.uniform4iv(location, arrayValue);
51
+ // WEBGL2 - unsigned integers
52
+ case GL.UNSIGNED_INT: return gl2.uniform1uiv(location, arrayValue, 1);
53
+ case GL.UNSIGNED_INT_VEC2: return gl2.uniform2uiv(location, arrayValue, 2);
54
+ case GL.UNSIGNED_INT_VEC3: return gl2.uniform3uiv(location, arrayValue, 3);
55
+ case GL.UNSIGNED_INT_VEC4: return gl2.uniform4uiv(location, arrayValue, 4);
56
+ // WebGL2 - quadratic matrices
57
+ // false: don't transpose the matrix
58
+ case GL.FLOAT_MAT2: return gl.uniformMatrix2fv(location, false, arrayValue);
59
+ case GL.FLOAT_MAT3: return gl.uniformMatrix3fv(location, false, arrayValue);
60
+ case GL.FLOAT_MAT4: return gl.uniformMatrix4fv(location, false, arrayValue);
61
+ // WebGL2 - rectangular matrices
62
+ case GL.FLOAT_MAT2x3: return gl2.uniformMatrix2x3fv(location, false, arrayValue);
63
+ case GL.FLOAT_MAT2x4: return gl2.uniformMatrix2x4fv(location, false, arrayValue);
64
+ case GL.FLOAT_MAT3x2: return gl2.uniformMatrix3x2fv(location, false, arrayValue);
65
+ case GL.FLOAT_MAT3x4: return gl2.uniformMatrix3x4fv(location, false, arrayValue);
66
+ case GL.FLOAT_MAT4x2: return gl2.uniformMatrix4x2fv(location, false, arrayValue);
67
+ case GL.FLOAT_MAT4x3: return gl2.uniformMatrix4x3fv(location, false, arrayValue);
68
+ }
69
+ throw new Error('Illegal uniform');
83
70
  }
84
- //# sourceMappingURL=set-uniform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-topology-utils.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/webgl-topology-utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,EAAE,EAAE,mBAAmB,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAGhD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,WAAW,CAmB/E;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAAC,QAAQ,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,GAAG,MAAM,CAkBvG;AAGD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IAAC,QAAQ,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,GAAG,MAAM,CAapG;AAED,sCAAsC;AACtC,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,iBAAiB,GAEzB,EAAE,CAAC,MAAM,GACT,EAAE,CAAC,KAAK,GACR,EAAE,CAAC,UAAU,GACb,EAAE,CAAC,SAAS,GACZ,EAAE,CAAC,SAAS,GACZ,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,YAAY,CAYlB;AAED,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAY/F"}
1
+ {"version":3,"file":"webgl-topology-utils.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/webgl-topology-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAE,mBAAmB,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAGhD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,WAAW,CAmB/E;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAkBT;AAGD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAaT;AAED,sCAAsC;AACtC,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,iBAAiB,GAEzB,EAAE,CAAC,MAAM,GACT,EAAE,CAAC,KAAK,GACR,EAAE,CAAC,UAAU,GACb,EAAE,CAAC,SAAS,GACZ,EAAE,CAAC,SAAS,GACZ,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,YAAY,CAYlB;AAED,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAY/F"}
@@ -1,103 +1,88 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { GL } from '@luma.gl/constants';
5
+ // Counts the number of complete primitives given a number of vertices and a drawMode
1
6
  export function getPrimitiveDrawMode(drawMode) {
2
- switch (drawMode) {
3
- case 0:
4
- return 0;
5
- case 1:
6
- return 1;
7
- case 3:
8
- return 1;
9
- case 2:
10
- return 1;
11
- case 4:
12
- return 4;
13
- case 5:
14
- return 4;
15
- case 6:
16
- return 4;
17
- default:
18
- throw new Error('drawMode');
19
- }
7
+ switch (drawMode) {
8
+ case GL.POINTS:
9
+ return GL.POINTS;
10
+ case GL.LINES:
11
+ return GL.LINES;
12
+ case GL.LINE_STRIP:
13
+ return GL.LINES;
14
+ case GL.LINE_LOOP:
15
+ return GL.LINES;
16
+ case GL.TRIANGLES:
17
+ return GL.TRIANGLES;
18
+ case GL.TRIANGLE_STRIP:
19
+ return GL.TRIANGLES;
20
+ case GL.TRIANGLE_FAN:
21
+ return GL.TRIANGLES;
22
+ default:
23
+ throw new Error('drawMode');
24
+ }
20
25
  }
26
+ // Counts the number of complete "primitives" given a number of vertices and a drawMode
21
27
  export function getPrimitiveCount(options) {
22
- const {
23
- drawMode,
24
- vertexCount
25
- } = options;
26
- switch (drawMode) {
27
- case 0:
28
- case 2:
29
- return vertexCount;
30
- case 1:
31
- return vertexCount / 2;
32
- case 3:
33
- return vertexCount - 1;
34
- case 4:
35
- return vertexCount / 3;
36
- case 5:
37
- case 6:
38
- return vertexCount - 2;
39
- default:
40
- throw new Error('drawMode');
41
- }
28
+ const { drawMode, vertexCount } = options;
29
+ switch (drawMode) {
30
+ case GL.POINTS:
31
+ case GL.LINE_LOOP:
32
+ return vertexCount;
33
+ case GL.LINES:
34
+ return vertexCount / 2;
35
+ case GL.LINE_STRIP:
36
+ return vertexCount - 1;
37
+ case GL.TRIANGLES:
38
+ return vertexCount / 3;
39
+ case GL.TRIANGLE_STRIP:
40
+ case GL.TRIANGLE_FAN:
41
+ return vertexCount - 2;
42
+ default:
43
+ throw new Error('drawMode');
44
+ }
42
45
  }
46
+ // Counts the number of vertices after splitting the vertex stream into separate "primitives"
43
47
  export function getVertexCount(options) {
44
- const {
45
- drawMode,
46
- vertexCount
47
- } = options;
48
- const primitiveCount = getPrimitiveCount({
49
- drawMode,
50
- vertexCount
51
- });
52
- switch (getPrimitiveDrawMode(drawMode)) {
53
- case 0:
54
- return primitiveCount;
55
- case 1:
56
- return primitiveCount * 2;
57
- case 4:
58
- return primitiveCount * 3;
59
- default:
60
- throw new Error('drawMode');
61
- }
48
+ const { drawMode, vertexCount } = options;
49
+ const primitiveCount = getPrimitiveCount({ drawMode, vertexCount });
50
+ switch (getPrimitiveDrawMode(drawMode)) {
51
+ case GL.POINTS:
52
+ return primitiveCount;
53
+ case GL.LINES:
54
+ return primitiveCount * 2;
55
+ case GL.TRIANGLES:
56
+ return primitiveCount * 3;
57
+ default:
58
+ throw new Error('drawMode');
59
+ }
62
60
  }
61
+ /** Get the primitive type for draw */
63
62
  export function getGLDrawMode(topology) {
64
- switch (topology) {
65
- case 'point-list':
66
- return 0;
67
- case 'line-list':
68
- return 1;
69
- case 'line-strip':
70
- return 3;
71
- case 'line-loop-webgl':
72
- return 2;
73
- case 'triangle-list':
74
- return 4;
75
- case 'triangle-strip':
76
- return 5;
77
- case 'triangle-fan-webgl':
78
- return 6;
79
- default:
80
- throw new Error(topology);
81
- }
63
+ // prettier-ignore
64
+ switch (topology) {
65
+ case 'point-list': return GL.POINTS;
66
+ case 'line-list': return GL.LINES;
67
+ case 'line-strip': return GL.LINE_STRIP;
68
+ case 'line-loop-webgl': return GL.LINE_LOOP;
69
+ case 'triangle-list': return GL.TRIANGLES;
70
+ case 'triangle-strip': return GL.TRIANGLE_STRIP;
71
+ case 'triangle-fan-webgl': return GL.TRIANGLE_FAN;
72
+ default: throw new Error(topology);
73
+ }
82
74
  }
75
+ /** Get the primitive type for transform feedback */
83
76
  export function getGLPrimitive(topology) {
84
- switch (topology) {
85
- case 'point-list':
86
- return 0;
87
- case 'line-list':
88
- return 1;
89
- case 'line-strip':
90
- return 1;
91
- case 'line-loop-webgl':
92
- return 1;
93
- case 'triangle-list':
94
- return 4;
95
- case 'triangle-strip':
96
- return 4;
97
- case 'triangle-fan-webgl':
98
- return 4;
99
- default:
100
- throw new Error(topology);
101
- }
77
+ // prettier-ignore
78
+ switch (topology) {
79
+ case 'point-list': return GL.POINTS;
80
+ case 'line-list': return GL.LINES;
81
+ case 'line-strip': return GL.LINES;
82
+ case 'line-loop-webgl': return GL.LINES;
83
+ case 'triangle-list': return GL.TRIANGLES;
84
+ case 'triangle-strip': return GL.TRIANGLES;
85
+ case 'triangle-fan-webgl': return GL.TRIANGLES;
86
+ default: throw new Error(topology);
87
+ }
102
88
  }
103
- //# sourceMappingURL=webgl-topology-utils.js.map
@@ -1,3 +1,3 @@
1
1
  import { GL } from '@luma.gl/constants';
2
- export declare function getKeyValue(gl: WebGLRenderingContext, name: string | GL): GL;
2
+ export declare function getKeyValue(gl: WebGL2RenderingContext, name: string | GL): GL;
3
3
  //# sourceMappingURL=constants-to-keys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-to-keys.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/constants-to-keys.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAGtC,wBAAgB,WAAW,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,CAkB5E"}
1
+ {"version":3,"file":"constants-to-keys.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/constants-to-keys.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAGtC,wBAAgB,WAAW,CAAC,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,CAkB7E"}
@@ -1,15 +1,22 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { assert } from '@luma.gl/core';
5
+ // Resolve a WebGL enumeration name (returns itself if already a number)
2
6
  export function getKeyValue(gl, name) {
3
- if (typeof name !== 'string') {
4
- return name;
5
- }
6
- const number = Number(name);
7
- if (!isNaN(number)) {
8
- return number;
9
- }
10
- name = name.replace(/^.*\./, '');
11
- const value = gl[name];
12
- assert(value !== undefined, `Accessing undefined constant GL.${name}`);
13
- return value;
7
+ // If not a string, return (assume number)
8
+ if (typeof name !== 'string') {
9
+ return name;
10
+ }
11
+ // If string converts to number, return number
12
+ const number = Number(name);
13
+ if (!isNaN(number)) {
14
+ return number;
15
+ }
16
+ // Look up string, after removing any 'GL.' or 'gl.' prefix
17
+ name = name.replace(/^.*\./, '');
18
+ // @ts-ignore expect-error depends on settings
19
+ const value = gl[name];
20
+ assert(value !== undefined, `Accessing undefined constant GL.${name}`);
21
+ return value;
14
22
  }
15
- //# sourceMappingURL=constants-to-keys.js.map
@@ -1,7 +1,7 @@
1
1
  import { ResourceProps, TextureFormat } from '@luma.gl/core';
2
2
  import { GL } from '@luma.gl/constants';
3
- import { WebGLDevice } from '../webgl-device';
4
- import { WebGLResource } from './webgl-resource';
3
+ import { WebGLDevice } from "../webgl-device.js";
4
+ import { WebGLResource } from "./webgl-resource.js";
5
5
  export type RenderbufferProps = ResourceProps & {
6
6
  format: TextureFormat;
7
7
  width?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-renderbuffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,aAAa,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AACnE,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAI/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACrE,gBAAyB,YAAY,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAQhE;IAEF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAA2B;IAEtE,IAAI,KAAK,IAAI,MAAM,CAA6B;IAChD,IAAI,MAAM,IAAI,MAAM,CAA8B;IAClD,IAAI,MAAM,IAAI,aAAa,CAA8B;IACzD,IAAI,OAAO,IAAI,MAAM,CAA+B;IACpD,IAAI,UAAU,SAAc;IAE5B,4BAA4B;IAC5B,QAAQ,EAAE,EAAE,CAAC;IAEb,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO;gBAIxE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB;IAUzD,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAUnD,iEAAiE;IACjE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAuBtD,aAAa;IAIb,aAAa,IAAI,IAAI;IAKrB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAGtD"}
1
+ {"version":3,"file":"webgl-renderbuffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,aAAa,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AACnE,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAC5C,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAO/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACrE,gBAAyB,YAAY,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAQhE;IAEF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,IAAI,aAAa,CAE1B;IACD,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,UAAU,SAEb;IAED,4BAA4B;IAC5B,QAAQ,EAAE,EAAE,CAAC;IAEb,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO;gBAIxE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB;IAUzD,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAUnD,iEAAiE;IACjE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI;IA6BtD,aAAa;IAIb,aAAa,IAAI,IAAI;IAKrB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAGtD"}
@@ -1,86 +1,95 @@
1
- let _Symbol$toStringTag;
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
2
4
  import { assert } from '@luma.gl/core';
5
+ import { GL } from '@luma.gl/constants';
3
6
  import { WebGLResource } from "./webgl-resource.js";
4
7
  import { isRenderbufferFormatSupported } from "../converters/texture-formats.js";
5
8
  import { convertTextureFormatToGL, getTextureFormatBytesPerPixel } from "../converters/texture-formats.js";
6
- _Symbol$toStringTag = Symbol.toStringTag;
9
+ /**
10
+ * Renderbuffers are GPU objects that contain images.
11
+ * In contrast to Textures they are optimized for use as render targets, with Framebuffers.
12
+ * while Textures may not be, and are the logical choice when
13
+ * you do not need to sample (i.e. in a post-pass shader)
14
+ * from the produced image. If you need to resample
15
+ * (such as when reading depth back in a second shader pass),
16
+ * use Textures instead.
17
+ * Renderbuffer objects also natively accommodate Multisampling (MSAA).
18
+ */
7
19
  export class WEBGLRenderbuffer extends WebGLResource {
8
- get [_Symbol$toStringTag]() {
9
- return 'Renderbuffer';
10
- }
11
- get width() {
12
- return this.props.width;
13
- }
14
- get height() {
15
- return this.props.height;
16
- }
17
- get format() {
18
- return this.props.format;
19
- }
20
- get samples() {
21
- return this.props.samples;
22
- }
23
- get attachment() {
24
- return;
25
- }
26
- static isTextureFormatSupported(device, format) {
27
- return isRenderbufferFormatSupported(device.gl, format);
28
- }
29
- constructor(device, props) {
30
- if (typeof props.format === 'number') {
31
- throw new Error('Renderbuffer');
20
+ static defaultProps = {
21
+ id: undefined,
22
+ handle: undefined,
23
+ userData: undefined,
24
+ format: undefined, // 'depth16unorm'
25
+ width: 1,
26
+ height: 1,
27
+ samples: 0
28
+ };
29
+ get [Symbol.toStringTag]() {
30
+ return 'Renderbuffer';
32
31
  }
33
- super(device, props, WEBGLRenderbuffer.defaultProps);
34
- this.glFormat = void 0;
35
- this.glFormat = convertTextureFormatToGL(this.props.format, device.isWebGL2);
36
- this._initialize(this.props);
37
- }
38
- resize(size) {
39
- if (size.width !== this.width || size.height !== this.height) {
40
- Object.assign(this.props, {
41
- ...size,
42
- format: this.format,
43
- samples: this.samples
44
- });
45
- this._initialize(this.props);
32
+ get width() {
33
+ return this.props.width;
46
34
  }
47
- }
48
- _initialize(props) {
49
- const {
50
- format,
51
- width,
52
- height,
53
- samples
54
- } = props;
55
- assert(format, 'Needs format');
56
- this.trackDeallocatedMemory();
57
- this.gl.bindRenderbuffer(36161, this.handle);
58
- if (samples !== 0 && this.device.isWebGL2) {
59
- this.gl2.renderbufferStorageMultisample(36161, samples, this.glFormat, width, height);
60
- } else {
61
- this.gl.renderbufferStorage(36161, this.glFormat, width, height);
35
+ get height() {
36
+ return this.props.height;
37
+ }
38
+ get format() {
39
+ return this.props.format;
40
+ }
41
+ get samples() {
42
+ return this.props.samples;
43
+ }
44
+ get attachment() {
45
+ return;
46
+ }
47
+ /** WebGL format constant */
48
+ glFormat;
49
+ static isTextureFormatSupported(device, format) {
50
+ return isRenderbufferFormatSupported(device.gl, format, device._extensions);
51
+ }
52
+ constructor(device, props) {
53
+ // TODO - remove temporary sanity check
54
+ if (typeof props.format === 'number') {
55
+ throw new Error('Renderbuffer');
56
+ }
57
+ super(device, props, WEBGLRenderbuffer.defaultProps);
58
+ this.glFormat = convertTextureFormatToGL(this.props.format);
59
+ this._initialize(this.props);
60
+ }
61
+ resize(size) {
62
+ // Don't resize if width/height haven't changed
63
+ if (size.width !== this.width || size.height !== this.height) {
64
+ Object.assign(this.props, { ...size, format: this.format, samples: this.samples });
65
+ this._initialize(this.props);
66
+ }
67
+ }
68
+ // PRIVATE METHODS
69
+ /** Creates and initializes a renderbuffer object's data store */
70
+ _initialize(props) {
71
+ const { format, width, height, samples } = props;
72
+ assert(format, 'Needs format');
73
+ this.trackDeallocatedMemory();
74
+ this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
75
+ if (samples !== 0) {
76
+ this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, this.glFormat, width, height);
77
+ }
78
+ else {
79
+ this.gl.renderbufferStorage(GL.RENDERBUFFER, this.glFormat, width, height);
80
+ }
81
+ this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
82
+ this.trackAllocatedMemory(width * height * (samples || 1) * getTextureFormatBytesPerPixel(this.glFormat));
83
+ }
84
+ // RESOURCE IMPLEMENTATION
85
+ _createHandle() {
86
+ return this.gl.createRenderbuffer();
87
+ }
88
+ _deleteHandle() {
89
+ this.gl.deleteRenderbuffer(this.handle);
90
+ this.trackDeallocatedMemory();
91
+ }
92
+ _bindHandle(handle) {
93
+ this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
62
94
  }
63
- this.gl.bindRenderbuffer(36161, null);
64
- this.trackAllocatedMemory(width * height * (samples || 1) * getTextureFormatBytesPerPixel(this.glFormat, this.device.isWebGL2));
65
- }
66
- _createHandle() {
67
- return this.gl.createRenderbuffer();
68
- }
69
- _deleteHandle() {
70
- this.gl.deleteRenderbuffer(this.handle);
71
- this.trackDeallocatedMemory();
72
- }
73
- _bindHandle(handle) {
74
- this.gl.bindRenderbuffer(36161, handle);
75
- }
76
95
  }
77
- WEBGLRenderbuffer.defaultProps = {
78
- id: undefined,
79
- handle: undefined,
80
- userData: undefined,
81
- format: undefined,
82
- width: 1,
83
- height: 1,
84
- samples: 0
85
- };
86
- //# sourceMappingURL=webgl-renderbuffer.js.map
@@ -1,13 +1,13 @@
1
- import { Resource } from '@luma.gl/core';
2
1
  import type { Device, ResourceProps } from '@luma.gl/core';
2
+ import { Resource } from '@luma.gl/core';
3
3
  import { GL } from '@luma.gl/constants';
4
- import { WebGLDevice } from '../webgl-device';
4
+ import { WebGLDevice } from "../webgl-device.js";
5
5
  /**
6
6
  * Base class for WebGL object wrappers
7
7
  */
8
8
  export declare abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {
9
9
  readonly device: WebGLDevice;
10
- readonly gl: WebGLRenderingContext;
10
+ readonly gl: WebGL2RenderingContext;
11
11
  readonly gl2: WebGL2RenderingContext;
12
12
  private _handle;
13
13
  private _bound;
@@ -20,28 +20,6 @@ export declare abstract class WebGLResource<Props extends ResourceProps> extends
20
20
  }): this;
21
21
  bind(funcOrHandle?: any): any;
22
22
  unbind(): void;
23
- /**
24
- * Query a Resource parameter
25
- *
26
- * @param name
27
- * @return param
28
- */
29
- getParameter(pname: number, props?: any): any;
30
- getParameters(options?: {
31
- parameters?: any;
32
- keys?: any;
33
- }): Record<string, any>;
34
- /**
35
- * Update a Resource setting
36
- *
37
- * @todo - cache parameter to avoid issuing WebGL calls?
38
- *
39
- * @param pname - parameter (GL constant, value or key)
40
- * @param value {GLint|GLfloat|GLenum}
41
- * @return returns self to enable chaining
42
- */
43
- setParameter(pname: GL | string, value: any): this;
44
- setParameters(parameters: Record<GL, any>): this;
45
23
  stubRemovedMethods(className: string, version: string, methodNames: string[]): void;
46
24
  initialize(props: ResourceProps): void;
47
25
  _createHandle(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-resource.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-resource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,QAAQ,EAAkC,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AACzD,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAEtC,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAO5C;;GAEG;AACH,8BAAsB,aAAa,CAAC,KAAK,SAAS,aAAa,CAAE,SAAQ,QAAQ,CAAC,KAAK,CAAC;IACtF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;IACrC,OAAO,CAAC,OAAO,CAAM;IAErB,OAAO,CAAC,MAAM,CAAS;IAEvB,UAAU,SAAK;gBAEH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC;IA6B9D,QAAQ,IAAI,MAAM;IAI3B,IAAI,MAAM,QAWT;IAEQ,MAAM,CAAC,EAAC,cAAsB,EAAC;;KAAK;IAmB7C,IAAI,CAAC,YAAY,MAAc;IAuB/B,MAAM;IAIN;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,GAAQ,GAAG,GAAG;IAiCjD,aAAa,CAAC,OAAO,GAAE;QAAC,UAAU,CAAC,EAAE,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAM;IAoC1D;;;;;;;;OAQG;IACH,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAqClD,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IAQzC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAK5E,UAAU,CAAC,KAAK,EAAE,aAAa;IAG/B,aAAa;IAIb,aAAa;IAIb,WAAW,CAAC,MAAM,EAAE,GAAG;IAIvB,kBAAkB;IAIlB,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAI5D,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG;CAuC7C"}
1
+ {"version":3,"file":"webgl-resource.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-resource.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AACzD,OAAO,EAAC,QAAQ,EAA0B,MAAM,eAAe,CAAC;AAChE,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAI5C;;GAEG;AACH,8BAAsB,aAAa,CAAC,KAAK,SAAS,aAAa,CAAE,SAAQ,QAAQ,CAAC,KAAK,CAAC;IACtF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,sBAAsB,CAAC;IACpC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;IACrC,OAAO,CAAC,OAAO,CAAM;IAErB,OAAO,CAAC,MAAM,CAAS;IAEvB,UAAU,SAAK;gBAEH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC;IA2B9D,QAAQ,IAAI,MAAM;IAI3B,IAAI,MAAM,QAWT;IAEQ,MAAM,CAAC,EAAC,cAAsB,EAAC;;KAAK;IAmB7C,IAAI,CAAC,YAAY,MAAc;IAuB/B,MAAM;IAKN,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAK5E,UAAU,CAAC,KAAK,EAAE,aAAa;IAG/B,aAAa;IAIb,aAAa;IAIb,WAAW,CAAC,MAAM,EAAE,GAAG;IAIvB,kBAAkB;IAIlB,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAI5D,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG;CAuC7C"}