@luma.gl/webgl 8.6.0-alpha.1 → 8.6.0-alpha.5

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 (701) hide show
  1. package/LICENSE +8 -1
  2. package/dist/_deprecated/context-api.d.ts +85 -0
  3. package/dist/_deprecated/context-api.d.ts.map +1 -0
  4. package/dist/_deprecated/context-api.js +76 -0
  5. package/dist/_deprecated/context-api.js.map +1 -0
  6. package/dist/{features/webgl-features-table.d.ts → _deprecated/features.d.ts} +4 -7
  7. package/dist/_deprecated/features.d.ts.map +1 -0
  8. package/dist/_deprecated/features.js +111 -0
  9. package/dist/_deprecated/features.js.map +1 -0
  10. package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
  11. package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
  12. package/dist/adapter/converters/set-device-parameters.js +124 -0
  13. package/dist/adapter/converters/set-device-parameters.js.map +1 -0
  14. package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
  15. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
  16. package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
  17. package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
  18. package/dist/adapter/device-helpers/device-features.d.ts +12 -0
  19. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
  20. package/dist/adapter/device-helpers/device-features.js +123 -0
  21. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  22. package/dist/adapter/device-helpers/device-limits.d.ts +51 -0
  23. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
  24. package/dist/adapter/device-helpers/device-limits.js +90 -0
  25. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  26. package/dist/adapter/device-helpers/get-device-info.d.ts +4 -0
  27. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
  28. package/dist/adapter/device-helpers/get-device-info.js +44 -0
  29. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  30. package/dist/adapter/device-helpers/is-old-ie.d.ts +2 -0
  31. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
  32. package/dist/{esm/features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  33. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  34. package/dist/adapter/webgl-device.d.ts +110 -0
  35. package/dist/adapter/webgl-device.d.ts.map +1 -0
  36. package/dist/adapter/webgl-device.js +207 -0
  37. package/dist/adapter/webgl-device.js.map +1 -0
  38. package/dist/adapter/webgl-shader.d.ts +18 -0
  39. package/dist/adapter/webgl-shader.d.ts.map +1 -0
  40. package/dist/adapter/webgl-shader.js +82 -0
  41. package/dist/adapter/webgl-shader.js.map +1 -0
  42. package/dist/classes/accessor.js +2 -2
  43. package/dist/classes/accessor.js.map +1 -1
  44. package/dist/classes/accessor.ts.disabled +1 -1
  45. package/dist/classes/clear.d.ts +3 -2
  46. package/dist/classes/clear.d.ts.map +1 -1
  47. package/dist/classes/clear.js +7 -4
  48. package/dist/classes/clear.js.map +1 -1
  49. package/dist/classes/copy-and-blit.d.ts +18 -1
  50. package/dist/classes/copy-and-blit.d.ts.map +1 -1
  51. package/dist/classes/copy-and-blit.js +30 -25
  52. package/dist/classes/copy-and-blit.js.map +1 -1
  53. package/dist/classes/framebuffer.d.ts +10 -1
  54. package/dist/classes/framebuffer.d.ts.map +1 -1
  55. package/dist/classes/framebuffer.js +15 -15
  56. package/dist/classes/framebuffer.js.map +1 -1
  57. package/dist/classes/program-configuration.d.ts +14 -17
  58. package/dist/classes/program-configuration.d.ts.map +1 -1
  59. package/dist/classes/program-configuration.js +10 -97
  60. package/dist/classes/program-configuration.js.map +1 -1
  61. package/dist/classes/program.d.ts +25 -20
  62. package/dist/classes/program.d.ts.map +1 -1
  63. package/dist/classes/program.js +39 -28
  64. package/dist/classes/program.js.map +1 -1
  65. package/dist/classes/query.d.ts.map +1 -1
  66. package/dist/classes/query.js +6 -5
  67. package/dist/classes/query.js.map +1 -1
  68. package/dist/classes/renderbuffer-formats.js +1 -1
  69. package/dist/classes/renderbuffer-formats.js.map +1 -1
  70. package/dist/classes/renderbuffer.d.ts.map +1 -1
  71. package/dist/classes/renderbuffer.js +4 -3
  72. package/dist/classes/renderbuffer.js.map +1 -1
  73. package/dist/classes/{webgl-shader.d.ts → shader.d.ts} +4 -13
  74. package/dist/classes/shader.d.ts.map +1 -0
  75. package/dist/classes/{webgl-shader.js → shader.js} +7 -79
  76. package/dist/classes/shader.js.map +1 -0
  77. package/dist/classes/texture-2d.d.ts +4 -3
  78. package/dist/classes/texture-2d.d.ts.map +1 -1
  79. package/dist/classes/texture-2d.js +5 -8
  80. package/dist/classes/texture-2d.js.map +1 -1
  81. package/dist/classes/texture-3d.d.ts +3 -2
  82. package/dist/classes/texture-3d.d.ts.map +1 -1
  83. package/dist/classes/texture-3d.js +15 -6
  84. package/dist/classes/texture-3d.js.map +1 -1
  85. package/dist/classes/texture-cube.d.ts +2 -1
  86. package/dist/classes/texture-cube.d.ts.map +1 -1
  87. package/dist/classes/texture-cube.js +3 -4
  88. package/dist/classes/texture-cube.js.map +1 -1
  89. package/dist/classes/texture-formats.js +1 -1
  90. package/dist/classes/texture-formats.js.map +1 -1
  91. package/dist/classes/texture.d.ts +14 -9
  92. package/dist/classes/texture.d.ts.map +1 -1
  93. package/dist/classes/texture.js +19 -18
  94. package/dist/classes/texture.js.map +1 -1
  95. package/dist/classes/transform-feedback.d.ts.map +1 -1
  96. package/dist/classes/transform-feedback.js +5 -4
  97. package/dist/classes/transform-feedback.js.map +1 -1
  98. package/dist/classes/uniform-buffer-layout.js +1 -1
  99. package/dist/classes/uniform-buffer-layout.js.map +1 -1
  100. package/dist/classes/uniforms.d.ts +0 -1
  101. package/dist/classes/uniforms.d.ts.map +1 -1
  102. package/dist/classes/uniforms.js +1 -2
  103. package/dist/classes/uniforms.js.map +1 -1
  104. package/dist/classes/vertex-array-object.d.ts +7 -6
  105. package/dist/classes/vertex-array-object.d.ts.map +1 -1
  106. package/dist/classes/vertex-array-object.js +11 -12
  107. package/dist/classes/vertex-array-object.js.map +1 -1
  108. package/dist/classes/vertex-array.d.ts +14 -14
  109. package/dist/classes/vertex-array.d.ts.map +1 -1
  110. package/dist/classes/vertex-array.js +3 -4
  111. package/dist/classes/vertex-array.js.map +1 -1
  112. package/dist/classes/webgl-buffer.d.ts +2 -0
  113. package/dist/classes/webgl-buffer.d.ts.map +1 -1
  114. package/dist/classes/webgl-buffer.js +8 -5
  115. package/dist/classes/webgl-buffer.js.map +1 -1
  116. package/dist/classes/webgl-resource.d.ts +6 -4
  117. package/dist/classes/webgl-resource.d.ts.map +1 -1
  118. package/dist/classes/webgl-resource.js +12 -8
  119. package/dist/classes/webgl-resource.js.map +1 -1
  120. package/dist/context/context/context-state.d.ts +18 -0
  121. package/dist/context/context/context-state.d.ts.map +1 -0
  122. package/dist/context/context/context-state.js +26 -0
  123. package/dist/context/context/context-state.js.map +1 -0
  124. package/dist/context/context/create-context.d.ts +40 -0
  125. package/dist/context/context/create-context.d.ts.map +1 -0
  126. package/dist/context/context/create-context.js +37 -0
  127. package/dist/context/context/create-context.js.map +1 -0
  128. package/dist/context/context/device-pixels.d.ts +25 -0
  129. package/dist/context/context/device-pixels.d.ts.map +1 -0
  130. package/dist/context/context/device-pixels.js +98 -0
  131. package/dist/context/context/device-pixels.js.map +1 -0
  132. package/dist/context/context/get-canvas.d.ts +13 -0
  133. package/dist/context/context/get-canvas.d.ts.map +1 -0
  134. package/dist/context/context/get-canvas.js +31 -0
  135. package/dist/context/context/get-canvas.js.map +1 -0
  136. package/dist/context/context/resize-context.d.ts +20 -0
  137. package/dist/context/context/resize-context.d.ts.map +1 -0
  138. package/dist/context/context/resize-context.js +15 -0
  139. package/dist/context/context/resize-context.js.map +1 -0
  140. package/dist/context/context/webgl-checks.d.ts +13 -0
  141. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  142. package/dist/context/context/webgl-checks.js +34 -0
  143. package/dist/context/context/webgl-checks.js.map +1 -0
  144. package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
  145. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  146. package/dist/context/parameters/unified-parameter-api.js +65 -0
  147. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  148. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  149. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  150. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  151. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  152. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  153. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  154. package/dist/context/parameters/webgl-parameters.js +2 -0
  155. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  156. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  157. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  158. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  159. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  160. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  161. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  162. package/dist/context/polyfill/polyfill-context.js +91 -0
  163. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  164. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  165. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  166. package/dist/context/polyfill/polyfill-table.js +160 -0
  167. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  168. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  169. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  170. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  171. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  172. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  173. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  174. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  175. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  176. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  177. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  178. package/dist/context/state-tracker/track-context-state.js +169 -0
  179. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  180. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  181. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  182. package/dist/context/state-tracker/with-parameters.js +36 -0
  183. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  184. package/dist/debug/debug-uniforms.js +1 -1
  185. package/dist/debug/debug-uniforms.js.map +1 -1
  186. package/dist/debug/debug-vertex-array.js +2 -2
  187. package/dist/debug/debug-vertex-array.js.map +1 -1
  188. package/dist/es5/_deprecated/context-api.js +116 -0
  189. package/dist/es5/_deprecated/context-api.js.map +1 -0
  190. package/dist/es5/_deprecated/features.js +118 -0
  191. package/dist/es5/_deprecated/features.js.map +1 -0
  192. package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
  193. package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
  194. package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
  195. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
  196. package/dist/es5/adapter/device-helpers/device-features.js +152 -0
  197. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
  198. package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
  199. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
  200. package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
  201. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
  202. package/dist/es5/adapter/device-helpers/is-old-ie.js +16 -0
  203. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
  204. package/dist/es5/adapter/webgl-device.js +279 -0
  205. package/dist/es5/adapter/webgl-device.js.map +1 -0
  206. package/dist/es5/adapter/webgl-shader.js +155 -0
  207. package/dist/es5/adapter/webgl-shader.js.map +1 -0
  208. package/dist/es5/bundle.js +1 -1
  209. package/dist/es5/bundle.js.map +1 -1
  210. package/dist/es5/classes/accessor.js +104 -74
  211. package/dist/es5/classes/accessor.js.map +1 -1
  212. package/dist/es5/classes/accessor.ts.disabled +1 -1
  213. package/dist/es5/classes/clear.js +55 -34
  214. package/dist/es5/classes/clear.js.map +1 -1
  215. package/dist/es5/classes/copy-and-blit.js +175 -156
  216. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  217. package/dist/es5/classes/framebuffer.js +647 -518
  218. package/dist/es5/classes/framebuffer.js.map +1 -1
  219. package/dist/es5/classes/program-configuration.js +78 -128
  220. package/dist/es5/classes/program-configuration.js.map +1 -1
  221. package/dist/es5/classes/program.js +379 -292
  222. package/dist/es5/classes/program.js.map +1 -1
  223. package/dist/es5/classes/query.js +172 -107
  224. package/dist/es5/classes/query.js.map +1 -1
  225. package/dist/es5/classes/renderbuffer-formats.js +126 -164
  226. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  227. package/dist/es5/classes/renderbuffer.js +151 -98
  228. package/dist/es5/classes/renderbuffer.js.map +1 -1
  229. package/dist/es5/classes/shader.js +195 -0
  230. package/dist/es5/classes/shader.js.map +1 -0
  231. package/dist/es5/classes/texture-2d.js +44 -17
  232. package/dist/es5/classes/texture-2d.js.map +1 -1
  233. package/dist/es5/classes/texture-3d.js +107 -48
  234. package/dist/es5/classes/texture-3d.js.map +1 -1
  235. package/dist/es5/classes/texture-cube.js +169 -110
  236. package/dist/es5/classes/texture-cube.js.map +1 -1
  237. package/dist/es5/classes/texture-formats.js +42 -71
  238. package/dist/es5/classes/texture-formats.js.map +1 -1
  239. package/dist/es5/classes/texture.js +780 -665
  240. package/dist/es5/classes/texture.js.map +1 -1
  241. package/dist/es5/classes/transform-feedback.js +206 -150
  242. package/dist/es5/classes/transform-feedback.js.map +1 -1
  243. package/dist/es5/classes/uniform-buffer-layout.js +103 -89
  244. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  245. package/dist/es5/classes/uniforms.js +39 -80
  246. package/dist/es5/classes/uniforms.js.map +1 -1
  247. package/dist/es5/classes/vertex-array-object.js +268 -209
  248. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  249. package/dist/es5/classes/vertex-array.js +348 -303
  250. package/dist/es5/classes/vertex-array.js.map +1 -1
  251. package/dist/es5/classes/webgl-buffer.js +374 -303
  252. package/dist/es5/classes/webgl-buffer.js.map +1 -1
  253. package/dist/es5/classes/webgl-resource.js +231 -161
  254. package/dist/es5/classes/webgl-resource.js.map +1 -1
  255. package/dist/es5/context/context/context-state.js +31 -0
  256. package/dist/es5/context/context/context-state.js.map +1 -0
  257. package/dist/es5/context/context/create-context.js +57 -0
  258. package/dist/es5/context/context/create-context.js.map +1 -0
  259. package/dist/es5/context/context/device-pixels.js +115 -0
  260. package/dist/es5/context/context/device-pixels.js.map +1 -0
  261. package/dist/es5/context/context/get-canvas.js +40 -0
  262. package/dist/es5/context/context/get-canvas.js.map +1 -0
  263. package/dist/es5/context/context/resize-context.js +23 -0
  264. package/dist/es5/context/context/resize-context.js.map +1 -0
  265. package/dist/es5/context/context/webgl-checks.js +54 -0
  266. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  267. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  268. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  269. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  270. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  271. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  272. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  273. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  274. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  275. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  276. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  277. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  278. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  279. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  280. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  281. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  282. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  283. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  284. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  285. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  286. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  287. package/dist/es5/debug/debug-program-configuration.js +48 -20
  288. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  289. package/dist/es5/debug/debug-uniforms.js +110 -70
  290. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  291. package/dist/es5/debug/debug-vertex-array.js +49 -54
  292. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  293. package/dist/es5/helpers/get-program-bindings.js +274 -0
  294. package/dist/es5/helpers/get-program-bindings.js.map +1 -0
  295. package/dist/es5/helpers/program-bindings.js +2 -0
  296. package/dist/es5/helpers/program-bindings.js.map +1 -0
  297. package/dist/es5/index.js +268 -192
  298. package/dist/es5/index.js.map +1 -1
  299. package/dist/es5/init.js +18 -14
  300. package/dist/es5/init.js.map +1 -1
  301. package/dist/es5/types/accessor.d.ts +29 -0
  302. package/dist/es5/webgl-utils/attribute-utils.js +74 -87
  303. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  304. package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
  305. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  306. package/dist/es5/webgl-utils/format-utils.js +4 -4
  307. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  308. package/dist/es5/webgl-utils/get-error.js +18 -18
  309. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  310. package/dist/es5/webgl-utils/index.js +10 -10
  311. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +53 -25
  312. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -1
  313. package/dist/es5/webgl-utils/texture-utils.js +32 -36
  314. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  315. package/dist/es5/webgl-utils/typed-array-utils.js +33 -32
  316. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  317. package/dist/esm/_deprecated/context-api.js +76 -0
  318. package/dist/esm/_deprecated/context-api.js.map +1 -0
  319. package/dist/esm/_deprecated/features.js +111 -0
  320. package/dist/esm/_deprecated/features.js.map +1 -0
  321. package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
  322. package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
  323. package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
  324. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
  325. package/dist/esm/adapter/device-helpers/device-features.js +123 -0
  326. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
  327. package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
  328. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
  329. package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
  330. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
  331. package/dist/{features/check-old-ie.js → esm/adapter/device-helpers/is-old-ie.js} +3 -3
  332. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
  333. package/dist/esm/adapter/webgl-device.js +207 -0
  334. package/dist/esm/adapter/webgl-device.js.map +1 -0
  335. package/dist/esm/adapter/webgl-shader.js +82 -0
  336. package/dist/esm/adapter/webgl-shader.js.map +1 -0
  337. package/dist/esm/classes/accessor.js +2 -2
  338. package/dist/esm/classes/accessor.js.map +1 -1
  339. package/dist/esm/classes/accessor.ts.disabled +1 -1
  340. package/dist/esm/classes/clear.js +7 -4
  341. package/dist/esm/classes/clear.js.map +1 -1
  342. package/dist/esm/classes/copy-and-blit.js +30 -25
  343. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  344. package/dist/esm/classes/framebuffer.js +15 -15
  345. package/dist/esm/classes/framebuffer.js.map +1 -1
  346. package/dist/esm/classes/program-configuration.js +10 -97
  347. package/dist/esm/classes/program-configuration.js.map +1 -1
  348. package/dist/esm/classes/program.js +39 -28
  349. package/dist/esm/classes/program.js.map +1 -1
  350. package/dist/esm/classes/query.js +6 -5
  351. package/dist/esm/classes/query.js.map +1 -1
  352. package/dist/esm/classes/renderbuffer-formats.js +1 -1
  353. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  354. package/dist/esm/classes/renderbuffer.js +4 -3
  355. package/dist/esm/classes/renderbuffer.js.map +1 -1
  356. package/dist/esm/classes/{webgl-shader.js → shader.js} +7 -79
  357. package/dist/esm/classes/shader.js.map +1 -0
  358. package/dist/esm/classes/texture-2d.js +5 -8
  359. package/dist/esm/classes/texture-2d.js.map +1 -1
  360. package/dist/esm/classes/texture-3d.js +15 -6
  361. package/dist/esm/classes/texture-3d.js.map +1 -1
  362. package/dist/esm/classes/texture-cube.js +3 -4
  363. package/dist/esm/classes/texture-cube.js.map +1 -1
  364. package/dist/esm/classes/texture-formats.js +1 -1
  365. package/dist/esm/classes/texture-formats.js.map +1 -1
  366. package/dist/esm/classes/texture.js +19 -18
  367. package/dist/esm/classes/texture.js.map +1 -1
  368. package/dist/esm/classes/transform-feedback.js +5 -4
  369. package/dist/esm/classes/transform-feedback.js.map +1 -1
  370. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  371. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  372. package/dist/esm/classes/uniforms.js +1 -2
  373. package/dist/esm/classes/uniforms.js.map +1 -1
  374. package/dist/esm/classes/vertex-array-object.js +11 -12
  375. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  376. package/dist/esm/classes/vertex-array.js +3 -4
  377. package/dist/esm/classes/vertex-array.js.map +1 -1
  378. package/dist/esm/classes/webgl-buffer.js +8 -5
  379. package/dist/esm/classes/webgl-buffer.js.map +1 -1
  380. package/dist/esm/classes/webgl-resource.js +12 -8
  381. package/dist/esm/classes/webgl-resource.js.map +1 -1
  382. package/dist/esm/context/context/context-state.js +26 -0
  383. package/dist/esm/context/context/context-state.js.map +1 -0
  384. package/dist/esm/context/context/create-context.js +37 -0
  385. package/dist/esm/context/context/create-context.js.map +1 -0
  386. package/dist/esm/context/context/device-pixels.js +98 -0
  387. package/dist/esm/context/context/device-pixels.js.map +1 -0
  388. package/dist/esm/context/context/get-canvas.js +31 -0
  389. package/dist/esm/context/context/get-canvas.js.map +1 -0
  390. package/dist/esm/context/context/resize-context.js +15 -0
  391. package/dist/esm/context/context/resize-context.js.map +1 -0
  392. package/dist/esm/context/context/webgl-checks.js +34 -0
  393. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  394. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  395. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  396. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  397. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  398. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  399. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  400. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  401. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  402. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  403. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  404. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  405. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  406. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  407. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  408. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  409. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  410. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  411. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  412. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  413. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  414. package/dist/esm/debug/debug-uniforms.js +1 -1
  415. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  416. package/dist/esm/debug/debug-vertex-array.js +2 -2
  417. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  418. package/dist/esm/helpers/get-program-bindings.js +228 -0
  419. package/dist/esm/helpers/get-program-bindings.js.map +1 -0
  420. package/dist/esm/helpers/program-bindings.js +2 -0
  421. package/dist/esm/helpers/program-bindings.js.map +1 -0
  422. package/dist/esm/index.js +26 -20
  423. package/dist/esm/index.js.map +1 -1
  424. package/dist/esm/init.js +11 -8
  425. package/dist/esm/init.js.map +1 -1
  426. package/dist/esm/types/accessor.d.ts +29 -0
  427. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  428. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  429. package/dist/esm/webgl-utils/constants-to-keys.js +1 -1
  430. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  431. package/dist/esm/webgl-utils/format-utils.js +1 -1
  432. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  433. package/dist/esm/webgl-utils/texture-utils.js +2 -2
  434. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  435. package/dist/esm/webgl-utils/typed-array-utils.js +22 -18
  436. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  437. package/dist/helpers/get-program-bindings.d.ts +8 -0
  438. package/dist/helpers/get-program-bindings.d.ts.map +1 -0
  439. package/dist/helpers/get-program-bindings.js +228 -0
  440. package/dist/helpers/get-program-bindings.js.map +1 -0
  441. package/dist/helpers/program-bindings.d.ts +41 -0
  442. package/dist/helpers/program-bindings.d.ts.map +1 -0
  443. package/dist/helpers/program-bindings.js +2 -0
  444. package/dist/helpers/program-bindings.js.map +1 -0
  445. package/dist/index.d.ts +41 -20
  446. package/dist/index.d.ts.map +1 -1
  447. package/dist/index.js +26 -20
  448. package/dist/index.js.map +1 -1
  449. package/dist/init.d.ts.map +1 -1
  450. package/dist/init.js +11 -8
  451. package/dist/init.js.map +1 -1
  452. package/dist/types/accessor.d.ts +29 -0
  453. package/dist/webgl-utils/attribute-utils.d.ts +1 -1
  454. package/dist/webgl-utils/attribute-utils.js +1 -1
  455. package/dist/webgl-utils/attribute-utils.js.map +1 -1
  456. package/dist/webgl-utils/constants-to-keys.js +1 -1
  457. package/dist/webgl-utils/constants-to-keys.js.map +1 -1
  458. package/dist/webgl-utils/format-utils.d.ts +2 -2
  459. package/dist/webgl-utils/format-utils.js +1 -1
  460. package/dist/webgl-utils/format-utils.js.map +1 -1
  461. package/dist/webgl-utils/texture-utils.d.ts +12 -8
  462. package/dist/webgl-utils/texture-utils.d.ts.map +1 -1
  463. package/dist/webgl-utils/texture-utils.js +2 -2
  464. package/dist/webgl-utils/texture-utils.js.map +1 -1
  465. package/dist/webgl-utils/typed-array-utils.d.ts +39 -32
  466. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -1
  467. package/dist/webgl-utils/typed-array-utils.js +22 -18
  468. package/dist/webgl-utils/typed-array-utils.js.map +1 -1
  469. package/package.json +5 -6
  470. package/src/.DS_Store +0 -0
  471. package/src/_deprecated/context-api.ts +146 -0
  472. package/src/_deprecated/features.ts +159 -0
  473. package/src/adapter/converters/set-device-parameters.ts +182 -0
  474. package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
  475. package/src/adapter/device-helpers/device-features.ts +227 -0
  476. package/src/adapter/device-helpers/device-limits.ts +150 -0
  477. package/src/adapter/device-helpers/get-device-info.ts +49 -0
  478. package/src/{features/check-old-ie.ts → adapter/device-helpers/is-old-ie.ts} +3 -3
  479. package/src/adapter/webgl-device.ts +399 -0
  480. package/src/adapter/webgl-shader.ts +84 -0
  481. package/src/classes/accessor.js +2 -2
  482. package/src/classes/accessor.ts.disabled +1 -1
  483. package/src/classes/clear.ts +9 -4
  484. package/src/classes/copy-and-blit.ts +49 -52
  485. package/src/classes/framebuffer.ts +38 -35
  486. package/src/classes/program-configuration.ts +28 -81
  487. package/src/classes/program.ts +89 -75
  488. package/src/classes/query.ts +6 -6
  489. package/src/classes/renderbuffer-formats.ts +1 -1
  490. package/src/classes/renderbuffer.ts +5 -4
  491. package/src/classes/{webgl-shader.ts → shader.ts} +7 -78
  492. package/src/classes/texture-2d.ts +6 -11
  493. package/src/classes/texture-3d.ts +16 -11
  494. package/src/classes/texture-cube.ts +7 -7
  495. package/src/classes/texture-formats.ts +1 -1
  496. package/src/classes/texture.ts +39 -40
  497. package/src/classes/transform-feedback.ts +14 -13
  498. package/src/classes/uniform-buffer-layout.ts +1 -1
  499. package/src/classes/uniforms.ts +4 -10
  500. package/src/classes/vertex-array-object.ts +17 -20
  501. package/src/classes/vertex-array.ts +16 -11
  502. package/src/classes/webgl-buffer.ts +7 -5
  503. package/src/classes/webgl-resource.ts +20 -18
  504. package/src/context/context/context-state.ts +39 -0
  505. package/src/context/context/create-context.ts +83 -0
  506. package/src/context/context/device-pixels.ts +147 -0
  507. package/src/context/context/get-canvas.ts +37 -0
  508. package/src/context/context/resize-context.ts +37 -0
  509. package/src/context/context/webgl-checks.ts +49 -0
  510. package/src/context/parameters/unified-parameter-api.ts +128 -0
  511. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  512. package/src/context/parameters/webgl-parameters.ts +197 -0
  513. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  514. package/src/context/polyfill/polyfill-context.ts +98 -0
  515. package/src/context/polyfill/polyfill-table.ts +162 -0
  516. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  517. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  518. package/src/context/state-tracker/track-context-state.ts +250 -0
  519. package/src/context/state-tracker/with-parameters.ts +50 -0
  520. package/src/debug/debug-uniforms.ts +1 -1
  521. package/src/debug/debug-vertex-array.ts +2 -4
  522. package/src/helpers/get-program-bindings.ts +244 -0
  523. package/src/helpers/program-bindings.ts +46 -0
  524. package/src/index.ts +94 -23
  525. package/src/init.ts +12 -9
  526. package/src/types/accessor.d.ts +29 -0
  527. package/src/types.ts +1 -1
  528. package/src/webgl-utils/attribute-utils.ts +1 -1
  529. package/src/webgl-utils/constants-to-keys.ts +1 -1
  530. package/src/webgl-utils/format-utils.ts +1 -1
  531. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +13 -10
  532. package/src/webgl-utils/{typed-array-utils.js → typed-array-utils.ts} +59 -16
  533. package/dist/classes/webgl-shader.d.ts.map +0 -1
  534. package/dist/classes/webgl-shader.js.map +0 -1
  535. package/dist/context/gl-context.d.ts +0 -15
  536. package/dist/context/gl-context.d.ts.map +0 -1
  537. package/dist/context/gl-context.js +0 -32
  538. package/dist/context/gl-context.js.map +0 -1
  539. package/dist/context/luma-context-data.d.ts +0 -31
  540. package/dist/context/luma-context-data.d.ts.map +0 -1
  541. package/dist/context/luma-context-data.js +0 -5
  542. package/dist/context/luma-context-data.js.map +0 -1
  543. package/dist/es5/classes/webgl-shader.js +0 -213
  544. package/dist/es5/classes/webgl-shader.js.map +0 -1
  545. package/dist/es5/context/gl-context.js +0 -46
  546. package/dist/es5/context/gl-context.js.map +0 -1
  547. package/dist/es5/context/luma-context-data.js +0 -12
  548. package/dist/es5/context/luma-context-data.js.map +0 -1
  549. package/dist/es5/features/check-glsl-extension.js +0 -40
  550. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  551. package/dist/es5/features/check-old-ie.js +0 -15
  552. package/dist/es5/features/check-old-ie.js.map +0 -1
  553. package/dist/es5/features/features.js +0 -85
  554. package/dist/es5/features/features.js.map +0 -1
  555. package/dist/es5/features/index.js +0 -64
  556. package/dist/es5/features/index.js.map +0 -1
  557. package/dist/es5/features/limits.js +0 -72
  558. package/dist/es5/features/limits.js.map +0 -1
  559. package/dist/es5/features/webgl-features-table.js +0 -84
  560. package/dist/es5/features/webgl-features-table.js.map +0 -1
  561. package/dist/es5/features/webgl-limits-table.js +0 -172
  562. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  563. package/dist/es5/utils/array-utils-flat.js +0 -50
  564. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  565. package/dist/es5/utils/assert.js +0 -13
  566. package/dist/es5/utils/assert.js.map +0 -1
  567. package/dist/es5/utils/check-props.js +0 -50
  568. package/dist/es5/utils/check-props.js.map +0 -1
  569. package/dist/es5/utils/format-value.js +0 -57
  570. package/dist/es5/utils/format-value.js.map +0 -1
  571. package/dist/es5/utils/index.js +0 -68
  572. package/dist/es5/utils/index.js.map +0 -1
  573. package/dist/es5/utils/is-old-ie.js +0 -13
  574. package/dist/es5/utils/is-old-ie.js.map +0 -1
  575. package/dist/es5/utils/load-file.js +0 -43
  576. package/dist/es5/utils/load-file.js.map +0 -1
  577. package/dist/es5/utils/stub-methods.js +0 -25
  578. package/dist/es5/utils/stub-methods.js.map +0 -1
  579. package/dist/es5/utils/utils.js +0 -31
  580. package/dist/es5/utils/utils.js.map +0 -1
  581. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  582. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  583. package/dist/esm/classes/webgl-shader.js.map +0 -1
  584. package/dist/esm/context/gl-context.js +0 -32
  585. package/dist/esm/context/gl-context.js.map +0 -1
  586. package/dist/esm/context/luma-context-data.js +0 -5
  587. package/dist/esm/context/luma-context-data.js.map +0 -1
  588. package/dist/esm/features/check-glsl-extension.js +0 -27
  589. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  590. package/dist/esm/features/check-old-ie.js.map +0 -1
  591. package/dist/esm/features/features.js +0 -67
  592. package/dist/esm/features/features.js.map +0 -1
  593. package/dist/esm/features/index.js +0 -5
  594. package/dist/esm/features/index.js.map +0 -1
  595. package/dist/esm/features/limits.js +0 -55
  596. package/dist/esm/features/limits.js.map +0 -1
  597. package/dist/esm/features/webgl-features-table.js +0 -71
  598. package/dist/esm/features/webgl-features-table.js.map +0 -1
  599. package/dist/esm/features/webgl-limits-table.js +0 -161
  600. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  601. package/dist/esm/utils/array-utils-flat.js +0 -39
  602. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  603. package/dist/esm/utils/assert.js +0 -6
  604. package/dist/esm/utils/assert.js.map +0 -1
  605. package/dist/esm/utils/check-props.js +0 -38
  606. package/dist/esm/utils/check-props.js.map +0 -1
  607. package/dist/esm/utils/format-value.js +0 -50
  608. package/dist/esm/utils/format-value.js.map +0 -1
  609. package/dist/esm/utils/index.js +0 -7
  610. package/dist/esm/utils/index.js.map +0 -1
  611. package/dist/esm/utils/is-old-ie.js +0 -5
  612. package/dist/esm/utils/is-old-ie.js.map +0 -1
  613. package/dist/esm/utils/load-file.js +0 -30
  614. package/dist/esm/utils/load-file.js.map +0 -1
  615. package/dist/esm/utils/stub-methods.js +0 -16
  616. package/dist/esm/utils/stub-methods.js.map +0 -1
  617. package/dist/esm/utils/utils.js +0 -20
  618. package/dist/esm/utils/utils.js.map +0 -1
  619. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  620. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  621. package/dist/features/check-glsl-extension.d.ts +0 -2
  622. package/dist/features/check-glsl-extension.d.ts.map +0 -1
  623. package/dist/features/check-glsl-extension.js +0 -27
  624. package/dist/features/check-glsl-extension.js.map +0 -1
  625. package/dist/features/check-old-ie.d.ts +0 -2
  626. package/dist/features/check-old-ie.d.ts.map +0 -1
  627. package/dist/features/check-old-ie.js.map +0 -1
  628. package/dist/features/features.d.ts +0 -6
  629. package/dist/features/features.d.ts.map +0 -1
  630. package/dist/features/features.js +0 -67
  631. package/dist/features/features.js.map +0 -1
  632. package/dist/features/index.d.ts +0 -5
  633. package/dist/features/index.d.ts.map +0 -1
  634. package/dist/features/index.js +0 -5
  635. package/dist/features/index.js.map +0 -1
  636. package/dist/features/limits.d.ts +0 -28
  637. package/dist/features/limits.d.ts.map +0 -1
  638. package/dist/features/limits.js +0 -55
  639. package/dist/features/limits.js.map +0 -1
  640. package/dist/features/webgl-features-table.d.ts.map +0 -1
  641. package/dist/features/webgl-features-table.js +0 -71
  642. package/dist/features/webgl-features-table.js.map +0 -1
  643. package/dist/features/webgl-limits-table.d.ts +0 -161
  644. package/dist/features/webgl-limits-table.d.ts.map +0 -1
  645. package/dist/features/webgl-limits-table.js +0 -161
  646. package/dist/features/webgl-limits-table.js.map +0 -1
  647. package/dist/utils/array-utils-flat.d.ts +0 -9
  648. package/dist/utils/array-utils-flat.d.ts.map +0 -1
  649. package/dist/utils/array-utils-flat.js +0 -39
  650. package/dist/utils/array-utils-flat.js.map +0 -1
  651. package/dist/utils/assert.d.ts +0 -2
  652. package/dist/utils/assert.d.ts.map +0 -1
  653. package/dist/utils/assert.js +0 -6
  654. package/dist/utils/assert.js.map +0 -1
  655. package/dist/utils/check-props.d.ts +0 -2
  656. package/dist/utils/check-props.d.ts.map +0 -1
  657. package/dist/utils/check-props.js +0 -38
  658. package/dist/utils/check-props.js.map +0 -1
  659. package/dist/utils/format-value.d.ts +0 -5
  660. package/dist/utils/format-value.d.ts.map +0 -1
  661. package/dist/utils/format-value.js +0 -50
  662. package/dist/utils/format-value.js.map +0 -1
  663. package/dist/utils/index.d.ts +0 -7
  664. package/dist/utils/index.d.ts.map +0 -1
  665. package/dist/utils/index.js +0 -7
  666. package/dist/utils/index.js.map +0 -1
  667. package/dist/utils/is-old-ie.d.ts +0 -4
  668. package/dist/utils/is-old-ie.d.ts.map +0 -1
  669. package/dist/utils/is-old-ie.js +0 -5
  670. package/dist/utils/is-old-ie.js.map +0 -1
  671. package/dist/utils/load-file.d.ts +0 -4
  672. package/dist/utils/load-file.d.ts.map +0 -1
  673. package/dist/utils/load-file.js +0 -30
  674. package/dist/utils/load-file.js.map +0 -1
  675. package/dist/utils/stub-methods.d.ts +0 -2
  676. package/dist/utils/stub-methods.d.ts.map +0 -1
  677. package/dist/utils/stub-methods.js +0 -16
  678. package/dist/utils/stub-methods.js.map +0 -1
  679. package/dist/utils/utils.d.ts +0 -15
  680. package/dist/utils/utils.d.ts.map +0 -1
  681. package/dist/utils/utils.js +0 -20
  682. package/dist/utils/utils.js.map +0 -1
  683. package/src/context/gl-context.ts +0 -31
  684. package/src/context/luma-context-data.ts +0 -27
  685. package/src/features/check-glsl-extension.ts +0 -34
  686. package/src/features/features.ts +0 -80
  687. package/src/features/index.ts +0 -5
  688. package/src/features/limits.ts +0 -66
  689. package/src/features/webgl-features-table.ts +0 -104
  690. package/src/features/webgl-limits-table.ts +0 -51
  691. package/src/utils/array-utils-flat.ts +0 -56
  692. package/src/utils/assert.ts +0 -7
  693. package/src/utils/check-props.ts +0 -68
  694. package/src/utils/format-value.ts +0 -37
  695. package/src/utils/index.ts +0 -6
  696. package/src/utils/is-old-ie.ts +0 -6
  697. package/src/utils/load-file.ts +0 -40
  698. package/src/utils/stub-methods.ts +0 -20
  699. package/src/utils/utils.ts +0 -35
  700. package/src/webgl-utils/texture-utils.d.ts +0 -11
  701. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -7,10 +7,28 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
10
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
25
 
26
+ var _api = require("@luma.gl/api");
27
+
12
28
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
13
29
 
30
+ var _webglDevice = _interopRequireDefault(require("../adapter/webgl-device"));
31
+
14
32
  var _webglResource = _interopRequireDefault(require("./webgl-resource"));
15
33
 
16
34
  var _texture = _interopRequireDefault(require("./texture"));
@@ -19,366 +37,435 @@ var _framebuffer = _interopRequireDefault(require("./framebuffer"));
19
37
 
20
38
  var _uniforms = require("./uniforms");
21
39
 
22
- var _webglShader = require("./webgl-shader");
23
-
24
40
  var _programConfiguration = _interopRequireDefault(require("./program-configuration"));
25
41
 
26
- var _gltools = require("@luma.gl/gltools");
42
+ var _webglChecks = require("../context/context/webgl-checks");
43
+
44
+ var _withParameters = require("../context/state-tracker/with-parameters");
27
45
 
28
- var _webglUtils = require("../webgl-utils");
46
+ var _constantsToKeys = require("../webgl-utils/constants-to-keys");
29
47
 
30
48
  var _attributeUtils = require("../webgl-utils/attribute-utils");
31
49
 
32
- var _utils = require("../utils");
33
-
34
- const LOG_PROGRAM_PERF_PRIORITY = 4;
35
- const GL_SEPARATE_ATTRIBS = 0x8c8d;
36
-
37
- class Program extends _webglResource.default {
38
- constructor(gl, props = {}) {
39
- super(gl, props, {});
40
- (0, _defineProperty2.default)(this, "configuration", void 0);
41
- (0, _defineProperty2.default)(this, "_isCached", false);
42
- (0, _defineProperty2.default)(this, "_textureIndexCounter", 0);
43
- (0, _defineProperty2.default)(this, "hash", void 0);
44
- (0, _defineProperty2.default)(this, "vs", void 0);
45
- (0, _defineProperty2.default)(this, "fs", void 0);
46
- (0, _defineProperty2.default)(this, "uniforms", void 0);
47
- (0, _defineProperty2.default)(this, "_textureUniforms", void 0);
48
- (0, _defineProperty2.default)(this, "varyings", void 0);
49
- (0, _defineProperty2.default)(this, "_uniformCount", 0);
50
- (0, _defineProperty2.default)(this, "_uniformSetters", void 0);
51
- this.initialize(props);
52
- Object.seal(this);
53
-
54
- this._setId(props.id);
55
- }
50
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
56
51
 
57
- initialize(props = {}) {
58
- const {
59
- hash,
60
- vs,
61
- fs,
62
- varyings,
63
- bufferMode = GL_SEPARATE_ATTRIBS
64
- } = props;
65
- this.hash = hash || '';
66
- this.vs = typeof vs === 'string' ? new _webglShader.VertexShader(this.gl, {
67
- id: "".concat(props.id, "-vs"),
68
- source: vs
69
- }) : vs;
70
- this.fs = typeof fs === 'string' ? new _webglShader.FragmentShader(this.gl, {
71
- id: "".concat(props.id, "-fs"),
72
- source: fs
73
- }) : fs;
74
- (0, _utils.assert)(this.vs instanceof _webglShader.VertexShader);
75
- (0, _utils.assert)(this.fs instanceof _webglShader.FragmentShader);
76
- this.uniforms = {};
77
- this._textureUniforms = {};
78
-
79
- if (varyings && varyings.length > 0) {
80
- (0, _gltools.assertWebGL2Context)(this.gl);
81
- this.varyings = varyings;
82
- this.gl2.transformFeedbackVaryings(this.handle, varyings, bufferMode);
83
- }
52
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
84
53
 
85
- this._compileAndLink();
54
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
86
55
 
87
- this._readUniformLocationsFromLinkedProgram();
56
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
88
57
 
89
- this.configuration = new _programConfiguration.default(this);
90
- return this.setProps(props);
91
- }
58
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
92
59
 
93
- delete(options = {}) {
94
- if (this._isCached) {
95
- return this;
96
- }
60
+ var LOG_PROGRAM_PERF_PRIORITY = 4;
61
+ var GL_SEPARATE_ATTRIBS = 0x8c8d;
97
62
 
98
- return super.delete(options);
99
- }
63
+ var Program = function (_WebGLResource) {
64
+ (0, _inherits2.default)(Program, _WebGLResource);
100
65
 
101
- setProps(props) {
102
- if ('uniforms' in props) {
103
- this.setUniforms(props.uniforms);
104
- }
66
+ var _super = _createSuper(Program);
105
67
 
106
- return this;
107
- }
68
+ function Program(device) {
69
+ var _this;
108
70
 
109
- draw(options) {
110
- const {
111
- logPriority,
112
- drawMode = _constants.default.TRIANGLES,
113
- vertexCount,
114
- offset = 0,
115
- start,
116
- end,
117
- isIndexed = false,
118
- indexType = _constants.default.UNSIGNED_SHORT,
119
- instanceCount = 0,
120
- isInstanced = instanceCount > 0,
121
- vertexArray = null,
122
- transformFeedback,
123
- framebuffer,
124
- uniforms,
125
- samplers
126
- } = options;
127
- let {
128
- parameters = {}
129
- } = options;
130
-
131
- if (uniforms || samplers) {
132
- _gltools.log.deprecated('Program.draw({uniforms})', 'Program.setUniforms(uniforms)')();
133
-
134
- this.setUniforms(uniforms || {});
135
- }
71
+ var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
72
+ (0, _classCallCheck2.default)(this, Program);
73
+ _this = _super.call(this, _webglDevice.default.attach(device), props, {});
74
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "configuration", void 0);
75
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hash", void 0);
76
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "vs", void 0);
77
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fs", void 0);
78
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "uniforms", void 0);
79
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "varyings", void 0);
80
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_textureUniforms", void 0);
81
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_isCached", false);
82
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_textureIndexCounter", 0);
83
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_uniformCount", 0);
84
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_uniformSetters", void 0);
136
85
 
137
- if (_gltools.log.priority >= logPriority) {
138
- const fb = framebuffer ? framebuffer.id : 'default';
139
- const message = "mode=".concat((0, _webglUtils.getKey)(this.gl, drawMode), " verts=").concat(vertexCount, " ") + "instances=".concat(instanceCount, " indexType=").concat((0, _webglUtils.getKey)(this.gl, indexType), " ") + "isInstanced=".concat(isInstanced, " isIndexed=").concat(isIndexed, " ") + "Framebuffer=".concat(fb);
86
+ _this.initialize(props);
140
87
 
141
- _gltools.log.log(logPriority, message)();
142
- }
88
+ Object.seal((0, _assertThisInitialized2.default)(_this));
143
89
 
144
- (0, _utils.assert)(vertexArray);
145
- this.gl.useProgram(this.handle);
90
+ _this._setId(props.id);
146
91
 
147
- if (!this._areTexturesRenderable() || vertexCount === 0 || isInstanced && instanceCount === 0) {
148
- return false;
92
+ return _this;
93
+ }
94
+
95
+ (0, _createClass2.default)(Program, [{
96
+ key: "destroy",
97
+ value: function destroy() {
98
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
99
+
100
+ if (this._isCached) {
101
+ return this;
102
+ }
103
+
104
+ return (0, _get2.default)((0, _getPrototypeOf2.default)(Program.prototype), "delete", this).call(this, options);
149
105
  }
106
+ }, {
107
+ key: "delete",
108
+ value: function _delete() {
109
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
150
110
 
151
- vertexArray.bindForDraw(vertexCount, instanceCount, () => {
152
- if (framebuffer !== undefined) {
153
- parameters = Object.assign({}, parameters, {
154
- framebuffer
155
- });
111
+ if (this._isCached) {
112
+ return this;
156
113
  }
157
114
 
158
- if (transformFeedback) {
159
- const primitiveMode = (0, _attributeUtils.getPrimitiveDrawMode)(drawMode);
160
- transformFeedback.begin(primitiveMode);
115
+ return (0, _get2.default)((0, _getPrototypeOf2.default)(Program.prototype), "delete", this).call(this, options);
116
+ }
117
+ }, {
118
+ key: "initialize",
119
+ value: function initialize() {
120
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
121
+ var hash = props.hash,
122
+ vs = props.vs,
123
+ fs = props.fs,
124
+ varyings = props.varyings,
125
+ _props$bufferMode = props.bufferMode,
126
+ bufferMode = _props$bufferMode === void 0 ? GL_SEPARATE_ATTRIBS : _props$bufferMode;
127
+ this.hash = hash || '';
128
+ this.vs = typeof vs === 'string' ? this.device.createShader({
129
+ id: "".concat(props.id, "-vs"),
130
+ source: vs,
131
+ stage: 'vertex'
132
+ }) : (0, _api.cast)(vs);
133
+ this.fs = typeof fs === 'string' ? this.device.createShader({
134
+ id: "".concat(props.id, "-fs"),
135
+ source: fs,
136
+ stage: 'fragment'
137
+ }) : (0, _api.cast)(fs);
138
+ (0, _api.assert)(this.vs.stage === 'vertex');
139
+ (0, _api.assert)(this.fs.stage === 'fragment');
140
+ this.uniforms = {};
141
+ this._textureUniforms = {};
142
+
143
+ if (varyings && varyings.length > 0) {
144
+ (0, _webglChecks.assertWebGL2Context)(this.gl);
145
+ this.varyings = varyings;
146
+ this.gl2.transformFeedbackVaryings(this.handle, varyings, bufferMode);
161
147
  }
162
148
 
163
- this._bindTextures();
164
-
165
- (0, _gltools.withParameters)(this.gl, parameters, () => {
166
- if (isIndexed && isInstanced) {
167
- this.gl2.drawElementsInstanced(drawMode, vertexCount, indexType, offset, instanceCount);
168
- } else if (isIndexed && (0, _gltools.isWebGL2)(this.gl) && !isNaN(start) && !isNaN(end)) {
169
- this.gl2.drawRangeElements(drawMode, start, end, vertexCount, indexType, offset);
170
- } else if (isIndexed) {
171
- this.gl.drawElements(drawMode, vertexCount, indexType, offset);
172
- } else if (isInstanced) {
173
- this.gl2.drawArraysInstanced(drawMode, offset, vertexCount, instanceCount);
174
- } else {
175
- this.gl.drawArrays(drawMode, offset, vertexCount);
176
- }
177
- });
149
+ this._compileAndLink();
150
+
151
+ this._readUniformLocationsFromLinkedProgram();
178
152
 
179
- if (transformFeedback) {
180
- transformFeedback.end();
153
+ this.configuration = new _programConfiguration.default(this);
154
+ return this.setProps(props);
155
+ }
156
+ }, {
157
+ key: "setProps",
158
+ value: function setProps(props) {
159
+ if ('uniforms' in props) {
160
+ this.setUniforms(props.uniforms);
181
161
  }
182
- });
183
- return true;
184
- }
185
162
 
186
- setUniforms(uniforms = {}) {
187
- if (_gltools.log.priority >= 2) {
188
- (0, _uniforms.checkUniformValues)(uniforms, this.id, this._uniformSetters);
163
+ return this;
189
164
  }
165
+ }, {
166
+ key: "draw",
167
+ value: function draw(options) {
168
+ var _this2 = this;
169
+
170
+ var logPriority = options.logPriority,
171
+ _options$drawMode = options.drawMode,
172
+ drawMode = _options$drawMode === void 0 ? _constants.default.TRIANGLES : _options$drawMode,
173
+ vertexCount = options.vertexCount,
174
+ _options$offset = options.offset,
175
+ offset = _options$offset === void 0 ? 0 : _options$offset,
176
+ start = options.start,
177
+ end = options.end,
178
+ _options$isIndexed = options.isIndexed,
179
+ isIndexed = _options$isIndexed === void 0 ? false : _options$isIndexed,
180
+ _options$indexType = options.indexType,
181
+ indexType = _options$indexType === void 0 ? _constants.default.UNSIGNED_SHORT : _options$indexType,
182
+ _options$instanceCoun = options.instanceCount,
183
+ instanceCount = _options$instanceCoun === void 0 ? 0 : _options$instanceCoun,
184
+ _options$isInstanced = options.isInstanced,
185
+ isInstanced = _options$isInstanced === void 0 ? instanceCount > 0 : _options$isInstanced,
186
+ _options$vertexArray = options.vertexArray,
187
+ vertexArray = _options$vertexArray === void 0 ? null : _options$vertexArray,
188
+ transformFeedback = options.transformFeedback,
189
+ framebuffer = options.framebuffer,
190
+ uniforms = options.uniforms,
191
+ samplers = options.samplers;
192
+ var _options$parameters = options.parameters,
193
+ parameters = _options$parameters === void 0 ? {} : _options$parameters;
194
+
195
+ if (uniforms || samplers) {
196
+ _api.log.deprecated('Program.draw({uniforms})', 'Program.setUniforms(uniforms)')();
197
+
198
+ this.setUniforms(uniforms || {});
199
+ }
190
200
 
191
- this.gl.useProgram(this.handle);
201
+ if (_api.log.priority >= logPriority) {
202
+ var fb = framebuffer ? framebuffer.id : 'default';
203
+ var message = "mode=".concat((0, _constantsToKeys.getKey)(this.gl, drawMode), " verts=").concat(vertexCount, " ") + "instances=".concat(instanceCount, " indexType=").concat((0, _constantsToKeys.getKey)(this.gl, indexType), " ") + "isInstanced=".concat(isInstanced, " isIndexed=").concat(isIndexed, " ") + "Framebuffer=".concat(fb);
192
204
 
193
- for (const uniformName in uniforms) {
194
- const uniform = uniforms[uniformName];
195
- const uniformSetter = this._uniformSetters[uniformName];
205
+ _api.log.log(logPriority, message)();
206
+ }
196
207
 
197
- if (uniformSetter) {
198
- let value = uniform;
199
- let textureUpdate = false;
208
+ (0, _api.assert)(vertexArray);
209
+ this.gl.useProgram(this.handle);
200
210
 
201
- if (value instanceof _framebuffer.default) {
202
- value = value.texture;
203
- }
211
+ if (!this._areTexturesRenderable() || vertexCount === 0 || isInstanced && instanceCount === 0) {
212
+ return false;
213
+ }
204
214
 
205
- if (value instanceof _texture.default) {
206
- textureUpdate = this.uniforms[uniformName] !== uniform;
215
+ vertexArray.bindForDraw(vertexCount, instanceCount, function () {
216
+ if (framebuffer !== undefined) {
217
+ parameters = Object.assign({}, parameters, {
218
+ framebuffer: framebuffer
219
+ });
220
+ }
207
221
 
208
- if (textureUpdate) {
209
- if (uniformSetter.textureIndex === undefined) {
210
- uniformSetter.textureIndex = this._textureIndexCounter++;
211
- }
222
+ if (transformFeedback) {
223
+ var primitiveMode = (0, _attributeUtils.getPrimitiveDrawMode)(drawMode);
224
+ transformFeedback.begin(primitiveMode);
225
+ }
212
226
 
213
- const texture = value;
214
- const {
215
- textureIndex
216
- } = uniformSetter;
217
- texture.bind(textureIndex);
218
- value = textureIndex;
219
- this._textureUniforms[uniformName] = texture;
227
+ _this2._bindTextures();
228
+
229
+ (0, _withParameters.withParameters)(_this2.gl, parameters, function () {
230
+ if (isIndexed && isInstanced) {
231
+ _this2.gl2.drawElementsInstanced(drawMode, vertexCount, indexType, offset, instanceCount);
232
+ } else if (isIndexed && (0, _webglChecks.isWebGL2)(_this2.gl) && !isNaN(start) && !isNaN(end)) {
233
+ _this2.gl2.drawRangeElements(drawMode, start, end, vertexCount, indexType, offset);
234
+ } else if (isIndexed) {
235
+ _this2.gl.drawElements(drawMode, vertexCount, indexType, offset);
236
+ } else if (isInstanced) {
237
+ _this2.gl2.drawArraysInstanced(drawMode, offset, vertexCount, instanceCount);
220
238
  } else {
221
- value = uniformSetter.textureIndex;
239
+ _this2.gl.drawArrays(drawMode, offset, vertexCount);
222
240
  }
223
- } else if (this._textureUniforms[uniformName]) {
224
- delete this._textureUniforms[uniformName];
225
- }
241
+ });
226
242
 
227
- if (uniformSetter(value) || textureUpdate) {
228
- (0, _uniforms.copyUniform)(this.uniforms, uniformName, uniform);
243
+ if (transformFeedback) {
244
+ transformFeedback.end();
229
245
  }
230
- }
231
- }
232
-
233
- return this;
234
- }
235
-
236
- _areTexturesRenderable() {
237
- let texturesRenderable = true;
238
-
239
- for (const uniformName in this._textureUniforms) {
240
- const texture = this._textureUniforms[uniformName];
241
- texture.update();
242
- texturesRenderable = texturesRenderable && texture.loaded;
246
+ });
247
+ return true;
243
248
  }
249
+ }, {
250
+ key: "setUniforms",
251
+ value: function setUniforms() {
252
+ var uniforms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
244
253
 
245
- return texturesRenderable;
246
- }
254
+ if (_api.log.priority >= 2) {
255
+ (0, _uniforms.checkUniformValues)(uniforms, this.id, this._uniformSetters);
256
+ }
247
257
 
248
- _bindTextures() {
249
- for (const uniformName in this._textureUniforms) {
250
- const textureIndex = this._uniformSetters[uniformName].textureIndex;
258
+ this.gl.useProgram(this.handle);
251
259
 
252
- this._textureUniforms[uniformName].bind(textureIndex);
253
- }
254
- }
260
+ for (var uniformName in uniforms) {
261
+ var uniform = uniforms[uniformName];
262
+ var uniformSetter = this._uniformSetters[uniformName];
255
263
 
256
- _createHandle() {
257
- return this.gl.createProgram();
258
- }
264
+ if (uniformSetter) {
265
+ var value = uniform;
266
+ var textureUpdate = false;
259
267
 
260
- _deleteHandle() {
261
- this.gl.deleteProgram(this.handle);
262
- }
268
+ if (value instanceof _framebuffer.default) {
269
+ value = value.texture;
270
+ }
263
271
 
264
- _getOptionsFromHandle(handle) {
265
- const shaderHandles = this.gl.getAttachedShaders(handle);
266
- const opts = {};
272
+ if (value instanceof _texture.default) {
273
+ textureUpdate = this.uniforms[uniformName] !== uniform;
274
+
275
+ if (textureUpdate) {
276
+ if (uniformSetter.textureIndex === undefined) {
277
+ uniformSetter.textureIndex = this._textureIndexCounter++;
278
+ }
279
+
280
+ var texture = value;
281
+ var textureIndex = uniformSetter.textureIndex;
282
+ texture.bind(textureIndex);
283
+ value = textureIndex;
284
+ this._textureUniforms[uniformName] = texture;
285
+ } else {
286
+ value = uniformSetter.textureIndex;
287
+ }
288
+ } else if (this._textureUniforms[uniformName]) {
289
+ delete this._textureUniforms[uniformName];
290
+ }
267
291
 
268
- for (const shaderHandle of shaderHandles) {
269
- const type = this.gl.getShaderParameter(this.handle, _constants.default.SHADER_TYPE);
292
+ if (uniformSetter(value) || textureUpdate) {
293
+ (0, _uniforms.copyUniform)(this.uniforms, uniformName, uniform);
294
+ }
295
+ }
296
+ }
270
297
 
271
- switch (type) {
272
- case _constants.default.VERTEX_SHADER:
273
- opts.vs = new _webglShader.VertexShader({
274
- handle: shaderHandle
275
- });
276
- break;
298
+ return this;
299
+ }
300
+ }, {
301
+ key: "_areTexturesRenderable",
302
+ value: function _areTexturesRenderable() {
303
+ var texturesRenderable = true;
304
+
305
+ for (var uniformName in this._textureUniforms) {
306
+ var texture = this._textureUniforms[uniformName];
307
+ texture.update();
308
+ texturesRenderable = texturesRenderable && texture.loaded;
309
+ }
277
310
 
278
- case _constants.default.FRAGMENT_SHADER:
279
- opts.fs = new _webglShader.FragmentShader({
280
- handle: shaderHandle
281
- });
282
- break;
311
+ return texturesRenderable;
312
+ }
313
+ }, {
314
+ key: "_bindTextures",
315
+ value: function _bindTextures() {
316
+ for (var uniformName in this._textureUniforms) {
317
+ var textureIndex = this._uniformSetters[uniformName].textureIndex;
283
318
 
284
- default:
319
+ this._textureUniforms[uniformName].bind(textureIndex);
285
320
  }
286
321
  }
287
-
288
- return opts;
289
- }
290
-
291
- _getParameter(pname) {
292
- return this.gl.getProgramParameter(this.handle, pname);
293
- }
294
-
295
- _setId(id) {
296
- if (!id) {
297
- const programName = this._getName();
298
-
299
- this.id = (0, _utils.uid)(programName);
322
+ }, {
323
+ key: "_createHandle",
324
+ value: function _createHandle() {
325
+ return this.gl.createProgram();
300
326
  }
301
- }
327
+ }, {
328
+ key: "_deleteHandle",
329
+ value: function _deleteHandle() {
330
+ this.gl.deleteProgram(this.handle);
331
+ }
332
+ }, {
333
+ key: "_getOptionsFromHandle",
334
+ value: function _getOptionsFromHandle(handle) {
335
+ var shaderHandles = this.gl.getAttachedShaders(handle);
336
+ var opts = {};
337
+
338
+ var _iterator = _createForOfIteratorHelper(shaderHandles),
339
+ _step;
340
+
341
+ try {
342
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
343
+ var shaderHandle = _step.value;
344
+ var type = this.gl.getShaderParameter(this.handle, _constants.default.SHADER_TYPE);
345
+
346
+ switch (type) {
347
+ case _constants.default.VERTEX_SHADER:
348
+ opts.vs = new VertexShader({
349
+ handle: shaderHandle
350
+ });
351
+ break;
352
+
353
+ case _constants.default.FRAGMENT_SHADER:
354
+ opts.fs = new FragmentShader({
355
+ handle: shaderHandle
356
+ });
357
+ break;
358
+
359
+ default:
360
+ }
361
+ }
362
+ } catch (err) {
363
+ _iterator.e(err);
364
+ } finally {
365
+ _iterator.f();
366
+ }
302
367
 
303
- _getName() {
304
- let programName = this.vs.getName() || this.fs.getName();
305
- programName = programName.replace(/shader/i, '');
306
- programName = programName ? "".concat(programName, "-program") : 'program';
307
- return programName;
308
- }
368
+ return opts;
369
+ }
370
+ }, {
371
+ key: "_getParameter",
372
+ value: function _getParameter(pname) {
373
+ return this.gl.getProgramParameter(this.handle, pname);
374
+ }
375
+ }, {
376
+ key: "_setId",
377
+ value: function _setId(id) {
378
+ if (!id) {
379
+ var programName = this._getName();
309
380
 
310
- _compileAndLink() {
311
- const {
312
- gl
313
- } = this;
314
- gl.attachShader(this.handle, this.vs.handle);
315
- gl.attachShader(this.handle, this.fs.handle);
381
+ this.id = (0, _api.uid)(programName);
382
+ }
383
+ }
384
+ }, {
385
+ key: "_getName",
386
+ value: function _getName() {
387
+ var programName = this.vs.id || this.fs.id;
388
+ programName = programName.replace(/shader/i, '');
389
+ programName = programName ? "".concat(programName, "-program") : 'program';
390
+ return programName;
391
+ }
392
+ }, {
393
+ key: "_compileAndLink",
394
+ value: function _compileAndLink() {
395
+ var gl = this.gl;
396
+ gl.attachShader(this.handle, this.vs.handle);
397
+ gl.attachShader(this.handle, this.fs.handle);
316
398
 
317
- _gltools.log.time(LOG_PROGRAM_PERF_PRIORITY, "linkProgram for ".concat(this._getName()))();
399
+ _api.log.time(LOG_PROGRAM_PERF_PRIORITY, "linkProgram for ".concat(this._getName()))();
318
400
 
319
- gl.linkProgram(this.handle);
401
+ gl.linkProgram(this.handle);
320
402
 
321
- _gltools.log.timeEnd(LOG_PROGRAM_PERF_PRIORITY, "linkProgram for ".concat(this._getName()))();
403
+ _api.log.timeEnd(LOG_PROGRAM_PERF_PRIORITY, "linkProgram for ".concat(this._getName()))();
322
404
 
323
- if (gl.debug || _gltools.log.level > 0) {
324
- const linked = gl.getProgramParameter(this.handle, gl.LINK_STATUS);
405
+ if (gl.debug || _api.log.level > 0) {
406
+ var linked = gl.getProgramParameter(this.handle, gl.LINK_STATUS);
325
407
 
326
- if (!linked) {
327
- throw new Error("Error linking: ".concat(gl.getProgramInfoLog(this.handle)));
328
- }
408
+ if (!linked) {
409
+ throw new Error("Error linking: ".concat(gl.getProgramInfoLog(this.handle)));
410
+ }
329
411
 
330
- gl.validateProgram(this.handle);
331
- const validated = gl.getProgramParameter(this.handle, gl.VALIDATE_STATUS);
412
+ gl.validateProgram(this.handle);
413
+ var validated = gl.getProgramParameter(this.handle, gl.VALIDATE_STATUS);
332
414
 
333
- if (!validated) {
334
- throw new Error("Error validating: ".concat(gl.getProgramInfoLog(this.handle)));
415
+ if (!validated) {
416
+ throw new Error("Error validating: ".concat(gl.getProgramInfoLog(this.handle)));
417
+ }
335
418
  }
336
419
  }
337
- }
338
-
339
- _readUniformLocationsFromLinkedProgram() {
340
- const {
341
- gl
342
- } = this;
343
- this._uniformSetters = {};
344
- this._uniformCount = this._getParameter(_constants.default.ACTIVE_UNIFORMS);
345
-
346
- for (let i = 0; i < this._uniformCount; i++) {
347
- const info = this.gl.getActiveUniform(this.handle, i);
348
- const {
349
- name
350
- } = (0, _uniforms.parseUniformName)(info.name);
351
- let location = gl.getUniformLocation(this.handle, name);
352
- this._uniformSetters[name] = (0, _uniforms.getUniformSetter)(gl, location, info);
353
-
354
- if (info.size > 1) {
355
- for (let l = 0; l < info.size; l++) {
356
- location = gl.getUniformLocation(this.handle, "".concat(name, "[").concat(l, "]"));
357
- this._uniformSetters["".concat(name, "[").concat(l, "]")] = (0, _uniforms.getUniformSetter)(gl, location, info);
420
+ }, {
421
+ key: "_readUniformLocationsFromLinkedProgram",
422
+ value: function _readUniformLocationsFromLinkedProgram() {
423
+ var gl = this.gl;
424
+ this._uniformSetters = {};
425
+ this._uniformCount = this._getParameter(_constants.default.ACTIVE_UNIFORMS);
426
+
427
+ for (var i = 0; i < this._uniformCount; i++) {
428
+ var info = this.gl.getActiveUniform(this.handle, i);
429
+
430
+ var _parseUniformName = (0, _uniforms.parseUniformName)(info.name),
431
+ name = _parseUniformName.name;
432
+
433
+ var location = gl.getUniformLocation(this.handle, name);
434
+ this._uniformSetters[name] = (0, _uniforms.getUniformSetter)(gl, location, info);
435
+
436
+ if (info.size > 1) {
437
+ for (var l = 0; l < info.size; l++) {
438
+ location = gl.getUniformLocation(this.handle, "".concat(name, "[").concat(l, "]"));
439
+ this._uniformSetters["".concat(name, "[").concat(l, "]")] = (0, _uniforms.getUniformSetter)(gl, location, info);
440
+ }
358
441
  }
359
442
  }
360
- }
361
-
362
- this._textureIndexCounter = 0;
363
- }
364
443
 
365
- getActiveUniforms(uniformIndices, pname) {
366
- return this.gl2.getActiveUniforms(this.handle, uniformIndices, pname);
367
- }
368
-
369
- getUniformBlockIndex(blockName) {
370
- return this.gl2.getUniformBlockIndex(this.handle, blockName);
371
- }
372
-
373
- getActiveUniformBlockParameter(blockIndex, pname) {
374
- return this.gl2.getActiveUniformBlockParameter(this.handle, blockIndex, pname);
375
- }
376
-
377
- uniformBlockBinding(blockIndex, blockBinding) {
378
- this.gl2.uniformBlockBinding(this.handle, blockIndex, blockBinding);
379
- }
380
-
381
- }
444
+ this._textureIndexCounter = 0;
445
+ }
446
+ }, {
447
+ key: "getActiveUniforms",
448
+ value: function getActiveUniforms(uniformIndices, pname) {
449
+ return this.gl2.getActiveUniforms(this.handle, uniformIndices, pname);
450
+ }
451
+ }, {
452
+ key: "getUniformBlockIndex",
453
+ value: function getUniformBlockIndex(blockName) {
454
+ return this.gl2.getUniformBlockIndex(this.handle, blockName);
455
+ }
456
+ }, {
457
+ key: "getActiveUniformBlockParameter",
458
+ value: function getActiveUniformBlockParameter(blockIndex, pname) {
459
+ return this.gl2.getActiveUniformBlockParameter(this.handle, blockIndex, pname);
460
+ }
461
+ }, {
462
+ key: "uniformBlockBinding",
463
+ value: function uniformBlockBinding(blockIndex, blockBinding) {
464
+ this.gl2.uniformBlockBinding(this.handle, blockIndex, blockBinding);
465
+ }
466
+ }]);
467
+ return Program;
468
+ }(_webglResource.default);
382
469
 
383
470
  exports.default = Program;
384
471
  //# sourceMappingURL=program.js.map