@tolokoban/tgd 2.0.17 → 2.0.20

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 (244) hide show
  1. package/lib/dist/buffer/buffer.d.ts +5 -2
  2. package/lib/dist/buffer/buffer.d.ts.map +1 -1
  3. package/lib/dist/buffer/buffer.js +13 -13
  4. package/lib/dist/camera/camera-node.js +2 -3
  5. package/lib/dist/camera/camera-orthographic.js +9 -8
  6. package/lib/dist/camera/camera-perspective.js +9 -8
  7. package/lib/dist/camera/camera.js +43 -43
  8. package/lib/dist/canvas/gizmo/gizmo.js +68 -72
  9. package/lib/dist/canvas/gizmo/painter/tips.d.ts +0 -1
  10. package/lib/dist/canvas/gizmo/painter/tips.d.ts.map +1 -1
  11. package/lib/dist/canvas/gizmo/painter/tips.js +24 -22
  12. package/lib/dist/canvas/landscape/landscape.js +4 -11
  13. package/lib/dist/color/color.js +15 -15
  14. package/lib/dist/context/animation/animation-manager.js +7 -4
  15. package/lib/dist/context/context.d.ts +5 -18
  16. package/lib/dist/context/context.d.ts.map +1 -1
  17. package/lib/dist/context/context.js +43 -79
  18. package/lib/dist/controller/camera/orbit.d.ts +24 -2
  19. package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
  20. package/lib/dist/controller/camera/orbit.js +147 -103
  21. package/lib/dist/dataset/dataset.d.ts +1 -1
  22. package/lib/dist/dataset/dataset.d.ts.map +1 -1
  23. package/lib/dist/dataset/dataset.js +13 -18
  24. package/lib/dist/debug/debug.js +6 -5
  25. package/lib/dist/event/event.js +4 -2
  26. package/lib/dist/filter/chromatic-aberration.js +10 -10
  27. package/lib/dist/filter/filter.d.ts +10 -8
  28. package/lib/dist/filter/filter.d.ts.map +1 -1
  29. package/lib/dist/filter/filter.js +22 -20
  30. package/lib/dist/filter/hue-rotation.d.ts +1 -1
  31. package/lib/dist/filter/hue-rotation.d.ts.map +1 -1
  32. package/lib/dist/filter/hue-rotation.js +5 -5
  33. package/lib/dist/filter/index.d.ts +2 -0
  34. package/lib/dist/filter/index.d.ts.map +1 -1
  35. package/lib/dist/filter/index.js +3 -1
  36. package/lib/dist/filter/verbatim.d.ts +8 -0
  37. package/lib/dist/filter/verbatim.d.ts.map +1 -0
  38. package/lib/dist/filter/verbatim.js +20 -0
  39. package/lib/dist/filter/zoom.d.ts +12 -0
  40. package/lib/dist/filter/zoom.d.ts.map +1 -0
  41. package/lib/dist/filter/zoom.js +25 -0
  42. package/lib/dist/geometry/geometry.js +9 -17
  43. package/lib/dist/geometry/index.d.ts +1 -0
  44. package/lib/dist/geometry/index.d.ts.map +1 -1
  45. package/lib/dist/geometry/index.js +2 -1
  46. package/lib/dist/geometry/place.d.ts +12 -0
  47. package/lib/dist/geometry/place.d.ts.map +1 -0
  48. package/lib/dist/geometry/place.js +145 -0
  49. package/lib/dist/geometry/plane.d.ts +12 -0
  50. package/lib/dist/geometry/plane.d.ts.map +1 -0
  51. package/lib/dist/geometry/plane.js +51 -0
  52. package/lib/dist/index.d.ts +4 -1
  53. package/lib/dist/index.d.ts.map +1 -1
  54. package/lib/dist/index.js +5 -2
  55. package/lib/dist/input/inputs.js +3 -4
  56. package/lib/dist/input/keyboard.js +14 -14
  57. package/lib/dist/input/pointer.js +80 -104
  58. package/lib/dist/light/light.js +5 -8
  59. package/lib/dist/loader/asset.d.ts +5 -3
  60. package/lib/dist/loader/asset.d.ts.map +1 -1
  61. package/lib/dist/loader/asset.js +37 -24
  62. package/lib/dist/loader/binary.js +29 -24
  63. package/lib/dist/loader/image.js +31 -24
  64. package/lib/dist/log.js +7 -4
  65. package/lib/dist/material/diffuse.d.ts +10 -4
  66. package/lib/dist/material/diffuse.d.ts.map +1 -1
  67. package/lib/dist/material/diffuse.js +26 -18
  68. package/lib/dist/material/ghost.d.ts +5 -4
  69. package/lib/dist/material/ghost.d.ts.map +1 -1
  70. package/lib/dist/material/ghost.js +1 -4
  71. package/lib/dist/material/hull.d.ts +25 -0
  72. package/lib/dist/material/hull.d.ts.map +1 -0
  73. package/lib/dist/material/hull.js +27 -0
  74. package/lib/dist/material/index.d.ts +1 -0
  75. package/lib/dist/material/index.d.ts.map +1 -1
  76. package/lib/dist/material/index.js +2 -1
  77. package/lib/dist/material/material.d.ts +14 -5
  78. package/lib/dist/material/material.d.ts.map +1 -1
  79. package/lib/dist/material/material.js +14 -12
  80. package/lib/dist/material/normals.d.ts +5 -4
  81. package/lib/dist/material/normals.d.ts.map +1 -1
  82. package/lib/dist/material/normals.js +1 -4
  83. package/lib/dist/material/solid.d.ts +6 -5
  84. package/lib/dist/material/solid.d.ts.map +1 -1
  85. package/lib/dist/material/solid.js +7 -10
  86. package/lib/dist/math/mat3.d.ts +6 -2
  87. package/lib/dist/math/mat3.d.ts.map +1 -1
  88. package/lib/dist/math/mat3.js +43 -4
  89. package/lib/dist/math/mat4.js +2 -2
  90. package/lib/dist/math/math.js +5 -5
  91. package/lib/dist/math/quat.d.ts +4 -1
  92. package/lib/dist/math/quat.d.ts.map +1 -1
  93. package/lib/dist/math/quat.js +25 -4
  94. package/lib/dist/math/transfo.js +12 -10
  95. package/lib/dist/math/vec4.d.ts +3 -3
  96. package/lib/dist/math/vec4.d.ts.map +1 -1
  97. package/lib/dist/math/vec4.js +20 -1
  98. package/lib/dist/painter/axis/axis.js +5 -7
  99. package/lib/dist/painter/background/background.d.ts +1 -1
  100. package/lib/dist/painter/background/background.d.ts.map +1 -1
  101. package/lib/dist/painter/background/background.js +14 -16
  102. package/lib/dist/painter/clear.d.ts +4 -3
  103. package/lib/dist/painter/clear.d.ts.map +1 -1
  104. package/lib/dist/painter/clear.js +16 -19
  105. package/lib/dist/painter/debug/index.d.ts +2 -0
  106. package/lib/dist/painter/debug/index.d.ts.map +1 -0
  107. package/lib/dist/painter/debug/index.js +2 -0
  108. package/lib/dist/painter/debug/stencil/index.d.ts +2 -0
  109. package/lib/dist/painter/debug/stencil/index.d.ts.map +1 -0
  110. package/lib/dist/painter/debug/stencil/index.js +2 -0
  111. package/lib/dist/painter/debug/stencil/stencil.d.ts +11 -0
  112. package/lib/dist/painter/debug/stencil/stencil.d.ts.map +1 -0
  113. package/lib/dist/painter/debug/stencil/stencil.frag +10 -0
  114. package/lib/dist/painter/debug/stencil/stencil.js +53 -0
  115. package/lib/dist/painter/debug/stencil/stencil.vert +7 -0
  116. package/lib/dist/painter/debug/stencil.d.ts +11 -0
  117. package/lib/dist/painter/debug/stencil.d.ts.map +1 -0
  118. package/lib/dist/painter/debug/stencil.js +41 -0
  119. package/lib/dist/painter/depth.d.ts +5 -3
  120. package/lib/dist/painter/depth.d.ts.map +1 -1
  121. package/lib/dist/painter/depth.js +4 -10
  122. package/lib/dist/painter/filter/filter.d.ts +1 -1
  123. package/lib/dist/painter/filter/filter.d.ts.map +1 -1
  124. package/lib/dist/painter/filter/filter.js +20 -33
  125. package/lib/dist/painter/framebuffer.backup.d.ts +39 -0
  126. package/lib/dist/painter/framebuffer.backup.d.ts.map +1 -0
  127. package/lib/dist/painter/framebuffer.backup.js +122 -0
  128. package/lib/dist/painter/framebuffer.d.ts +41 -9
  129. package/lib/dist/painter/framebuffer.d.ts.map +1 -1
  130. package/lib/dist/painter/framebuffer.js +105 -90
  131. package/lib/dist/painter/group.js +6 -8
  132. package/lib/dist/painter/index.d.ts +1 -1
  133. package/lib/dist/painter/index.d.ts.map +1 -1
  134. package/lib/dist/painter/index.js +2 -2
  135. package/lib/dist/painter/logic.js +3 -3
  136. package/lib/dist/painter/mesh/gltf/gltf.d.ts +1 -1
  137. package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
  138. package/lib/dist/painter/mesh/gltf/gltf.js +35 -58
  139. package/lib/dist/painter/mesh/hull/hull.d.ts +12 -0
  140. package/lib/dist/painter/mesh/hull/hull.d.ts.map +1 -0
  141. package/lib/dist/painter/mesh/hull/hull.js +11 -0
  142. package/lib/dist/painter/mesh/mesh/mesh.d.ts +1 -1
  143. package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
  144. package/lib/dist/painter/mesh/mesh/mesh.js +34 -41
  145. package/lib/dist/painter/mesh/normals/normals.js +17 -20
  146. package/lib/dist/painter/node/node.js +8 -8
  147. package/lib/dist/painter/painter.js +11 -9
  148. package/lib/dist/painter/segments/segments.d.ts +11 -3
  149. package/lib/dist/painter/segments/segments.d.ts.map +1 -1
  150. package/lib/dist/painter/segments/segments.js +27 -27
  151. package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
  152. package/lib/dist/painter/skybox/skybox.js +12 -13
  153. package/lib/dist/painter/state/state.d.ts +10 -1
  154. package/lib/dist/painter/state/state.d.ts.map +1 -1
  155. package/lib/dist/painter/state/state.js +23 -25
  156. package/lib/dist/parser/gltf/gltf.d.ts +5 -2
  157. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
  158. package/lib/dist/parser/gltf/gltf.js +86 -55
  159. package/lib/dist/parser/mesh/wavefront.js +95 -92
  160. package/lib/dist/program/program.d.ts +6 -4
  161. package/lib/dist/program/program.d.ts.map +1 -1
  162. package/lib/dist/program/program.js +6 -11
  163. package/lib/dist/ref-map.js +9 -5
  164. package/lib/dist/resource/program.js +1 -2
  165. package/lib/dist/resource/resource.js +11 -7
  166. package/lib/dist/resource/texture2d.js +1 -2
  167. package/lib/dist/resource/textureCube.js +1 -2
  168. package/lib/dist/shader/code.d.ts +8 -8
  169. package/lib/dist/shader/code.d.ts.map +1 -1
  170. package/lib/dist/shader/code.js +1 -1
  171. package/lib/dist/shader/fragment.d.ts +11 -11
  172. package/lib/dist/shader/fragment.d.ts.map +1 -1
  173. package/lib/dist/shader/fragment.js +2 -14
  174. package/lib/dist/shader/vertex.d.ts +11 -11
  175. package/lib/dist/shader/vertex.d.ts.map +1 -1
  176. package/lib/dist/shader/vertex.js +2 -7
  177. package/lib/dist/table/index.d.ts +2 -0
  178. package/lib/dist/table/index.d.ts.map +1 -0
  179. package/lib/dist/table/index.js +2 -0
  180. package/lib/dist/table/table.d.ts +41 -0
  181. package/lib/dist/table/table.d.ts.map +1 -0
  182. package/lib/dist/table/table.js +101 -0
  183. package/lib/dist/texture/texture2d.d.ts +45 -21
  184. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  185. package/lib/dist/texture/texture2d.js +162 -129
  186. package/lib/dist/texture/texture2dArray.d.ts +43 -0
  187. package/lib/dist/texture/texture2dArray.d.ts.map +1 -0
  188. package/lib/dist/texture/texture2dArray.js +112 -0
  189. package/lib/dist/texture/textureCube.d.ts +12 -5
  190. package/lib/dist/texture/textureCube.d.ts.map +1 -1
  191. package/lib/dist/texture/textureCube.js +7 -25
  192. package/lib/dist/types/gltf.js +3 -9
  193. package/lib/dist/types/index.d.ts +0 -2
  194. package/lib/dist/types/index.d.ts.map +1 -1
  195. package/lib/dist/types/index.js +1 -3
  196. package/lib/dist/types/program.d.ts +3 -40
  197. package/lib/dist/types/program.d.ts.map +1 -1
  198. package/lib/dist/types/texture2d.d.ts +18 -2
  199. package/lib/dist/types/texture2d.d.ts.map +1 -1
  200. package/lib/dist/types/textureCube.d.ts +6 -15
  201. package/lib/dist/types/textureCube.d.ts.map +1 -1
  202. package/lib/dist/types/webgl.d.ts +22 -1
  203. package/lib/dist/types/webgl.d.ts.map +1 -1
  204. package/lib/dist/types/webgl.js +14 -1
  205. package/lib/dist/uniform/uniform-buffer-object.d.ts +49 -0
  206. package/lib/dist/uniform/uniform-buffer-object.d.ts.map +1 -0
  207. package/lib/dist/uniform/uniform-buffer-object.js +93 -0
  208. package/lib/dist/utils/action/camera.js +8 -7
  209. package/lib/dist/utils/bbox.js +3 -3
  210. package/lib/dist/utils/canvas.d.ts +28 -0
  211. package/lib/dist/utils/canvas.d.ts.map +1 -1
  212. package/lib/dist/utils/canvas.js +55 -1
  213. package/lib/dist/utils/framebuffer.d.ts +2 -0
  214. package/lib/dist/utils/framebuffer.d.ts.map +1 -0
  215. package/lib/dist/utils/framebuffer.js +7 -0
  216. package/lib/dist/utils/fullscreen.js +38 -31
  217. package/lib/dist/utils/index.d.ts +2 -0
  218. package/lib/dist/utils/index.d.ts.map +1 -1
  219. package/lib/dist/utils/index.js +3 -1
  220. package/lib/dist/utils/pbo.d.ts +9 -0
  221. package/lib/dist/utils/pbo.d.ts.map +1 -0
  222. package/lib/dist/utils/pbo.js +32 -0
  223. package/lib/dist/utils/ref-map.js +9 -5
  224. package/lib/dist/utils/state/stencil.d.ts +55 -1
  225. package/lib/dist/utils/state/stencil.d.ts.map +1 -1
  226. package/lib/dist/utils/state/stencil.js +20 -38
  227. package/lib/dist/utils/webgl.d.ts +1 -1
  228. package/lib/dist/utils/webgl.d.ts.map +1 -1
  229. package/lib/dist/vao/vao.d.ts +2 -1
  230. package/lib/dist/vao/vao.d.ts.map +1 -1
  231. package/lib/dist/vao/vao.js +10 -14
  232. package/lib/dist/webgl/index.d.ts +2 -0
  233. package/lib/dist/webgl/index.d.ts.map +1 -0
  234. package/lib/dist/webgl/index.js +2 -0
  235. package/lib/dist/webgl/texture/index.d.ts +3 -0
  236. package/lib/dist/webgl/texture/index.d.ts.map +1 -0
  237. package/lib/dist/webgl/texture/index.js +3 -0
  238. package/lib/dist/webgl/texture/texture2d.d.ts +38 -0
  239. package/lib/dist/webgl/texture/texture2d.d.ts.map +1 -0
  240. package/lib/dist/webgl/texture/texture2d.js +35 -0
  241. package/lib/dist/webgl/texture/types.d.ts +4 -0
  242. package/lib/dist/webgl/texture/types.d.ts.map +1 -0
  243. package/lib/dist/webgl/texture/types.js +2 -0
  244. package/package.json +3 -3
@@ -11,9 +11,9 @@ export function tgdComputeBoundingBox3D(dataset, attPositionName = "POSITION", m
11
11
  const { get } = dataset
12
12
  .assertAttribType(attPositionName, "vec3", "vec4")
13
13
  .getAttribAccessor(attPositionName);
14
- const min = minVector ?? new TgdVec3();
14
+ const min = minVector !== null && minVector !== void 0 ? minVector : new TgdVec3();
15
15
  min.reset(get(0, 0), get(0, 1), get(0, 2));
16
- const max = maxVector ?? new TgdVec3();
16
+ const max = maxVector !== null && maxVector !== void 0 ? maxVector : new TgdVec3();
17
17
  max.from(min);
18
18
  for (let index = 1; index < dataset.count; index++) {
19
19
  const x = get(index, 0);
@@ -28,4 +28,4 @@ export function tgdComputeBoundingBox3D(dataset, attPositionName = "POSITION", m
28
28
  }
29
29
  return { min, max };
30
30
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9iYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkM7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDbkMsT0FBNkIsRUFDN0IsZUFBZSxHQUFHLFVBQVUsRUFDNUIsU0FBbUIsRUFDbkIsU0FBbUI7SUFLbkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU87U0FDbEIsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7U0FDakQsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDdkMsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUE7SUFDdEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFDLE1BQU0sR0FBRyxHQUFHLFNBQVMsSUFBSSxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBQ3RDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDYixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDdkIsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN2QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3ZCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO0FBQ3ZCLENBQUMifQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9iYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkM7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDbkMsT0FBNkIsRUFDN0IsZUFBZSxHQUFHLFVBQVUsRUFDNUIsU0FBbUIsRUFDbkIsU0FBbUI7SUFLbkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU87U0FDbEIsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7U0FDakQsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDdkMsTUFBTSxHQUFHLEdBQUcsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLEdBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQTtJQUN0QyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDMUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLEdBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQTtJQUN0QyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2IsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3ZCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDdkIsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN2QixHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMxQixHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMxQixHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMxQixHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMxQixHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMxQixHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQTtBQUN2QixDQUFDIn0=
@@ -10,4 +10,32 @@ export declare function tgdCanvasCreateWithContext2D(width: number, height: numb
10
10
  canvas: HTMLCanvasElement;
11
11
  ctx: CanvasRenderingContext2D;
12
12
  };
13
+ /**
14
+ * A palette is an image with a different (or not) color for each pixel.
15
+ * It can be used in a texture with NEAREST filter, for instance.
16
+ * @param colors CSS colors of each pixel
17
+ * @param colums If not defined, the canvas will have a size of (colors.length, 1).
18
+ * But if `colums` is defined, it will be the width of the vanva and the height will
19
+ * be computed to hold all the colors.
20
+ * If there are more pixels in the canvas that colors, we just wrap around the colors
21
+ * array.
22
+ * @param rows If defined, it will be the height of the canvas.
23
+ * @example
24
+ * ```
25
+ * // Create a 5x5 checkboard.
26
+ * const canvas = tgdCanvasCreatePalette(["#000", "#fff"], 5, 5)
27
+ * ```
28
+ */
29
+ export declare function tgdCanvasCreatePalette(colors: string[], colums?: number, rows?: number): HTMLCanvasElement;
30
+ export declare function tgdCanvasCreateGradientHorizontal(size: number, colors: string[]): HTMLCanvasElement;
31
+ export declare function tgdCanvasCreateCreateGradientvertical(size: number, colors: string[]): HTMLCanvasElement;
32
+ /**
33
+ * Create a canvas with a linear gradient.
34
+ * @param width Width of the resulting canvas.
35
+ * @param height Height of the resulting canvas.
36
+ * @param dirX X coord of the direction vector.
37
+ * @param dirY Y coord of the direction vector.
38
+ * @param colors CSS colors of each step
39
+ */
40
+ export declare function tgdCanvasCreateGradient(width: number, height: number, dirX: number, dirY: number, colors: string[]): HTMLCanvasElement;
13
41
  //# sourceMappingURL=canvas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/utils/canvas.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACf,iBAAiB,CAKnB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,gCAAgC,GAC5C;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,GAAG,EAAE,wBAAwB,CAAA;CAAE,CAQ9D"}
1
+ {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/utils/canvas.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACf,iBAAiB,CAKnB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,gCAAgC,GAC5C;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,GAAG,EAAE,wBAAwB,CAAA;CAAE,CAQ9D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,SAAI,EAAE,IAAI,SAAI,qBAa5E;AAED,wBAAgB,iCAAiC,CAC7C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,qBAGnB;AAED,wBAAgB,qCAAqC,CACjD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,qBAGnB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,qBAUnB"}
@@ -20,4 +20,58 @@ export function tgdCanvasCreateWithContext2D(width, height, settings) {
20
20
  throw Error("Unable to create 2D context!");
21
21
  return { canvas, ctx };
22
22
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NhbnZhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzNCLEtBQWEsRUFDYixNQUFjO0lBRWQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMvQyxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUN0QixPQUFPLE1BQU0sQ0FBQTtBQUNqQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDRCQUE0QixDQUN4QyxLQUFhLEVBQ2IsTUFBYyxFQUNkLFFBQTJDO0lBRTNDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDL0MsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDN0MsSUFBSSxDQUFDLEdBQUc7UUFBRSxNQUFNLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0lBRXJELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUE7QUFDMUIsQ0FBQyJ9
23
+ /**
24
+ * A palette is an image with a different (or not) color for each pixel.
25
+ * It can be used in a texture with NEAREST filter, for instance.
26
+ * @param colors CSS colors of each pixel
27
+ * @param colums If not defined, the canvas will have a size of (colors.length, 1).
28
+ * But if `colums` is defined, it will be the width of the vanva and the height will
29
+ * be computed to hold all the colors.
30
+ * If there are more pixels in the canvas that colors, we just wrap around the colors
31
+ * array.
32
+ * @param rows If defined, it will be the height of the canvas.
33
+ * @example
34
+ * ```
35
+ * // Create a 5x5 checkboard.
36
+ * const canvas = tgdCanvasCreatePalette(["#000", "#fff"], 5, 5)
37
+ * ```
38
+ */
39
+ export function tgdCanvasCreatePalette(colors, colums = 0, rows = 0) {
40
+ const width = colums > 0 ? colums : colors.length;
41
+ const height = rows > 0 ? rows : Math.ceil(colors.length / width);
42
+ const { canvas, ctx } = tgdCanvasCreateWithContext2D(width, height);
43
+ let i = 0;
44
+ for (let y = 0; y < height; y++) {
45
+ for (let x = 0; x < width; x++) {
46
+ ctx.fillStyle = colors[i % colors.length];
47
+ ctx.fillRect(x, y, 1, 1);
48
+ i++;
49
+ }
50
+ }
51
+ return canvas;
52
+ }
53
+ export function tgdCanvasCreateGradientHorizontal(size, colors) {
54
+ return tgdCanvasCreateGradient(size, 1, 1, 0, colors);
55
+ }
56
+ export function tgdCanvasCreateCreateGradientvertical(size, colors) {
57
+ return tgdCanvasCreateGradient(1, size, 0, 1, colors);
58
+ }
59
+ /**
60
+ * Create a canvas with a linear gradient.
61
+ * @param width Width of the resulting canvas.
62
+ * @param height Height of the resulting canvas.
63
+ * @param dirX X coord of the direction vector.
64
+ * @param dirY Y coord of the direction vector.
65
+ * @param colors CSS colors of each step
66
+ */
67
+ export function tgdCanvasCreateGradient(width, height, dirX, dirY, colors) {
68
+ const { canvas, ctx } = tgdCanvasCreateWithContext2D(width, height);
69
+ const gradient = ctx.createLinearGradient(0, 0, width * dirX, height * dirY);
70
+ for (let i = 0; i < colors.length; i++) {
71
+ gradient.addColorStop(i / (colors.length - 1), colors[i]);
72
+ }
73
+ ctx.fillStyle = gradient;
74
+ ctx.fillRect(0, 0, width, height);
75
+ return canvas;
76
+ }
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NhbnZhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzNCLEtBQWEsRUFDYixNQUFjO0lBRWQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMvQyxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUN0QixPQUFPLE1BQU0sQ0FBQTtBQUNqQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDRCQUE0QixDQUN4QyxLQUFhLEVBQ2IsTUFBYyxFQUNkLFFBQTJDO0lBRTNDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDL0MsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDN0MsSUFBSSxDQUFDLEdBQUc7UUFBRSxNQUFNLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0lBRXJELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUE7QUFDMUIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUFnQixFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUM7SUFDekUsTUFBTSxLQUFLLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFBO0lBQ2pELE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFBO0lBQ2pFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsNEJBQTRCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ25FLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNULEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM5QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDN0IsR0FBRyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN6QyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3hCLENBQUMsRUFBRSxDQUFBO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQTtBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLGlDQUFpQyxDQUM3QyxJQUFZLEVBQ1osTUFBZ0I7SUFFaEIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxxQ0FBcUMsQ0FDakQsSUFBWSxFQUNaLE1BQWdCO0lBRWhCLE9BQU8sdUJBQXVCLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQ3pELENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNuQyxLQUFhLEVBQ2IsTUFBYyxFQUNkLElBQVksRUFDWixJQUFZLEVBQ1osTUFBZ0I7SUFFaEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDbkUsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUE7SUFDNUUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNyQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDN0QsQ0FBQztJQUNELEdBQUcsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFBO0lBQ3hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDakMsT0FBTyxNQUFNLENBQUE7QUFDakIsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ export declare function webglCreateFramebuffer(gl: WebGL2RenderingContext): WebGLFramebuffer;
2
+ //# sourceMappingURL=framebuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framebuffer.d.ts","sourceRoot":"","sources":["../../src/utils/framebuffer.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAClC,EAAE,EAAE,sBAAsB,GAC3B,gBAAgB,CAKlB"}
@@ -0,0 +1,7 @@
1
+ export function webglCreateFramebuffer(gl) {
2
+ const fb = gl.createFramebuffer();
3
+ if (!fb)
4
+ throw Error("Unable to create a WebGLFramebuffer!");
5
+ return fb;
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVidWZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZnJhbWVidWZmZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLHNCQUFzQixDQUNsQyxFQUEwQjtJQUUxQixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtJQUNqQyxJQUFJLENBQUMsRUFBRTtRQUFFLE1BQU0sS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUE7SUFFNUQsT0FBTyxFQUFFLENBQUE7QUFDYixDQUFDIn0=
@@ -1,3 +1,4 @@
1
+ import { __awaiter } from "tslib";
1
2
  /**
2
3
  * Check if an element is in fullscreen or not.
3
4
  * @returns `true` if `elem` is displayed in fullscreen.
@@ -20,45 +21,51 @@ export function tgdFullscreenTest(elem) {
20
21
  * Request for an element to go fullscreen.
21
22
  * @returns `true` in case of success.
22
23
  */
23
- export async function tgdFullscreenRequest(element, options = {
24
- navigationUI: "hide",
25
- }) {
26
- if (!element)
27
- return false;
28
- try {
29
- await element.requestFullscreen(options);
30
- return true;
31
- }
32
- catch (ex) {
33
- return false;
34
- }
24
+ export function tgdFullscreenRequest(element_1) {
25
+ return __awaiter(this, arguments, void 0, function* (element, options = {
26
+ navigationUI: "hide",
27
+ }) {
28
+ if (!element)
29
+ return false;
30
+ try {
31
+ yield element.requestFullscreen(options);
32
+ return true;
33
+ }
34
+ catch (ex) {
35
+ return false;
36
+ }
37
+ });
35
38
  }
36
39
  /**
37
40
  * Exit fullscreen mode.
38
41
  * @returns `true` in case of success.
39
42
  */
40
- export async function tgdFullscreenExit() {
41
- if (!document.fullscreenElement)
42
- return false;
43
- try {
44
- await document.exitFullscreen();
45
- return true;
46
- }
47
- catch (ex) {
48
- return false;
49
- }
43
+ export function tgdFullscreenExit() {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ if (!document.fullscreenElement)
46
+ return false;
47
+ try {
48
+ yield document.exitFullscreen();
49
+ return true;
50
+ }
51
+ catch (ex) {
52
+ return false;
53
+ }
54
+ });
50
55
  }
51
56
  /**
52
57
  * If `element` is not in fullscreen mode, request it.
53
58
  * Otherwise, exit from fullscreen mode.
54
59
  */
55
- export async function tgdFullscreenToggle(element, options = {
56
- navigationUI: "hide",
57
- }) {
58
- if (!element)
59
- return false;
60
- return tgdFullscreenTest(element)
61
- ? tgdFullscreenExit()
62
- : tgdFullscreenRequest(element, options);
60
+ export function tgdFullscreenToggle(element_1) {
61
+ return __awaiter(this, arguments, void 0, function* (element, options = {
62
+ navigationUI: "hide",
63
+ }) {
64
+ if (!element)
65
+ return false;
66
+ return tgdFullscreenTest(element)
67
+ ? tgdFullscreenExit()
68
+ : tgdFullscreenRequest(element, options);
69
+ });
63
70
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mdWxsc2NyZWVuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFvQjtJQUNsRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUE7SUFDdkMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUVoQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFBO0lBQy9CLE9BQU8sTUFBTSxFQUFFLENBQUM7UUFDWixJQUFJLE1BQU0sS0FBSyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN4QyxPQUFPLENBQ0gsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsV0FBVztnQkFDckMsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsWUFBWSxDQUMxQyxDQUFBO1FBQ0wsQ0FBQztRQUNELE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFBO0lBQ2pDLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLENBQUE7QUFDOUMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsb0JBQW9CLENBQ3RDLE9BQXVCLEVBQ3ZCLFVBQTZCO0lBQ3pCLFlBQVksRUFBRSxNQUFNO0NBQ3ZCO0lBRUQsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUUxQixJQUFJLENBQUM7UUFDRCxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN4QyxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7SUFBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ1YsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQztBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQjtJQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQjtRQUFFLE9BQU8sS0FBSyxDQUFBO0lBRTdDLElBQUksQ0FBQztRQUNELE1BQU0sUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQy9CLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDVixPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQ3JDLE9BQXVCLEVBQ3ZCLFVBQTZCO0lBQ3pCLFlBQVksRUFBRSxNQUFNO0NBQ3ZCO0lBRUQsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUUxQixPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztRQUM3QixDQUFDLENBQUMsaUJBQWlCLEVBQUU7UUFDckIsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUNoRCxDQUFDIn0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mdWxsc2NyZWVuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBb0I7SUFDbEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFBO0lBQ3ZDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxLQUFLLENBQUE7SUFFaEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQTtJQUMvQixPQUFPLE1BQU0sRUFBRSxDQUFDO1FBQ1osSUFBSSxNQUFNLEtBQUssUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUNILElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVc7Z0JBQ3JDLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FDMUMsQ0FBQTtRQUNMLENBQUM7UUFDRCxNQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQTtJQUNqQyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUMsaUJBQWlCLEtBQUssSUFBSSxDQUFBO0FBQzlDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQWdCLG9CQUFvQjt5REFDdEMsT0FBdUIsRUFDdkIsVUFBNkI7UUFDekIsWUFBWSxFQUFFLE1BQU07S0FDdkI7UUFFRCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFBO1FBRTFCLElBQUksQ0FBQztZQUNELE1BQU0sT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3hDLE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztRQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDVixPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO0lBQ0wsQ0FBQztDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFnQixpQkFBaUI7O1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCO1lBQUUsT0FBTyxLQUFLLENBQUE7UUFFN0MsSUFBSSxDQUFDO1lBQ0QsTUFBTSxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUE7WUFDL0IsT0FBTyxJQUFJLENBQUE7UUFDZixDQUFDO1FBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNWLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0NBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQWdCLG1CQUFtQjt5REFDckMsT0FBdUIsRUFDdkIsVUFBNkI7UUFDekIsWUFBWSxFQUFFLE1BQU07S0FDdkI7UUFFRCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFBO1FBRTFCLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxpQkFBaUIsRUFBRTtZQUNyQixDQUFDLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2hELENBQUM7Q0FBQSJ9
@@ -3,7 +3,9 @@ export * from "./assert";
3
3
  export * from "./bbox";
4
4
  export * from "./canvas";
5
5
  export * from "./ease-func";
6
+ export * from "./framebuffer";
6
7
  export * from "./fullscreen";
8
+ export * from "./pbo";
7
9
  export * from "./state";
8
10
  export * from "./webgl";
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
@@ -3,7 +3,9 @@ export * from "./assert.js";
3
3
  export * from "./bbox.js";
4
4
  export * from "./canvas.js";
5
5
  export * from "./ease-func/index.js";
6
+ export * from "./framebuffer.js";
6
7
  export * from "./fullscreen.js";
8
+ export * from "./pbo.js";
7
9
  export * from "./state/index.js";
8
10
  export * from "./webgl.js";
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxTQUFTLENBQUEifQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxlQUFlLENBQUE7QUFDN0IsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxPQUFPLENBQUE7QUFDckIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxTQUFTLENBQUEifQ==
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Creating a Pixel Buffer Object is usefull to store big images into the GPU.
3
+ *
4
+ * @param gl
5
+ * @param source
6
+ * @returns Handle of the created PBO.
7
+ */
8
+ export declare function tgdPixelBufferObjectCreate(gl: WebGL2RenderingContext, source: HTMLImageElement | HTMLCanvasElement | Uint8ClampedArray, width?: number, height?: number): WebGLBuffer;
9
+ //# sourceMappingURL=pbo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbo.d.ts","sourceRoot":"","sources":["../../src/utils/pbo.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACtC,EAAE,EAAE,sBAAsB,EAC1B,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,EAChE,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,eAWlB"}
@@ -0,0 +1,32 @@
1
+ import { tgdCanvasCreateWithContext2D } from "./canvas.js";
2
+ /**
3
+ * Creating a Pixel Buffer Object is usefull to store big images into the GPU.
4
+ *
5
+ * @param gl
6
+ * @param source
7
+ * @returns Handle of the created PBO.
8
+ */
9
+ export function tgdPixelBufferObjectCreate(gl, source, width, height) {
10
+ const { data, width: w, height: h } = getData(source, width, height);
11
+ const buffer = gl.createBuffer();
12
+ if (!buffer)
13
+ throw Error("Unable to create a WebGL2 pixel buffer buffer!");
14
+ gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, buffer);
15
+ gl.bufferData(gl.PIXEL_UNPACK_BUFFER, data, gl.STATIC_DRAW);
16
+ gl.pixelStorei(gl.UNPACK_ROW_LENGTH, w);
17
+ gl.pixelStorei(gl.UNPACK_IMAGE_HEIGHT, h);
18
+ return buffer;
19
+ }
20
+ function getData(source, width, height) {
21
+ if (source instanceof Uint8ClampedArray) {
22
+ if (typeof width === "number" && typeof height === "number") {
23
+ return { data: source, width, height };
24
+ }
25
+ throw Error("If you give a Uint8Array to tgdPixelBufferObjectCreate(), you must specify both width and height arguments!");
26
+ }
27
+ const { width: w, height: h } = source;
28
+ const { ctx } = tgdCanvasCreateWithContext2D(w, h);
29
+ ctx.drawImage(source, 0, 0);
30
+ return { data: ctx.getImageData(0, 0, w, h).data, width: w, height: h };
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGJvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3Biby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFdkQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUN0QyxFQUEwQixFQUMxQixNQUFnRSxFQUNoRSxLQUFjLEVBQ2QsTUFBZTtJQUVmLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDcEUsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ2hDLElBQUksQ0FBQyxNQUFNO1FBQUUsTUFBTSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQTtJQUUxRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUM3QyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzNELEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3ZDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3pDLE9BQU8sTUFBTSxDQUFBO0FBQ2pCLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FDWixNQUFnRSxFQUNoRSxLQUFjLEVBQ2QsTUFBZTtJQUVmLElBQUksTUFBTSxZQUFZLGlCQUFpQixFQUFFLENBQUM7UUFDdEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFBO1FBQzFDLENBQUM7UUFDRCxNQUFNLEtBQUssQ0FDUCw2R0FBNkcsQ0FDaEgsQ0FBQTtJQUNMLENBQUM7SUFFRCxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFBO0lBQ3RDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDbEQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzNCLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUE7QUFDM0UsQ0FBQyJ9
@@ -3,17 +3,20 @@
3
3
  * And it tells you when you delete it as many times.
4
4
  */
5
5
  export default class RefMap {
6
- map = new Map();
7
- count = new Map();
6
+ constructor() {
7
+ this.map = new Map();
8
+ this.count = new Map();
9
+ }
8
10
  /**
9
11
  * If `key` is already stored in the map,
10
12
  * we add a reference to the mapped value and return it.
11
13
  * If not, we create the mapped value by calling `factory()`.
12
14
  */
13
15
  add(key, factory) {
16
+ var _a;
14
17
  const { map, count } = this;
15
18
  if (count.has(key)) {
16
- count.set(key, 1 + (count.get(key) ?? 0));
19
+ count.set(key, 1 + ((_a = count.get(key)) !== null && _a !== void 0 ? _a : 0));
17
20
  const curVal = map.get(key);
18
21
  if (!curVal)
19
22
  throw Error("[CountMap] Map should not be empty!");
@@ -31,10 +34,11 @@ export default class RefMap {
31
34
  * return `undefined`.
32
35
  */
33
36
  delete(key) {
37
+ var _a;
34
38
  const { map, count } = this;
35
39
  if (!map.has(key))
36
40
  return;
37
- const newCount = (count.get(key) ?? 0) - 1;
41
+ const newCount = ((_a = count.get(key)) !== null && _a !== void 0 ? _a : 0) - 1;
38
42
  if (newCount > 0) {
39
43
  count.set(key, newCount);
40
44
  return;
@@ -45,4 +49,4 @@ export default class RefMap {
45
49
  return value;
46
50
  }
47
51
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZWYtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sTUFBTTtJQUNOLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQTtJQUNqQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUE7SUFFbkQ7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxHQUFZLEVBQUUsT0FBc0I7UUFDcEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDM0IsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDM0IsSUFBSSxDQUFDLE1BQU07Z0JBQUUsTUFBTSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQTtZQUMvRCxPQUFPLE1BQU0sQ0FBQTtRQUNqQixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFFLENBQUE7UUFDeEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDcEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDakIsT0FBTyxNQUFNLENBQUE7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLEdBQVk7UUFDZixNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQTtRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFNO1FBRXpCLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDMUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUN4QixPQUFNO1FBQ1YsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDMUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNmLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDakIsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQztDQUNKIn0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZWYtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sTUFBTTtJQUEzQjtRQUNxQixRQUFHLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUE7UUFDakMsVUFBSyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFBO0lBMkN2RCxDQUFDO0lBekNHOzs7O09BSUc7SUFDSCxHQUFHLENBQUMsR0FBWSxFQUFFLE9BQXNCOztRQUNwQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQTtRQUMzQixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFBLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLG1DQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDekMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUMzQixJQUFJLENBQUMsTUFBTTtnQkFBRSxNQUFNLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO1lBQy9ELE9BQU8sTUFBTSxDQUFBO1FBQ2pCLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQTtRQUN4QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUNwQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNqQixPQUFPLE1BQU0sQ0FBQTtJQUNqQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBWTs7UUFDZixNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQTtRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFNO1FBRXpCLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBQSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxtQ0FBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDMUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUN4QixPQUFNO1FBQ1YsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDMUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNmLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDakIsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQztDQUNKIn0=
@@ -16,7 +16,61 @@ export interface WebglStencilOptions {
16
16
  operationFront2FailDepth: WebglEnumStencilOperation;
17
17
  operationFront3Pass: WebglEnumStencilOperation;
18
18
  }
19
- export declare const webglPresetStencil: Readonly<Record<"off" | "write1" | "paintIf0" | "paintIf1", WebglStencilOptions>>;
19
+ export declare const webglPresetStencil: {
20
+ off: {
21
+ enabled: boolean;
22
+ maskBack: number;
23
+ maskFront: number;
24
+ functionBack: WebglEnumStencilFunction;
25
+ functionBackMask: number;
26
+ functionBackRef: number;
27
+ functionFront: WebglEnumStencilFunction;
28
+ functionFrontMask: number;
29
+ functionFrontRef: number;
30
+ operationBack1FailStencil: WebglEnumStencilOperation;
31
+ operationBack2FailDepth: WebglEnumStencilOperation;
32
+ operationBack3Pass: WebglEnumStencilOperation;
33
+ operationFront1FailStencil: WebglEnumStencilOperation;
34
+ operationFront2FailDepth: WebglEnumStencilOperation;
35
+ operationFront3Pass: WebglEnumStencilOperation;
36
+ };
37
+ /** Set the stencil to `value` for each fragment. */
38
+ write: (value: number) => {
39
+ enabled: boolean;
40
+ maskBack: number;
41
+ maskFront: number;
42
+ functionBack: WebglEnumStencilFunction;
43
+ functionBackRef: number;
44
+ functionBackMask: number;
45
+ functionFront: WebglEnumStencilFunction;
46
+ functionFrontRef: number;
47
+ functionFrontMask: number;
48
+ operationBack1FailStencil: WebglEnumStencilOperation;
49
+ operationBack2FailDepth: WebglEnumStencilOperation;
50
+ operationBack3Pass: WebglEnumStencilOperation;
51
+ operationFront1FailStencil: WebglEnumStencilOperation;
52
+ operationFront2FailDepth: WebglEnumStencilOperation;
53
+ operationFront3Pass: WebglEnumStencilOperation;
54
+ };
55
+ /** Paint only if the stencil is equal to `value` */
56
+ paintIfEqual: (value: number) => {
57
+ enabled: boolean;
58
+ maskBack: number;
59
+ maskFront: number;
60
+ functionBack: WebglEnumStencilFunction;
61
+ functionBackRef: number;
62
+ functionBackMask: number;
63
+ functionFront: WebglEnumStencilFunction;
64
+ functionFrontRef: number;
65
+ functionFrontMask: number;
66
+ operationBack1FailStencil: WebglEnumStencilOperation;
67
+ operationBack2FailDepth: WebglEnumStencilOperation;
68
+ operationBack3Pass: WebglEnumStencilOperation;
69
+ operationFront1FailStencil: WebglEnumStencilOperation;
70
+ operationFront2FailDepth: WebglEnumStencilOperation;
71
+ operationFront3Pass: WebglEnumStencilOperation;
72
+ };
73
+ };
20
74
  export declare function webglStencilSet(gl: WebGL2RenderingContext, stencil: WebglStencilOptions): void;
21
75
  export declare function webglStencilGet(gl: WebGL2RenderingContext): WebglStencilOptions;
22
76
  export declare function webglStencilExec(gl: WebGL2RenderingContext, stencil: WebglStencilOptions, action: () => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"stencil.d.ts","sourceRoot":"","sources":["../../../src/utils/state/stencil.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAEhF,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,wBAAwB,CAAA;IACtC,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,wBAAwB,CAAA;IACvC,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,uBAAuB,EAAE,yBAAyB,CAAA;IAClD,kBAAkB,EAAE,yBAAyB,CAAA;IAC7C,0BAA0B,EAAE,yBAAyB,CAAA;IACrD,wBAAwB,EAAE,yBAAyB,CAAA;IACnD,mBAAmB,EAAE,yBAAyB,CAAA;CACjD;AAED,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CACrC,MAAM,CAAC,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,EAAE,mBAAmB,CAAC,CAyE1E,CAAA;AAED,wBAAgB,eAAe,CAC3B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,EAAE,mBAAmB,QAiC/B;AAED,wBAAgB,eAAe,CAC3B,EAAE,EAAE,sBAAsB,GAC3B,mBAAmB,CAqCrB;AAED,wBAAgB,gBAAgB,CAC5B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,IAAI,QASrB;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,SAAkB,QA+D5B"}
1
+ {"version":3,"file":"stencil.d.ts","sourceRoot":"","sources":["../../../src/utils/state/stencil.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAEhF,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,wBAAwB,CAAA;IACtC,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,wBAAwB,CAAA;IACvC,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,uBAAuB,EAAE,yBAAyB,CAAA;IAClD,kBAAkB,EAAE,yBAAyB,CAAA;IAC7C,0BAA0B,EAAE,yBAAyB,CAAA;IACrD,wBAAwB,EAAE,yBAAyB,CAAA;IACnD,mBAAmB,EAAE,yBAAyB,CAAA;CACjD;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;IAkB3B,oDAAoD;mBACrC,MAAM;;;;;;;;;;;;;;;;;IAiBrB,oDAAoD;0BAC9B,MAAM;;;;;;;;;;;;;;;;;CAiB/B,CAAA;AAED,wBAAgB,eAAe,CAC3B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,EAAE,mBAAmB,QAiC/B;AAED,wBAAgB,eAAe,CAC3B,EAAE,EAAE,sBAAsB,GAC3B,mBAAmB,CAqCrB;AAED,wBAAgB,gBAAgB,CAC5B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,IAAI,QASrB;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,SAAkB,QA+D5B"}
@@ -18,60 +18,42 @@ export const webglPresetStencil = {
18
18
  operationFront2FailDepth: WebglEnumStencilOperation.KEEP,
19
19
  operationFront3Pass: WebglEnumStencilOperation.KEEP,
20
20
  },
21
- /** Set the stencil to 1 behinf each fragment. */
22
- write1: {
21
+ /** Set the stencil to `value` for each fragment. */
22
+ write: (value) => ({
23
23
  enabled: true,
24
- maskBack: 0x01,
25
- maskFront: 0x01,
24
+ maskBack: 0xff,
25
+ maskFront: 0xff,
26
26
  functionBack: WebglEnumStencilFunction.ALWAYS,
27
- functionBackRef: 1,
28
- functionBackMask: 0x01,
27
+ functionBackRef: value,
28
+ functionBackMask: 0xff,
29
29
  functionFront: WebglEnumStencilFunction.ALWAYS,
30
- functionFrontRef: 1,
31
- functionFrontMask: 0x01,
30
+ functionFrontRef: value,
31
+ functionFrontMask: 0xff,
32
32
  operationBack1FailStencil: WebglEnumStencilOperation.KEEP,
33
33
  operationBack2FailDepth: WebglEnumStencilOperation.KEEP,
34
- operationBack3Pass: WebglEnumStencilOperation.KEEP,
34
+ operationBack3Pass: WebglEnumStencilOperation.REPLACE,
35
35
  operationFront1FailStencil: WebglEnumStencilOperation.KEEP,
36
36
  operationFront2FailDepth: WebglEnumStencilOperation.KEEP,
37
37
  operationFront3Pass: WebglEnumStencilOperation.REPLACE,
38
- },
39
- /** Paint only if the stencil is equal to 0 */
40
- paintIf0: {
38
+ }),
39
+ /** Paint only if the stencil is equal to `value` */
40
+ paintIfEqual: (value) => ({
41
41
  enabled: true,
42
42
  maskBack: 0x00,
43
43
  maskFront: 0x00,
44
- functionBack: WebglEnumStencilFunction.ALWAYS,
45
- functionBackRef: 0,
46
- functionBackMask: 0x01,
47
- functionFront: WebglEnumStencilFunction.EQUAL,
48
- functionFrontRef: 0,
49
- functionFrontMask: 0x01,
50
- operationBack1FailStencil: WebglEnumStencilOperation.KEEP,
51
- operationBack2FailDepth: WebglEnumStencilOperation.KEEP,
52
- operationBack3Pass: WebglEnumStencilOperation.KEEP,
53
- operationFront1FailStencil: WebglEnumStencilOperation.KEEP,
54
- operationFront2FailDepth: WebglEnumStencilOperation.KEEP,
55
- operationFront3Pass: WebglEnumStencilOperation.KEEP,
56
- },
57
- /** Paint only if the stencil is equal to 1 */
58
- paintIf1: {
59
- maskBack: 0x00,
60
- maskFront: 0x00,
61
- enabled: true,
62
- functionBack: WebglEnumStencilFunction.ALWAYS,
63
- functionBackRef: 1,
64
- functionBackMask: 0x01,
44
+ functionBack: WebglEnumStencilFunction.EQUAL,
45
+ functionBackRef: value,
46
+ functionBackMask: 0xff,
65
47
  functionFront: WebglEnumStencilFunction.EQUAL,
66
- functionFrontRef: 1,
67
- functionFrontMask: 0x01,
48
+ functionFrontRef: value,
49
+ functionFrontMask: 0xff,
68
50
  operationBack1FailStencil: WebglEnumStencilOperation.KEEP,
69
51
  operationBack2FailDepth: WebglEnumStencilOperation.KEEP,
70
52
  operationBack3Pass: WebglEnumStencilOperation.KEEP,
71
53
  operationFront1FailStencil: WebglEnumStencilOperation.KEEP,
72
54
  operationFront2FailDepth: WebglEnumStencilOperation.KEEP,
73
55
  operationFront3Pass: WebglEnumStencilOperation.KEEP,
74
- },
56
+ }),
75
57
  };
76
58
  export function webglStencilSet(gl, stencil) {
77
59
  if (!stencil.enabled) {
@@ -90,7 +72,7 @@ export function webglStencilSet(gl, stencil) {
90
72
  export function webglStencilGet(gl) {
91
73
  const enabled = Boolean(gl.getParameter(gl.STENCIL_TEST));
92
74
  if (!enabled)
93
- return { ...webglPresetStencil.off };
75
+ return Object.assign({}, webglPresetStencil.off);
94
76
  return {
95
77
  enabled,
96
78
  maskBack: gl.getParameter(gl.STENCIL_BACK_WRITEMASK),
@@ -179,4 +161,4 @@ export function webglDebugStencil(gl, caption = "Stencil test:") {
179
161
  ]);
180
162
  }
181
163
  }
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlbmNpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zdGF0ZS9zdGVuY2lsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQW9CaEYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBRTNCO0lBQ0EsR0FBRyxFQUFFO1FBQ0QsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsQ0FBQztRQUNYLFNBQVMsRUFBRSxDQUFDO1FBQ1osWUFBWSxFQUFFLHdCQUF3QixDQUFDLE1BQU07UUFDN0MsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQixlQUFlLEVBQUUsQ0FBQztRQUNsQixhQUFhLEVBQUUsd0JBQXdCLENBQUMsTUFBTTtRQUM5QyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BCLGdCQUFnQixFQUFFLENBQUM7UUFDbkIseUJBQXlCLEVBQUUseUJBQXlCLENBQUMsSUFBSTtRQUN6RCx1QkFBdUIsRUFBRSx5QkFBeUIsQ0FBQyxJQUFJO1FBQ3ZELGtCQUFrQixFQUFFLHlCQUF5QixDQUFDLElBQUk7UUFDbEQsMEJBQTBCLEVBQUUseUJBQXlCLENBQUMsSUFBSTtRQUMxRCx3QkFBd0IsRUFBRSx5QkFBeUIsQ0FBQyxJQUFJO1FBQ3hELG1CQUFtQixFQUFFLHlCQUF5QixDQUFDLElBQUk7S0FDdEQ7SUFDRCxpREFBaUQ7SUFDakQsTUFBTSxFQUFFO1FBQ0osT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsSUFBSTtRQUNkLFNBQVMsRUFBRSxJQUFJO1FBQ2YsWUFBWSxFQUFFLHdCQUF3QixDQUFDLE1BQU07UUFDN0MsZUFBZSxFQUFFLENBQUM7UUFDbEIsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixhQUFhLEVBQUUsd0JBQXdCLENBQUMs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
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlbmNpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zdGF0ZS9zdGVuY2lsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQW9CaEYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDOUIsR0FBRyxFQUFFO1FBQ0QsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsQ0FBQztRQUNYLFNBQVMsRUFBRSxDQUFDO1FBQ1osWUFBWSxFQUFFLHdCQUF3QixDQUFDLE1BQU07UUFDN0MsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQixlQUFlLEVBQUUsQ0FBQztRQUNsQixhQUFhLEVBQUUsd0JBQXdCLENBQUMsTUFBTTtRQUM5QyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BCLGdCQUFnQixFQUFFLENBQUM7UUFDbkIseUJBQXlCLEVBQUUseUJBQXlCLENBQUMsSUFBSTtRQUN6RCx1QkFBdUIsRUFBRSx5QkFBeUIsQ0FBQyxJQUFJO1FBQ3ZELGtCQUFrQixFQUFFLHlCQUF5QixDQUFDLElBQUk7UUFDbEQsMEJBQTBCLEVBQUUseUJBQXlCLENBQUMsSUFBSTtRQUMxRCx3QkFBd0IsRUFBRSx5QkFBeUIsQ0FBQyxJQUFJO1FBQ3hELG1CQUFtQixFQUFFLHlCQUF5QixDQUFDLElBQUk7S0FDdEQ7SUFDRCxvREFBb0Q7SUFDcEQsS0FBSyxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sRUFBRSxJQUFJO1FBQ2IsUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsSUFBSTtRQUNmLFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxNQUFNO1FBQzdDLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLGdCQUFnQixFQUFFLElB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
@@ -8,6 +8,6 @@ import { TgdTypeArrayForElements } from "../types";
8
8
  * This helper function gives you the type of the array passed as argument.
9
9
  */
10
10
  export declare function webglElementTypeFromTypedArray(typedArray: TgdTypeArrayForElements): 5121 | 5123 | 5125;
11
- export declare function webglTypedArrayFromBufferSource(bufferSource: BufferSource, type: number): Int8Array | Uint8Array | Int16Array | Uint16Array | Uint32Array | Float32Array;
11
+ export declare function webglTypedArrayFromBufferSource(bufferSource: BufferSource, type: number): Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike> | Float32Array<ArrayBufferLike>;
12
12
  export declare function webglLookup(type: number): keyof WebGL2RenderingContext;
13
13
  //# sourceMappingURL=webgl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgl.d.ts","sourceRoot":"","sources":["../../src/utils/webgl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,uBAAuB,GACpC,IAAI,GAAG,IAAI,GAAG,IAAI,CAWpB;AAED,wBAAgB,+BAA+B,CAC3C,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,kFAwBf;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,sBAAsB,CAQtE"}
1
+ {"version":3,"file":"webgl.d.ts","sourceRoot":"","sources":["../../src/utils/webgl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,uBAAuB,GACpC,IAAI,GAAG,IAAI,GAAG,IAAI,CAWpB;AAED,wBAAgB,+BAA+B,CAC3C,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,wLAwBf;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,sBAAsB,CAQtE"}
@@ -1,6 +1,7 @@
1
1
  import { TgdBuffer } from "../buffer";
2
2
  import { TgdDataset } from "../dataset";
3
- import { TgdProgram, TgdTypeArrayForElements } from "../types";
3
+ import { TgdProgram } from "../program";
4
+ import { TgdTypeArrayForElements } from "../types";
4
5
  export declare class TgdVertexArray {
5
6
  readonly gl: WebGL2RenderingContext;
6
7
  private readonly program?;
@@ -1 +1 @@
1
- {"version":3,"file":"vao.d.ts","sourceRoot":"","sources":["../../src/vao/vao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEhE,qBAAa,cAAc;aAOH,EAAE,EAAE,sBAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAT9B,SAAgB,GAAG,EAAE,sBAAsB,CAAA;IAE3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;gBAGhC,EAAE,EAAE,sBAAsB,EACzB,OAAO,CAAC,EAAE,UAAU,YAAA,EACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAA,EACjC,QAAQ,CAAC,EAAE,uBAAuB,YAAA;IA4BvD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI/C,MAAM,CAAC,EAAE,MAAW,EAAE,GAAE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAM;IAuBxD,KAAK,CAAC,OAAO,SAAmB;IAWhC,IAAI;IAIJ,MAAM;IAIN,MAAM;CAMT"}
1
+ {"version":3,"file":"vao.d.ts","sourceRoot":"","sources":["../../src/vao/vao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD,qBAAa,cAAc;aAOH,EAAE,EAAE,sBAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAT9B,SAAgB,GAAG,EAAE,sBAAsB,CAAA;IAE3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;gBAGhC,EAAE,EAAE,sBAAsB,EACzB,OAAO,CAAC,EAAE,UAAU,YAAA,EACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAA,EACjC,QAAQ,CAAC,EAAE,uBAAuB,YAAA;IA8BvD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI/C,MAAM,CAAC,EAAE,MAAW,EAAE,GAAE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAM;IAuBxD,KAAK,CAAC,OAAO,SAAmB;IAWhC,IAAI;IAIJ,MAAM;IAIN,MAAM;CAMT"}