@luma.gl/engine 9.2.6 → 9.3.0-alpha.11

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 (198) hide show
  1. package/dist/animation-loop/animation-loop.d.ts +11 -5
  2. package/dist/animation-loop/animation-loop.d.ts.map +1 -1
  3. package/dist/animation-loop/animation-loop.js +83 -47
  4. package/dist/animation-loop/animation-loop.js.map +1 -1
  5. package/dist/animation-loop/make-animation-loop.d.ts.map +1 -1
  6. package/dist/animation-loop/make-animation-loop.js +8 -1
  7. package/dist/animation-loop/make-animation-loop.js.map +1 -1
  8. package/dist/animation-loop/request-animation-frame.d.ts.map +1 -1
  9. package/dist/animation-loop/request-animation-frame.js +23 -6
  10. package/dist/animation-loop/request-animation-frame.js.map +1 -1
  11. package/dist/compute/computation.d.ts +3 -7
  12. package/dist/compute/computation.d.ts.map +1 -1
  13. package/dist/compute/computation.js +16 -13
  14. package/dist/compute/computation.js.map +1 -1
  15. package/dist/compute/swap.d.ts +2 -0
  16. package/dist/compute/swap.d.ts.map +1 -1
  17. package/dist/compute/swap.js +10 -5
  18. package/dist/compute/swap.js.map +1 -1
  19. package/dist/debug/debug-framebuffer.d.ts +9 -4
  20. package/dist/debug/debug-framebuffer.d.ts.map +1 -1
  21. package/dist/debug/debug-framebuffer.js +91 -45
  22. package/dist/debug/debug-framebuffer.js.map +1 -1
  23. package/dist/dist.dev.js +2767 -1344
  24. package/dist/dist.min.js +326 -211
  25. package/dist/dynamic-texture/dynamic-texture.d.ts +102 -0
  26. package/dist/dynamic-texture/dynamic-texture.d.ts.map +1 -0
  27. package/dist/dynamic-texture/dynamic-texture.js +558 -0
  28. package/dist/dynamic-texture/dynamic-texture.js.map +1 -0
  29. package/dist/dynamic-texture/texture-data.d.ts +144 -0
  30. package/dist/dynamic-texture/texture-data.d.ts.map +1 -0
  31. package/dist/dynamic-texture/texture-data.js +208 -0
  32. package/dist/dynamic-texture/texture-data.js.map +1 -0
  33. package/dist/geometries/cone-geometry.d.ts +3 -1
  34. package/dist/geometries/cone-geometry.d.ts.map +1 -1
  35. package/dist/geometries/cone-geometry.js.map +1 -1
  36. package/dist/geometries/cube-geometry.js +7 -7
  37. package/dist/geometries/cube-geometry.js.map +1 -1
  38. package/dist/geometries/cylinder-geometry.d.ts +2 -1
  39. package/dist/geometries/cylinder-geometry.d.ts.map +1 -1
  40. package/dist/geometries/cylinder-geometry.js.map +1 -1
  41. package/dist/geometries/ico-sphere-geometry.js +3 -1
  42. package/dist/geometries/ico-sphere-geometry.js.map +1 -1
  43. package/dist/geometry/gpu-geometry.d.ts.map +1 -1
  44. package/dist/geometry/gpu-geometry.js +11 -3
  45. package/dist/geometry/gpu-geometry.js.map +1 -1
  46. package/dist/index.cjs +2620 -1267
  47. package/dist/index.cjs.map +4 -4
  48. package/dist/index.d.ts +20 -6
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +12 -4
  51. package/dist/index.js.map +1 -1
  52. package/dist/material/material-factory.d.ts +73 -0
  53. package/dist/material/material-factory.d.ts.map +1 -0
  54. package/dist/material/material-factory.js +111 -0
  55. package/dist/material/material-factory.js.map +1 -0
  56. package/dist/material/material.d.ts +84 -0
  57. package/dist/material/material.d.ts.map +1 -0
  58. package/dist/material/material.js +176 -0
  59. package/dist/material/material.js.map +1 -0
  60. package/dist/model/model.d.ts +47 -16
  61. package/dist/model/model.d.ts.map +1 -1
  62. package/dist/model/model.js +148 -71
  63. package/dist/model/model.js.map +1 -1
  64. package/dist/model/split-uniforms-and-bindings.d.ts +4 -3
  65. package/dist/model/split-uniforms-and-bindings.d.ts.map +1 -1
  66. package/dist/model/split-uniforms-and-bindings.js +2 -2
  67. package/dist/model/split-uniforms-and-bindings.js.map +1 -1
  68. package/dist/models/billboard-texture-model.d.ts +8 -5
  69. package/dist/models/billboard-texture-model.d.ts.map +1 -1
  70. package/dist/models/billboard-texture-model.js +79 -25
  71. package/dist/models/billboard-texture-model.js.map +1 -1
  72. package/dist/models/billboard-texture-module.d.ts +1 -1
  73. package/dist/models/billboard-texture-module.js +1 -1
  74. package/dist/models/clip-space.js +7 -7
  75. package/dist/models/directional-light-model.d.ts +7 -0
  76. package/dist/models/directional-light-model.d.ts.map +1 -0
  77. package/dist/models/directional-light-model.js +23 -0
  78. package/dist/models/directional-light-model.js.map +1 -0
  79. package/dist/models/light-model-utils.d.ts +69 -0
  80. package/dist/models/light-model-utils.d.ts.map +1 -0
  81. package/dist/models/light-model-utils.js +395 -0
  82. package/dist/models/light-model-utils.js.map +1 -0
  83. package/dist/models/point-light-model.d.ts +7 -0
  84. package/dist/models/point-light-model.d.ts.map +1 -0
  85. package/dist/models/point-light-model.js +22 -0
  86. package/dist/models/point-light-model.js.map +1 -0
  87. package/dist/models/spot-light-model.d.ts +7 -0
  88. package/dist/models/spot-light-model.d.ts.map +1 -0
  89. package/dist/models/spot-light-model.js +23 -0
  90. package/dist/models/spot-light-model.js.map +1 -0
  91. package/dist/modules/picking/color-picking.d.ts +5 -9
  92. package/dist/modules/picking/color-picking.d.ts.map +1 -1
  93. package/dist/modules/picking/color-picking.js +122 -115
  94. package/dist/modules/picking/color-picking.js.map +1 -1
  95. package/dist/modules/picking/index-picking.d.ts +4 -4
  96. package/dist/modules/picking/index-picking.d.ts.map +1 -1
  97. package/dist/modules/picking/index-picking.js +36 -16
  98. package/dist/modules/picking/index-picking.js.map +1 -1
  99. package/dist/modules/picking/legacy-color-picking.d.ts +26 -0
  100. package/dist/modules/picking/legacy-color-picking.d.ts.map +1 -0
  101. package/dist/modules/picking/legacy-color-picking.js +7 -0
  102. package/dist/modules/picking/legacy-color-picking.js.map +1 -0
  103. package/dist/modules/picking/picking-manager.d.ts +29 -3
  104. package/dist/modules/picking/picking-manager.d.ts.map +1 -1
  105. package/dist/modules/picking/picking-manager.js +188 -41
  106. package/dist/modules/picking/picking-manager.js.map +1 -1
  107. package/dist/modules/picking/picking-uniforms.d.ts +13 -12
  108. package/dist/modules/picking/picking-uniforms.d.ts.map +1 -1
  109. package/dist/modules/picking/picking-uniforms.js +27 -14
  110. package/dist/modules/picking/picking-uniforms.js.map +1 -1
  111. package/dist/modules/picking/picking.d.ts +25 -0
  112. package/dist/modules/picking/picking.d.ts.map +1 -0
  113. package/dist/modules/picking/picking.js +18 -0
  114. package/dist/modules/picking/picking.js.map +1 -0
  115. package/dist/passes/get-fragment-shader.js +12 -27
  116. package/dist/passes/get-fragment-shader.js.map +1 -1
  117. package/dist/passes/shader-pass-renderer.d.ts +5 -7
  118. package/dist/passes/shader-pass-renderer.d.ts.map +1 -1
  119. package/dist/passes/shader-pass-renderer.js +16 -42
  120. package/dist/passes/shader-pass-renderer.js.map +1 -1
  121. package/dist/scenegraph/group-node.d.ts +5 -0
  122. package/dist/scenegraph/group-node.d.ts.map +1 -1
  123. package/dist/scenegraph/group-node.js +12 -0
  124. package/dist/scenegraph/group-node.js.map +1 -1
  125. package/dist/scenegraph/model-node.d.ts +2 -2
  126. package/dist/scenegraph/model-node.d.ts.map +1 -1
  127. package/dist/scenegraph/model-node.js.map +1 -1
  128. package/dist/scenegraph/scenegraph-node.d.ts +1 -1
  129. package/dist/scenegraph/scenegraph-node.d.ts.map +1 -1
  130. package/dist/scenegraph/scenegraph-node.js +23 -15
  131. package/dist/scenegraph/scenegraph-node.js.map +1 -1
  132. package/dist/shader-inputs.d.ts +9 -7
  133. package/dist/shader-inputs.d.ts.map +1 -1
  134. package/dist/shader-inputs.js +90 -13
  135. package/dist/shader-inputs.js.map +1 -1
  136. package/dist/utils/buffer-layout-order.d.ts.map +1 -1
  137. package/dist/utils/buffer-layout-order.js +12 -2
  138. package/dist/utils/buffer-layout-order.js.map +1 -1
  139. package/dist/utils/shader-module-utils.d.ts +7 -0
  140. package/dist/utils/shader-module-utils.d.ts.map +1 -0
  141. package/dist/utils/shader-module-utils.js +46 -0
  142. package/dist/utils/shader-module-utils.js.map +1 -0
  143. package/package.json +6 -6
  144. package/src/animation-loop/animation-loop.ts +89 -50
  145. package/src/animation-loop/make-animation-loop.ts +14 -5
  146. package/src/animation-loop/request-animation-frame.ts +32 -6
  147. package/src/compute/computation.ts +32 -17
  148. package/src/compute/swap.ts +13 -7
  149. package/src/debug/debug-framebuffer.ts +139 -61
  150. package/src/dynamic-texture/dynamic-texture.ts +730 -0
  151. package/src/dynamic-texture/texture-data.ts +336 -0
  152. package/src/{async-texture/texture-setters.ts.disabled → dynamic-texture/texture-data.ts.disabled} +1 -1
  153. package/src/geometries/cone-geometry.ts +6 -1
  154. package/src/geometries/cube-geometry.ts +7 -7
  155. package/src/geometries/cylinder-geometry.ts +5 -1
  156. package/src/geometries/ico-sphere-geometry.ts +3 -1
  157. package/src/geometry/gpu-geometry.ts +11 -3
  158. package/src/index.ts +38 -8
  159. package/src/material/material-factory.ts +157 -0
  160. package/src/material/material.ts +254 -0
  161. package/src/model/model.ts +196 -93
  162. package/src/model/split-uniforms-and-bindings.ts +8 -6
  163. package/src/models/billboard-texture-model.ts +90 -29
  164. package/src/models/billboard-texture-module.ts +1 -1
  165. package/src/models/clip-space.ts +7 -7
  166. package/src/models/directional-light-model.ts +32 -0
  167. package/src/models/light-model-utils.ts +587 -0
  168. package/src/models/point-light-model.ts +31 -0
  169. package/src/models/spot-light-model.ts +32 -0
  170. package/src/modules/picking/color-picking.ts +123 -122
  171. package/src/modules/picking/index-picking.ts +36 -16
  172. package/src/modules/picking/legacy-color-picking.ts +8 -0
  173. package/src/modules/picking/picking-manager.ts +252 -50
  174. package/src/modules/picking/picking-uniforms.ts +39 -24
  175. package/src/modules/picking/picking.ts +22 -0
  176. package/src/passes/get-fragment-shader.ts +12 -27
  177. package/src/passes/shader-pass-renderer.ts +25 -48
  178. package/src/scenegraph/group-node.ts +16 -0
  179. package/src/scenegraph/model-node.ts +2 -2
  180. package/src/scenegraph/scenegraph-node.ts +27 -16
  181. package/src/shader-inputs.ts +167 -26
  182. package/src/utils/buffer-layout-order.ts +18 -2
  183. package/src/utils/shader-module-utils.ts +65 -0
  184. package/dist/async-texture/async-texture.d.ts +0 -166
  185. package/dist/async-texture/async-texture.d.ts.map +0 -1
  186. package/dist/async-texture/async-texture.js +0 -386
  187. package/dist/async-texture/async-texture.js.map +0 -1
  188. package/dist/factories/pipeline-factory.d.ts +0 -37
  189. package/dist/factories/pipeline-factory.d.ts.map +0 -1
  190. package/dist/factories/pipeline-factory.js +0 -181
  191. package/dist/factories/pipeline-factory.js.map +0 -1
  192. package/dist/factories/shader-factory.d.ts +0 -22
  193. package/dist/factories/shader-factory.d.ts.map +0 -1
  194. package/dist/factories/shader-factory.js +0 -88
  195. package/dist/factories/shader-factory.js.map +0 -1
  196. package/src/async-texture/async-texture.ts +0 -551
  197. package/src/factories/pipeline-factory.ts +0 -224
  198. package/src/factories/shader-factory.ts +0 -103
@@ -1 +1 @@
1
- {"version":3,"file":"computation.js","sourceRoot":"","sources":["../../src/compute/computation.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAEL,MAAM,EACN,eAAe,EAEf,YAAY,EACZ,GAAG,EACH,wBAAwB,EACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,eAAe,EAAE,uBAAuB,EAAC,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAa,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAC9C,OAAO,EAAC,eAAe,EAAC,yCAAsC;AAC9D,OAAO,EAAC,aAAa,EAAC,uCAAoC;AAC1D,OAAO,EAAC,GAAG,EAAC,wBAAqB;AACjC,6EAA6E;AAE7E,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,gBAAgB,GAAG,KAAK,CAAC;AA4B/B;;;;;;;GAOG;AACH,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,YAAY,GAA+B;QAChD,GAAG,eAAe,CAAC,YAAY;QAC/B,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,EAAE;QAEZ,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QAEX,QAAQ,EAAE,SAAU;QACpB,YAAY,EAAE,SAAU;QAExB,eAAe,EAAE,SAAU;QAC3B,aAAa,EAAE,SAAU;QACzB,eAAe,EAAE,eAAe,CAAC,yBAAyB,EAAE;QAE5D,YAAY,EAAE,SAAU;KACzB,CAAC;IAEO,MAAM,CAAS;IACf,EAAE,CAAS;IAEX,eAAe,CAAkB;IACjC,aAAa,CAAgB;IAEtC,QAAQ,GAAyB,EAAE,CAAC;IAEpC,qDAAqD;IACrD,QAAQ,GAA4B,EAAE,CAAC;IAEvC,mCAAmC;IACnC,QAAQ,CAAkB;IAC1B,sCAAsC;IACtC,MAAM,CAAS;IACf,6CAA6C;IAC7C,qDAAqD;IACrD,MAAM,CAAS;IAEf,4BAA4B;IAC5B,YAAY,CAAe;IAE3B,qDAAqD;IACrD,aAAa,CAAe;IAE5B,oBAAoB,GAAmB,eAAe,CAAC;IAE/C,kBAAkB,CAAuE;IACzF,KAAK,CAA6B;IAElC,UAAU,GAAG,KAAK,CAAC;IAE3B,YAAY,MAAc,EAAE,KAAuB;QACjD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,EAAC,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,KAAK,EAAC,CAAC;QACrD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACnB,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE7C,6BAA6B;QAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAC/D,CAAC;QACF,mCAAmC;QACnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAExC,2CAA2C;QAC3C,8BAA8B;QAC9B,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEvE,yBAAyB;QACzB,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7C,qDAAqD;QACrD,MAAM,OAAO,GACX,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;QAEhG,IAAI,CAAC,eAAe;YAClB,KAAK,CAAC,eAAe,IAAI,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE/F,MAAM,EAAC,MAAM,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC;YAC1E,YAAY;YACZ,GAAG,IAAI,CAAC,KAAK;YACb,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,aAAa;QACb,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;QAEtC,sBAAsB;QACtB,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvC,mEAAmE;QACnE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,yCAAyC;QACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,YAAY;IAEZ,OAAO;QACL,mCAAmC;QACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,WAAwB,EAAE,CAAS,EAAE,CAAU,EAAE,CAAU;QAClE,IAAI,CAAC;YACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,uCAAuC;YACvC,0GAA0G;YAC1G,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvC,6FAA6F;YAC7F,6DAA6D;YAC7D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,mBAAmB;YACnB,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE5B,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,qDAAqD;IAErD,wBAAwB;IAExB;;;OAGG;IACH,cAAc,CAAC,WAAmB;QAChC,kCAAkC;IACpC,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,aAAqB;QACpC,sCAAsC;IACxC,CAAC;IAED,eAAe,CAAC,YAA0B;QACxC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjE,iDAAiD;QACjD,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC1F,IAAI,CAAC,QAAQ,CAAC,GAAG,UAAU,UAAU,CAAC,GAAG,aAAa,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,KAA0B;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEhD,qDAAqD;QACrD,sCAAsC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,OAAO,CACL,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,SAAS,CACxF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAiC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,uBAAuB,CAAC,MAAc;QACpC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,MAAM,CAAC;IAClE,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,UAAU,GAAkB,IAAI,CAAC;YACrC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,GAAG,CAAC,GAAG,CACL,CAAC,EACD,SAAS,IAAI,CAAC,EAAE,kCAAkC,IAAI,CAAC,oBAAoB,IAAI,CAChF,EAAE,CAAC;gBACJ,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,CAAC;YAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAElC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;gBAC5C,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,WAAW;gBACzB,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;aACtC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC;gBACzD,GAAG,IAAI,CAAC,KAAK;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,iCAAiC;IACjC,YAAY,GAAG,CAAC,CAAC;IACjB,QAAQ,GAAG,KAAK,CAAC;IAEjB,iBAAiB;QACf,4CAA4C;QAC5C,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC5D,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,cAAc,EAAE,CAAC;YACrE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,qBAAqB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAC,SAAS,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,EAAC,CAAC,EAAE,CAAC;IAC9F,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,qGAAqG;YAErG,yCAAyC;YACzC,uCAAuC;YACvC,qDAAqD;YAErD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACvD,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,CAAC;YAE7C,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAES,UAAU,GAAG,CAAC,CAAC;IAEzB,uCAAuC;IACvC,0BAA0B,CAAC,SAA8B,EAAE,QAAa;QACtE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,UAAU,GACd,SAAS,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;;AAGH,yDAAyD;AACzD,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe;QAC3C,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAmC;QACtE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;QACpB,2EAA2E;QAC3E,QAAQ,EAAE,MAAM,CAAC,QAAyC;KAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"computation.js","sourceRoot":"","sources":["../../src/compute/computation.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { Device, Resource, Buffer, Framebuffer } from '@luma.gl/core';
7
7
  * @note the two resources can be destroyed by calling `destroy()`
8
8
  */
9
9
  export declare class Swap<T extends Resource<any>> {
10
+ id: string;
10
11
  /** The current resource - usually the source for renders or computations */
11
12
  current: T;
12
13
  /** The next resource - usually the target/destination for transforms / computations */
@@ -14,6 +15,7 @@ export declare class Swap<T extends Resource<any>> {
14
15
  constructor(props: {
15
16
  current: T;
16
17
  next: T;
18
+ id?: string;
17
19
  });
18
20
  /** Destroys the two managed resources */
19
21
  destroy(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACjE,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAU,MAAM,eAAe,CAAC;AAE7E;;;;;GAKG;AACH,qBAAa,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC;IACvC,4EAA4E;IAC5E,OAAO,EAAE,CAAC,CAAC;IACX,uFAAuF;IACvF,IAAI,EAAE,CAAC,CAAC;gBAEI,KAAK,EAAE;QAAC,OAAO,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAC;IAKxC,yCAAyC;IACzC,OAAO;IAKP,4GAA4G;IAC5G,IAAI;CAKL;AAED,uDAAuD;AACvD,qBAAa,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC;gBACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;IAiCnD;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO;CAcvD;AAED,sDAAsD;AACtD,qBAAa,WAAY,SAAQ,IAAI,CAAC,MAAM,CAAC;gBAC/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;IAI9C;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC;CAenC"}
1
+ {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACjE,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAU,MAAM,eAAe,CAAC;AAE7E;;;;;GAKG;AACH,qBAAa,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IAEX,4EAA4E;IAC5E,OAAO,EAAE,CAAC,CAAC;IACX,uFAAuF;IACvF,IAAI,EAAE,CAAC,CAAC;gBAEI,KAAK,EAAE;QAAC,OAAO,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAC;IAMrD,yCAAyC;IACzC,OAAO;IAKP,4GAA4G;IAC5G,IAAI;CAKL;AAED,uDAAuD;AACvD,qBAAa,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC;gBACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;IAoCnD;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO;CAcvD;AAED,sDAAsD;AACtD,qBAAa,WAAY,SAAQ,IAAI,CAAC,MAAM,CAAC;gBAC/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;IAI9C;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC;CAenC"}
@@ -9,11 +9,13 @@ import { Texture } from '@luma.gl/core';
9
9
  * @note the two resources can be destroyed by calling `destroy()`
10
10
  */
11
11
  export class Swap {
12
+ id;
12
13
  /** The current resource - usually the source for renders or computations */
13
14
  current;
14
15
  /** The next resource - usually the target/destination for transforms / computations */
15
16
  next;
16
17
  constructor(props) {
18
+ this.id = props.id || 'swap';
17
19
  this.current = props.current;
18
20
  this.next = props.next;
19
21
  }
@@ -33,22 +35,25 @@ export class Swap {
33
35
  export class SwapFramebuffers extends Swap {
34
36
  constructor(device, props) {
35
37
  props = { ...props };
38
+ const { width = 1, height = 1 } = props;
36
39
  let colorAttachments = props.colorAttachments?.map(colorAttachment => typeof colorAttachment !== 'string'
37
40
  ? colorAttachment
38
41
  : device.createTexture({
42
+ id: `${props.id}-texture-0`,
39
43
  format: colorAttachment,
40
44
  usage: Texture.SAMPLE | Texture.RENDER | Texture.COPY_SRC | Texture.COPY_DST,
41
- width: 1,
42
- height: 1
45
+ width,
46
+ height
43
47
  }));
44
48
  const current = device.createFramebuffer({ ...props, colorAttachments });
45
49
  colorAttachments = props.colorAttachments?.map(colorAttachment => typeof colorAttachment !== 'string'
46
50
  ? colorAttachment
47
51
  : device.createTexture({
52
+ id: `${props.id}-texture-1`,
48
53
  format: colorAttachment,
49
- usage: Texture.TEXTURE | Texture.COPY_SRC | Texture.COPY_DST | Texture.RENDER_ATTACHMENT,
50
- width: 1,
51
- height: 1
54
+ usage: Texture.SAMPLE | Texture.RENDER | Texture.COPY_SRC | Texture.COPY_DST,
55
+ width,
56
+ height
52
57
  }));
53
58
  const next = device.createFramebuffer({ ...props, colorAttachments });
54
59
  super({ current, next });
@@ -1 +1 @@
1
- {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,16 @@
1
- import type { Framebuffer, Texture } from '@luma.gl/core';
2
- /** Debug utility to draw FBO contents onto screen */
3
- export declare function debugFramebuffer(fbo: Framebuffer | Texture, { id, minimap, opaque, top, left, rgbaScale }: {
1
+ import type { Framebuffer, RenderPass, Texture } from '@luma.gl/core';
2
+ type DebugFramebufferOptions = {
4
3
  id: string;
5
4
  minimap?: boolean;
6
5
  opaque?: boolean;
7
6
  top?: string;
8
7
  left?: string;
9
8
  rgbaScale?: number;
10
- }): void;
9
+ };
10
+ /**
11
+ * Debug utility to blit queued offscreen framebuffers into the default framebuffer
12
+ * without CPU readback. Currently implemented for WebGL only.
13
+ */
14
+ export declare function debugFramebuffer(renderPass: RenderPass, source: Framebuffer | Texture | null, options: DebugFramebufferOptions): void;
15
+ export {};
11
16
  //# sourceMappingURL=debug-framebuffer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug-framebuffer.d.ts","sourceRoot":"","sources":["../../src/debug/debug-framebuffer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAQxD,qDAAqD;AAErD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,WAAW,GAAG,OAAO,EAC1B,EACE,EAAE,EACF,OAAO,EACP,MAAM,EACN,GAAS,EACT,IAAU,EACV,SAAa,EACd,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,QA6CF"}
1
+ {"version":3,"file":"debug-framebuffer.d.ts","sourceRoot":"","sources":["../../src/debug/debug-framebuffer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAS,WAAW,EAAE,UAAU,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAK5E,KAAK,uBAAuB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAOF;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,IAAI,EACpC,OAAO,EAAE,uBAAuB,GAC/B,IAAI,CAoBN"}
@@ -1,52 +1,98 @@
1
1
  // luma.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- // import {copyTextureToImage} from '../debug/copy-texture-to-image';
5
- /** Only works with 1st device? */
6
- let canvas = null;
7
- let ctx = null;
8
- // let targetImage: HTMLImageElement | null = null;
9
- /** Debug utility to draw FBO contents onto screen */
10
- // eslint-disable-next-line
11
- export function debugFramebuffer(fbo, { id, minimap, opaque, top = '0', left = '0', rgbaScale = 1 }) {
12
- if (!canvas) {
13
- canvas = document.createElement('canvas');
14
- canvas.id = id;
15
- canvas.title = id;
16
- canvas.style.zIndex = '100';
17
- canvas.style.position = 'absolute';
18
- canvas.style.top = top; // ⚠️
19
- canvas.style.left = left; // ⚠️
20
- canvas.style.border = 'blue 5px solid';
21
- canvas.style.transform = 'scaleY(-1)';
22
- document.body.appendChild(canvas);
23
- ctx = canvas.getContext('2d');
24
- // targetImage = new Image();
25
- }
26
- // const canvasHeight = (minimap ? 2 : 1) * fbo.height;
27
- if (canvas.width !== fbo.width || canvas.height !== fbo.height) {
28
- canvas.width = fbo.width / 2;
29
- canvas.height = fbo.height / 2;
30
- canvas.style.width = '400px';
31
- canvas.style.height = '400px';
32
- }
33
- // const image = copyTextureToImage(fbo, {targetMaxHeight: 100, targetImage});
34
- // ctx.drawImage(image, 0, 0);
35
- const color = fbo.device.readPixelsToArrayWebGL(fbo);
36
- const imageData = ctx?.createImageData(fbo.width, fbo.height);
37
- if (imageData) {
38
- // Full map
39
- const offset = 0;
40
- // if (color.some((v) => v > 0)) {
41
- // console.error('THERE IS NON-ZERO DATA IN THE FBO!');
42
- // }
43
- for (let i = 0; i < color.length; i += 4) {
44
- imageData.data[offset + i + 0] = color[i + 0] * rgbaScale;
45
- imageData.data[offset + i + 1] = color[i + 1] * rgbaScale;
46
- imageData.data[offset + i + 2] = color[i + 2] * rgbaScale;
47
- imageData.data[offset + i + 3] = opaque ? 255 : color[i + 3] * rgbaScale;
4
+ const DEBUG_FRAMEBUFFER_STATE_KEY = '__debugFramebufferState';
5
+ const DEFAULT_MARGIN_PX = 8;
6
+ /**
7
+ * Debug utility to blit queued offscreen framebuffers into the default framebuffer
8
+ * without CPU readback. Currently implemented for WebGL only.
9
+ */
10
+ export function debugFramebuffer(renderPass, source, options) {
11
+ if (renderPass.device.type !== 'webgl') {
12
+ return;
13
+ }
14
+ const state = getDebugFramebufferState(renderPass.device);
15
+ if (state.flushing) {
16
+ return;
17
+ }
18
+ if (isDefaultRenderPass(renderPass)) {
19
+ flushDebugFramebuffers(renderPass, options, state);
20
+ return;
21
+ }
22
+ if (source && isFramebuffer(source) && source.handle !== null) {
23
+ if (!state.queuedFramebuffers.includes(source)) {
24
+ state.queuedFramebuffers.push(source);
25
+ }
26
+ }
27
+ }
28
+ function flushDebugFramebuffers(renderPass, options, state) {
29
+ if (state.queuedFramebuffers.length === 0) {
30
+ return;
31
+ }
32
+ const webglDevice = renderPass.device;
33
+ const { gl } = webglDevice;
34
+ const previousReadFramebuffer = gl.getParameter(36010);
35
+ const previousDrawFramebuffer = gl.getParameter(36006);
36
+ const [targetWidth, targetHeight] = renderPass.device
37
+ .getDefaultCanvasContext()
38
+ .getDrawingBufferSize();
39
+ let topPx = parseCssPixel(options.top, DEFAULT_MARGIN_PX);
40
+ const leftPx = parseCssPixel(options.left, DEFAULT_MARGIN_PX);
41
+ state.flushing = true;
42
+ try {
43
+ for (const framebuffer of state.queuedFramebuffers) {
44
+ const [targetX0, targetY0, targetX1, targetY1, previewHeight] = getOverlayRect({
45
+ framebuffer,
46
+ targetWidth,
47
+ targetHeight,
48
+ topPx,
49
+ leftPx,
50
+ minimap: options.minimap
51
+ });
52
+ gl.bindFramebuffer(36008, framebuffer.handle);
53
+ gl.bindFramebuffer(36009, null);
54
+ gl.blitFramebuffer(0, 0, framebuffer.width, framebuffer.height, targetX0, targetY0, targetX1, targetY1, 16384, 9728);
55
+ topPx += previewHeight + DEFAULT_MARGIN_PX;
48
56
  }
49
- ctx?.putImageData(imageData, 0, 0);
50
57
  }
58
+ finally {
59
+ gl.bindFramebuffer(36008, previousReadFramebuffer);
60
+ gl.bindFramebuffer(36009, previousDrawFramebuffer);
61
+ state.flushing = false;
62
+ }
63
+ }
64
+ function getOverlayRect(options) {
65
+ const { framebuffer, targetWidth, targetHeight, topPx, leftPx, minimap } = options;
66
+ const maxWidth = minimap ? Math.max(Math.floor(targetWidth / 4), 1) : targetWidth;
67
+ const maxHeight = minimap ? Math.max(Math.floor(targetHeight / 4), 1) : targetHeight;
68
+ const scale = Math.min(maxWidth / framebuffer.width, maxHeight / framebuffer.height);
69
+ const previewWidth = Math.max(Math.floor(framebuffer.width * scale), 1);
70
+ const previewHeight = Math.max(Math.floor(framebuffer.height * scale), 1);
71
+ const targetX0 = leftPx;
72
+ const targetY0 = Math.max(targetHeight - topPx - previewHeight, 0);
73
+ const targetX1 = targetX0 + previewWidth;
74
+ const targetY1 = targetY0 + previewHeight;
75
+ return [targetX0, targetY0, targetX1, targetY1, previewHeight];
76
+ }
77
+ function getDebugFramebufferState(device) {
78
+ device.userData[DEBUG_FRAMEBUFFER_STATE_KEY] ||= {
79
+ flushing: false,
80
+ queuedFramebuffers: []
81
+ };
82
+ return device.userData[DEBUG_FRAMEBUFFER_STATE_KEY];
83
+ }
84
+ function isFramebuffer(value) {
85
+ return 'colorAttachments' in value;
86
+ }
87
+ function isDefaultRenderPass(renderPass) {
88
+ const framebuffer = renderPass.props.framebuffer;
89
+ return !framebuffer || framebuffer.handle === null;
90
+ }
91
+ function parseCssPixel(value, defaultValue) {
92
+ if (!value) {
93
+ return defaultValue;
94
+ }
95
+ const parsedValue = Number.parseInt(value, 10);
96
+ return Number.isFinite(parsedValue) ? parsedValue : defaultValue;
51
97
  }
52
98
  //# sourceMappingURL=debug-framebuffer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug-framebuffer.js","sourceRoot":"","sources":["../../src/debug/debug-framebuffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug-framebuffer.js","sourceRoot":"","sources":["../../src/debug/debug-framebuffer.ts"],"names":[],"mappings":"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"}