@codexo/exojs 0.14.0 → 0.15.0

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 (237) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/README.md +2 -4
  3. package/dist/esm/animation/Tween.d.ts.map +1 -1
  4. package/dist/esm/animation/Tween.js +0 -1
  5. package/dist/esm/animation/Tween.js.map +1 -1
  6. package/dist/esm/animation/TweenManager.d.ts +44 -5
  7. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  8. package/dist/esm/animation/TweenManager.js +57 -5
  9. package/dist/esm/animation/TweenManager.js.map +1 -1
  10. package/dist/esm/animation/TweenSequencer.d.ts +139 -0
  11. package/dist/esm/animation/TweenSequencer.d.ts.map +1 -0
  12. package/dist/esm/animation/TweenSequencer.js +305 -0
  13. package/dist/esm/animation/TweenSequencer.js.map +1 -0
  14. package/dist/esm/animation/index.d.ts +1 -0
  15. package/dist/esm/animation/index.d.ts.map +1 -1
  16. package/dist/esm/audio/WorkletEffect.d.ts +34 -20
  17. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -1
  18. package/dist/esm/audio/WorkletEffect.js +92 -25
  19. package/dist/esm/audio/WorkletEffect.js.map +1 -1
  20. package/dist/esm/core/Application.d.ts +43 -5
  21. package/dist/esm/core/Application.d.ts.map +1 -1
  22. package/dist/esm/core/Application.js +83 -9
  23. package/dist/esm/core/Application.js.map +1 -1
  24. package/dist/esm/core/BuildInfo.js +2 -2
  25. package/dist/esm/core/Codec.d.ts +41 -0
  26. package/dist/esm/core/Codec.d.ts.map +1 -0
  27. package/dist/esm/core/Codec.js +79 -0
  28. package/dist/esm/core/Codec.js.map +1 -0
  29. package/dist/esm/core/FixedTimestep.d.ts +28 -0
  30. package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
  31. package/dist/esm/core/FixedTimestep.js +62 -0
  32. package/dist/esm/core/FixedTimestep.js.map +1 -0
  33. package/dist/esm/core/Scene.d.ts +14 -0
  34. package/dist/esm/core/Scene.d.ts.map +1 -1
  35. package/dist/esm/core/Scene.js +18 -0
  36. package/dist/esm/core/Scene.js.map +1 -1
  37. package/dist/esm/core/SceneManager.d.ts +7 -0
  38. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  39. package/dist/esm/core/SceneManager.js +20 -4
  40. package/dist/esm/core/SceneManager.js.map +1 -1
  41. package/dist/esm/core/SceneNode.d.ts +36 -6
  42. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  43. package/dist/esm/core/SceneNode.js +63 -11
  44. package/dist/esm/core/SceneNode.js.map +1 -1
  45. package/dist/esm/core/Stage.d.ts +7 -0
  46. package/dist/esm/core/Stage.d.ts.map +1 -1
  47. package/dist/esm/core/SystemRegistry.d.ts +5 -0
  48. package/dist/esm/core/SystemRegistry.d.ts.map +1 -1
  49. package/dist/esm/core/SystemRegistry.js +10 -0
  50. package/dist/esm/core/SystemRegistry.js.map +1 -1
  51. package/dist/esm/core/index.d.ts +4 -0
  52. package/dist/esm/core/index.d.ts.map +1 -1
  53. package/dist/esm/core/logging.d.ts +34 -0
  54. package/dist/esm/core/logging.d.ts.map +1 -0
  55. package/dist/esm/core/logging.js +59 -0
  56. package/dist/esm/core/logging.js.map +1 -0
  57. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -1
  58. package/dist/esm/core/serialization/commonFields.js +6 -0
  59. package/dist/esm/core/serialization/commonFields.js.map +1 -1
  60. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -1
  61. package/dist/esm/core/serialization/renderingSerializers.js +14 -5
  62. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -1
  63. package/dist/esm/index.js +7 -2
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/esm/input/Gamepad.d.ts +10 -0
  66. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  67. package/dist/esm/input/Gamepad.js +12 -0
  68. package/dist/esm/input/Gamepad.js.map +1 -1
  69. package/dist/esm/input/InputManager.d.ts.map +1 -1
  70. package/dist/esm/input/InputManager.js +5 -0
  71. package/dist/esm/input/InputManager.js.map +1 -1
  72. package/dist/esm/input/InteractionManager.js +4 -4
  73. package/dist/esm/input/InteractionManager.js.map +1 -1
  74. package/dist/esm/math/collision-detection.js +1 -1
  75. package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
  76. package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
  77. package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
  78. package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
  79. package/dist/esm/rendering/CallbackRenderPass.js +16 -11
  80. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  81. package/dist/esm/rendering/DrawContext.d.ts +48 -0
  82. package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
  83. package/dist/esm/rendering/PassContext.d.ts +42 -0
  84. package/dist/esm/rendering/PassContext.d.ts.map +1 -0
  85. package/dist/esm/rendering/PassContext.js +48 -0
  86. package/dist/esm/rendering/PassContext.js.map +1 -0
  87. package/dist/esm/rendering/RenderBackend.d.ts +14 -0
  88. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  89. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  90. package/dist/esm/rendering/RenderNode.js +2 -2
  91. package/dist/esm/rendering/RenderNode.js.map +1 -1
  92. package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
  93. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
  94. package/dist/esm/rendering/RenderingContext.d.ts +47 -16
  95. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  96. package/dist/esm/rendering/RenderingContext.js +134 -36
  97. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  98. package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
  99. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  100. package/dist/esm/rendering/TransformBuffer.js +58 -0
  101. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  102. package/dist/esm/rendering/View.d.ts +38 -0
  103. package/dist/esm/rendering/View.d.ts.map +1 -1
  104. package/dist/esm/rendering/View.js +37 -0
  105. package/dist/esm/rendering/View.js.map +1 -1
  106. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  107. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +9 -2
  108. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  109. package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
  110. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
  111. package/dist/esm/rendering/material/MeshMaterial.js +17 -0
  112. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
  113. package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
  114. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
  115. package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
  116. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
  117. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  118. package/dist/esm/rendering/plan/RenderEffectExecutor.js +7 -2
  119. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  120. package/dist/esm/rendering/plan/RenderInstruction.d.ts +5 -2
  121. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  122. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  123. package/dist/esm/rendering/plan/RenderPlanBuilder.js +23 -5
  124. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  125. package/dist/esm/rendering/plan/RenderScope.d.ts +7 -0
  126. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  127. package/dist/esm/rendering/primitives/Graphics.d.ts +10 -1
  128. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  129. package/dist/esm/rendering/primitives/Graphics.js +30 -9
  130. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  131. package/dist/esm/rendering/public.d.ts +5 -5
  132. package/dist/esm/rendering/public.d.ts.map +1 -1
  133. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +56 -19
  134. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  135. package/dist/esm/rendering/sprite/AnimatedSprite.js +121 -31
  136. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  137. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  138. package/dist/esm/rendering/text/BitmapText.js +2 -0
  139. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  140. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  141. package/dist/esm/rendering/text/HTMLText.js +2 -2
  142. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  143. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  144. package/dist/esm/rendering/text/Text.js +2 -0
  145. package/dist/esm/rendering/text/Text.js.map +1 -1
  146. package/dist/esm/rendering/types.d.ts +37 -13
  147. package/dist/esm/rendering/types.d.ts.map +1 -1
  148. package/dist/esm/rendering/types.js +37 -13
  149. package/dist/esm/rendering/types.js.map +1 -1
  150. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
  151. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
  152. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
  153. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
  154. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +34 -1
  155. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  156. package/dist/esm/rendering/webgl2/WebGl2Backend.js +108 -60
  157. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  158. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  159. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +50 -11
  160. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  161. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
  162. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
  163. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
  164. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
  165. package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
  166. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
  167. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
  168. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
  169. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
  170. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +27 -0
  171. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  172. package/dist/esm/rendering/webgpu/WebGpuBackend.js +157 -60
  173. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  174. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  175. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -29
  176. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  177. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
  178. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
  179. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
  180. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  181. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -0
  182. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  183. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +3 -1
  184. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  185. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
  186. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  187. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +2 -1
  188. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  189. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
  190. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
  191. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
  192. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
  193. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
  194. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  195. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +4 -1
  196. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  197. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
  198. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  199. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +2 -1
  200. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  201. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
  202. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  203. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +2 -1
  204. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  205. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
  206. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  207. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +3 -2
  208. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  209. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +3 -1
  210. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  211. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +29 -5
  212. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  213. package/dist/esm/resources/Loader.d.ts +13 -0
  214. package/dist/esm/resources/Loader.d.ts.map +1 -1
  215. package/dist/esm/resources/Loader.js +67 -7
  216. package/dist/esm/resources/Loader.js.map +1 -1
  217. package/dist/esm/ui/ScrollContainer.d.ts +63 -0
  218. package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
  219. package/dist/esm/ui/ScrollContainer.js +99 -0
  220. package/dist/esm/ui/ScrollContainer.js.map +1 -0
  221. package/dist/esm/ui/Tooltip.d.ts +67 -0
  222. package/dist/esm/ui/Tooltip.d.ts.map +1 -0
  223. package/dist/esm/ui/Tooltip.js +133 -0
  224. package/dist/esm/ui/Tooltip.js.map +1 -0
  225. package/dist/esm/ui/index.d.ts +4 -0
  226. package/dist/esm/ui/index.d.ts.map +1 -1
  227. package/dist/exo.esm.js +1 -1
  228. package/dist/exo.esm.js.map +1 -1
  229. package/dist/exo.iife.js +45202 -0
  230. package/dist/exo.iife.js.map +1 -0
  231. package/dist/exo.iife.min.js +2 -0
  232. package/dist/exo.iife.min.js.map +1 -0
  233. package/package.json +15 -3
  234. package/dist/esm/rendering/Camera.d.ts +0 -34
  235. package/dist/esm/rendering/Camera.d.ts.map +0 -1
  236. package/dist/esm/rendering/Camera.js +0 -38
  237. package/dist/esm/rendering/Camera.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","sources":["../../../../../src/rendering/text/Text.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AA8BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACG,MAAO,IAAK,SAAQ,YAAY,CAAA;AAC5B,IAAA,MAAM;AACN,IAAA,OAAO;AACP,IAAA,YAAY;AACZ,IAAA,UAAU;IACV,MAAM,GAAsB,IAAI;IAChC,UAAU,GAAG,KAAK;IAClB,gBAAgB,GAAG,CAAC;;IAGpB,UAAU,GAAoB,EAAE;IAChC,WAAW,GAAa,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAEvD,WAAA,CAAmB,IAAY,EAAE,OAAA,GAAuB,EAAE,EAAA;QACxD,KAAK,CAAC,IAAI,CAAC;QACX,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK;QAChD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU;QAEjD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QACvC,IAAI,IAAI,KAAK,IAAI;AAAE,YAAA,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAE5C,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvB;AAEA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;IAEA,IAAW,KAAK,CAAC,CAA+B,EAAA;AAC9C,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,YAAY,SAAS,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC;AAC3D,QAAA,IAAI,EAAE,CAAC,YAAY,SAAS,CAAC,EAAE;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC9C;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvB;AAEA,IAAA,IAAoB,IAAI,GAAA;QACtB,OAAO,IAAI,CAAC,KAAK;IACnB;IAEA,IAAoB,IAAI,CAAC,CAAS,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;YAAE;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACzB;AAEA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO;IACrB;IAEA,IAAW,MAAM,CAAC,CAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACzB;AAEA;;;;AAIG;AACH,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA;;;;AAIG;AACH,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA;;;AAGG;AACH,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY,GAAG,OAAO,GAAG,KAAK;IAC5C;;AAGA,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA,IAAA,IAAoB,UAAU,GAAA;QAC5B,OAAO,IAAI,CAAC,WAAW;IACzB;;AAGA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;IAEgB,SAAS,GAAA;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;QACvC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE;AACpC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrB;IACF;IAEgB,OAAO,GAAA;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACtB,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,KAAK,CAAC,OAAO,EAAE;IACjB;;;AAKQ,IAAA,YAAY,CAAC,IAAsB,EAAA;QACzC,IAAI,OAAO,QAAQ,KAAK,WAAW;AAAE,YAAA,OAAO,IAAI;AAChD,QAAA,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ;YAAE,OAAO,IAAI,CAAC,IAAI;AACnD,QAAA,OAAO,IAAI;IACb;AAEA;;;;;;AAMG;IACK,MAAM,SAAS,CAAC,IAAc,EAAA;QACpC,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK;YAAE;AAExD,QAAA,MAAM,OAAO,GAAG,EAAE,IAAI,CAAC,gBAAgB;QAEvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC7B,YAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B;AAEA,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,IAAI,EAAE;QACnB;AAAE,QAAA,MAAM;YACN;QACF;QAEA,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,KAAK,IAAI,CAAC,gBAAgB;YAAE;AAE1D,QAAA,MAAM,IAAI,GAAG,wBAAwB,EAAE;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE;AAC7H,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvB;AAEQ,IAAA,QAAQ,CAAC,KAAsB,EAAA;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QAE1C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC1B;QACF;AAEA,QAAA,MAAM,IAAI,GAAG,wBAAwB,EAAE;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC;AACnI,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AAEnB,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AAE3E,QAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC1B;QACF;AAEA,QAAA,IAAI,IAAI,GAAG,CAAC,EACV,IAAI,GAAG,CAAC;AACV,QAAA,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;YAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;YACxB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM;YACzB,IAAI,EAAE,GAAG,IAAI;gBAAE,IAAI,GAAG,EAAE;YACxB,IAAI,EAAE,GAAG,IAAI;gBAAE,IAAI,GAAG,EAAE;QAC1B;AACA,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAEhD,QAAA,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC;AAChD,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;IAC5B;AACD;;;;"}
1
+ {"version":3,"file":"Text.js","sources":["../../../../../src/rendering/text/Text.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * Compositing blend modes applied when drawing a {@link Drawable} over the current render target.
3
- * Values map to backend-specific blend-equation presets.
3
+ *
4
+ * Modes 0–4 are implemented as fixed-function GPU blend equations (no texture
5
+ * capture required). Modes 5–17 use a backdrop-aware compositor: the content is
6
+ * first rendered off-screen, then composited over the captured backdrop via a
7
+ * W3C-compliant blend shader. Use {@link isAdvancedBlendMode} to test whether a
8
+ * mode requires the compositor path.
4
9
  */
5
10
  export declare enum BlendModes {
6
11
  Normal = 0,
@@ -8,20 +13,39 @@ export declare enum BlendModes {
8
13
  Subtract = 2,
9
14
  Multiply = 3,
10
15
  Screen = 4,
11
- /**
12
- * `min(src, dst)` per channel.
13
- *
14
- * KNOWN LIMITATION: implemented with the fixed-function `MIN` blend equation,
15
- * which ignores the blend factors and therefore cannot account for source
16
- * coverage. With premultiplied-alpha drawables, transparent texels (rgb = 0)
17
- * resolve to `min(0, dst) = 0`, so transparent regions of a sprite turn black
18
- * instead of showing the background. Reliable only for fully opaque sources;
19
- * a coverage-correct version needs a shader-side blend. Tracked for a future
20
- * render pass. {@link Lighten} is unaffected (`max(0, dst) = dst`).
21
- */
16
+ /** `min(src, dst)` per channel — coverage-correct via backdrop-aware shader. */
22
17
  Darken = 5,
23
- Lighten = 6
18
+ /** `max(src, dst)` per channel — coverage-correct via backdrop-aware shader. */
19
+ Lighten = 6,
20
+ /** Overlay: darkens or lightens depending on backdrop luminosity. */
21
+ Overlay = 7,
22
+ /** Color Dodge: brightens the backdrop to reflect the source. */
23
+ ColorDodge = 8,
24
+ /** Color Burn: darkens the backdrop to reflect the source. */
25
+ ColorBurn = 9,
26
+ /** Hard Light: strong Overlay with source and backdrop roles swapped. */
27
+ HardLight = 10,
28
+ /** Soft Light: softer Overlay effect. */
29
+ SoftLight = 11,
30
+ /** Difference: absolute value of channel difference. */
31
+ Difference = 12,
32
+ /** Exclusion: lower-contrast alternative to Difference. */
33
+ Exclusion = 13,
34
+ /** Hue: source hue with backdrop saturation and luminosity. */
35
+ Hue = 14,
36
+ /** Saturation: source saturation with backdrop hue and luminosity. */
37
+ Saturation = 15,
38
+ /** Color: source hue+saturation with backdrop luminosity. */
39
+ Color = 16,
40
+ /** Luminosity: source luminosity with backdrop hue+saturation. */
41
+ Luminosity = 17
24
42
  }
43
+ /**
44
+ * Returns `true` for blend modes that require the backdrop-aware compositor
45
+ * (shader-side blend + GPU texture copy). Modes 0–4 use fixed-function blending
46
+ * and return `false`. Modes 5–17 return `true`.
47
+ */
48
+ export declare const isAdvancedBlendMode: (mode: BlendModes) => boolean;
25
49
  /**
26
50
  * Texture magnification and minification filter modes.
27
51
  * Values are WebGL2 GLenum constants and are passed directly to the GPU sampler.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/rendering/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,UAAU;IACpB,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV;;;;;;;;;;OAUG;IACH,MAAM,IAAI;IACV,OAAO,IAAI;CACZ;AAED;;;;GAIG;AACH,oBAAY,UAAU;IACpB,OAAO,OAAS;IAChB,MAAM,OAAS;IACf,oBAAoB,OAAS;IAC7B,mBAAmB,OAAS;IAC5B,mBAAmB,OAAS;IAC5B,kBAAkB,OAAS;CAC5B;AAED;;;GAGG;AACH,oBAAY,SAAS;IACnB,MAAM,QAAS;IACf,WAAW,QAAS;IACpB,cAAc,QAAS;CACxB;AAED;;;GAGG;AACH,oBAAY,mBAAmB;IAC7B,MAAM,IAAS;IACf,KAAK,IAAS;IACd,QAAQ,IAAS;IACjB,SAAS,IAAS;IAClB,SAAS,IAAS;IAClB,aAAa,IAAS;IACtB,WAAW,IAAS;CACrB;AAED;;;GAGG;AACH,oBAAY,WAAW;IACrB,WAAW,QAAS;IACpB,kBAAkB,QAAS;IAC3B,cAAc,QAAS;IACvB,eAAe,QAAS;IACxB,uBAAuB,QAAS;IAChC,aAAa,QAAS;IACtB,eAAe,QAAS;IACxB,iBAAiB,QAAS;CAC3B;AAED;;;GAGG;AACH,oBAAY,WAAW;IACrB,UAAU,QAAS;IACnB,UAAU,QAAS;IACnB,UAAU,QAAS;IACnB,WAAW,QAAS;IACpB,WAAW,QAAS;IACpB,WAAW,QAAS;IACpB,UAAU,QAAS;IACnB,UAAU,QAAS;IACnB,UAAU,QAAS;CACpB;AAED;;;GAGG;AAEH,oBAAY,gBAAgB;IAC1B,GAAG,OAAS;IACZ,OAAO,QAAS;IAChB,OAAO,QAAS;IAChB,OAAO,QAAS;IAEhB,WAAW,OAAS;IACpB,eAAe,QAAS;IACxB,eAAe,QAAS;IACxB,eAAe,QAAS;IAExB,KAAK,OAAS;IACd,SAAS,QAAS;IAClB,SAAS,QAAS;IAClB,SAAS,QAAS;IAElB,IAAI,QAAS;IACb,QAAQ,QAAS;IACjB,QAAQ,QAAS;IACjB,QAAQ,QAAS;IAEjB,SAAS,QAAS;IAClB,SAAS,QAAS;IAClB,SAAS,QAAS;IAElB,SAAS,QAAS;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/rendering/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,oBAAY,UAAU;IACpB,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,gFAAgF;IAChF,MAAM,IAAI;IACV,gFAAgF;IAChF,OAAO,IAAI;IACX,qEAAqE;IACrE,OAAO,IAAI;IACX,iEAAiE;IACjE,UAAU,IAAI;IACd,8DAA8D;IAC9D,SAAS,IAAI;IACb,yEAAyE;IACzE,SAAS,KAAK;IACd,yCAAyC;IACzC,SAAS,KAAK;IACd,wDAAwD;IACxD,UAAU,KAAK;IACf,2DAA2D;IAC3D,SAAS,KAAK;IACd,+DAA+D;IAC/D,GAAG,KAAK;IACR,sEAAsE;IACtE,UAAU,KAAK;IACf,6DAA6D;IAC7D,KAAK,KAAK;IACV,kEAAkE;IAClE,UAAU,KAAK;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,UAAU,KAAG,OAAoC,CAAC;AAE5F;;;;GAIG;AACH,oBAAY,UAAU;IACpB,OAAO,OAAS;IAChB,MAAM,OAAS;IACf,oBAAoB,OAAS;IAC7B,mBAAmB,OAAS;IAC5B,mBAAmB,OAAS;IAC5B,kBAAkB,OAAS;CAC5B;AAED;;;GAGG;AACH,oBAAY,SAAS;IACnB,MAAM,QAAS;IACf,WAAW,QAAS;IACpB,cAAc,QAAS;CACxB;AAED;;;GAGG;AACH,oBAAY,mBAAmB;IAC7B,MAAM,IAAS;IACf,KAAK,IAAS;IACd,QAAQ,IAAS;IACjB,SAAS,IAAS;IAClB,SAAS,IAAS;IAClB,aAAa,IAAS;IACtB,WAAW,IAAS;CACrB;AAED;;;GAGG;AACH,oBAAY,WAAW;IACrB,WAAW,QAAS;IACpB,kBAAkB,QAAS;IAC3B,cAAc,QAAS;IACvB,eAAe,QAAS;IACxB,uBAAuB,QAAS;IAChC,aAAa,QAAS;IACtB,eAAe,QAAS;IACxB,iBAAiB,QAAS;CAC3B;AAED;;;GAGG;AACH,oBAAY,WAAW;IACrB,UAAU,QAAS;IACnB,UAAU,QAAS;IACnB,UAAU,QAAS;IACnB,WAAW,QAAS;IACpB,WAAW,QAAS;IACpB,WAAW,QAAS;IACpB,UAAU,QAAS;IACnB,UAAU,QAAS;IACnB,UAAU,QAAS;CACpB;AAED;;;GAGG;AAEH,oBAAY,gBAAgB;IAC1B,GAAG,OAAS;IACZ,OAAO,QAAS;IAChB,OAAO,QAAS;IAChB,OAAO,QAAS;IAEhB,WAAW,OAAS;IACpB,eAAe,QAAS;IACxB,eAAe,QAAS;IACxB,eAAe,QAAS;IAExB,KAAK,OAAS;IACd,SAAS,QAAS;IAClB,SAAS,QAAS;IAClB,SAAS,QAAS;IAElB,IAAI,QAAS;IACb,QAAQ,QAAS;IACjB,QAAQ,QAAS;IACjB,QAAQ,QAAS;IAEjB,SAAS,QAAS;IAClB,SAAS,QAAS;IAClB,SAAS,QAAS;IAElB,SAAS,QAAS;CACnB"}
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * Compositing blend modes applied when drawing a {@link Drawable} over the current render target.
3
- * Values map to backend-specific blend-equation presets.
3
+ *
4
+ * Modes 0–4 are implemented as fixed-function GPU blend equations (no texture
5
+ * capture required). Modes 5–17 use a backdrop-aware compositor: the content is
6
+ * first rendered off-screen, then composited over the captured backdrop via a
7
+ * W3C-compliant blend shader. Use {@link isAdvancedBlendMode} to test whether a
8
+ * mode requires the compositor path.
4
9
  */
5
10
  var BlendModes;
6
11
  (function (BlendModes) {
@@ -9,20 +14,39 @@ var BlendModes;
9
14
  BlendModes[BlendModes["Subtract"] = 2] = "Subtract";
10
15
  BlendModes[BlendModes["Multiply"] = 3] = "Multiply";
11
16
  BlendModes[BlendModes["Screen"] = 4] = "Screen";
12
- /**
13
- * `min(src, dst)` per channel.
14
- *
15
- * KNOWN LIMITATION: implemented with the fixed-function `MIN` blend equation,
16
- * which ignores the blend factors and therefore cannot account for source
17
- * coverage. With premultiplied-alpha drawables, transparent texels (rgb = 0)
18
- * resolve to `min(0, dst) = 0`, so transparent regions of a sprite turn black
19
- * instead of showing the background. Reliable only for fully opaque sources;
20
- * a coverage-correct version needs a shader-side blend. Tracked for a future
21
- * render pass. {@link Lighten} is unaffected (`max(0, dst) = dst`).
22
- */
17
+ /** `min(src, dst)` per channel — coverage-correct via backdrop-aware shader. */
23
18
  BlendModes[BlendModes["Darken"] = 5] = "Darken";
19
+ /** `max(src, dst)` per channel — coverage-correct via backdrop-aware shader. */
24
20
  BlendModes[BlendModes["Lighten"] = 6] = "Lighten";
21
+ /** Overlay: darkens or lightens depending on backdrop luminosity. */
22
+ BlendModes[BlendModes["Overlay"] = 7] = "Overlay";
23
+ /** Color Dodge: brightens the backdrop to reflect the source. */
24
+ BlendModes[BlendModes["ColorDodge"] = 8] = "ColorDodge";
25
+ /** Color Burn: darkens the backdrop to reflect the source. */
26
+ BlendModes[BlendModes["ColorBurn"] = 9] = "ColorBurn";
27
+ /** Hard Light: strong Overlay with source and backdrop roles swapped. */
28
+ BlendModes[BlendModes["HardLight"] = 10] = "HardLight";
29
+ /** Soft Light: softer Overlay effect. */
30
+ BlendModes[BlendModes["SoftLight"] = 11] = "SoftLight";
31
+ /** Difference: absolute value of channel difference. */
32
+ BlendModes[BlendModes["Difference"] = 12] = "Difference";
33
+ /** Exclusion: lower-contrast alternative to Difference. */
34
+ BlendModes[BlendModes["Exclusion"] = 13] = "Exclusion";
35
+ /** Hue: source hue with backdrop saturation and luminosity. */
36
+ BlendModes[BlendModes["Hue"] = 14] = "Hue";
37
+ /** Saturation: source saturation with backdrop hue and luminosity. */
38
+ BlendModes[BlendModes["Saturation"] = 15] = "Saturation";
39
+ /** Color: source hue+saturation with backdrop luminosity. */
40
+ BlendModes[BlendModes["Color"] = 16] = "Color";
41
+ /** Luminosity: source luminosity with backdrop hue+saturation. */
42
+ BlendModes[BlendModes["Luminosity"] = 17] = "Luminosity";
25
43
  })(BlendModes || (BlendModes = {}));
44
+ /**
45
+ * Returns `true` for blend modes that require the backdrop-aware compositor
46
+ * (shader-side blend + GPU texture copy). Modes 0–4 use fixed-function blending
47
+ * and return `false`. Modes 5–17 return `true`.
48
+ */
49
+ const isAdvancedBlendMode = (mode) => mode >= BlendModes.Darken;
26
50
  /**
27
51
  * Texture magnification and minification filter modes.
28
52
  * Values are WebGL2 GLenum constants and are passed directly to the GPU sampler.
@@ -121,5 +145,5 @@ var ShaderPrimitives;
121
145
  ShaderPrimitives[ShaderPrimitives["Sampler2D"] = 35678] = "Sampler2D";
122
146
  })(ShaderPrimitives || (ShaderPrimitives = {}));
123
147
 
124
- export { BlendModes, BufferTypes, BufferUsage, RenderingPrimitives, ScaleModes, ShaderPrimitives, WrapModes };
148
+ export { BlendModes, BufferTypes, BufferUsage, RenderingPrimitives, ScaleModes, ShaderPrimitives, WrapModes, isAdvancedBlendMode };
125
149
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../src/rendering/types.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sources":["../../../../src/rendering/types.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { RenderTexture } from '#rendering/texture/RenderTexture';
2
+ import type { Texture } from '#rendering/texture/Texture';
3
+ import { BlendModes } from '#rendering/types';
4
+ import type { WebGl2Backend } from './WebGl2Backend';
5
+ /**
6
+ * Single-quad backdrop-aware blend compositor used by
7
+ * `WebGl2Backend.composeWithBackdropBlend`. Samples the premultiplied source
8
+ * texture (slot 0) and the captured premultiplied backdrop texture (slot 1),
9
+ * computes the W3C blend for the requested {@link BlendModes}, and draws the
10
+ * result over the active target with normal (premultiplied source-over)
11
+ * blending — so the GPU composites the blended source over the backdrop already
12
+ * in the target.
13
+ *
14
+ * Mirrors {@link WebGl2MaskCompositor}'s structure; like it, this is invoked
15
+ * directly by the backend and never participates in renderer-registry dispatch.
16
+ */
17
+ export declare class WebGl2BackdropBlendCompositor {
18
+ private readonly _shader;
19
+ private readonly _vertexData;
20
+ private readonly _float32View;
21
+ private readonly _sourceSamplerSlot;
22
+ private readonly _backdropSamplerSlot;
23
+ private readonly _modeValue;
24
+ private readonly _opaqueValue;
25
+ private _connection;
26
+ connect(backend: WebGl2Backend): void;
27
+ disconnect(): void;
28
+ /**
29
+ * Composite `source` over the active target's current contents under an
30
+ * advanced (backdrop-aware) blend mode. Captures the target's `[x, y, width,
31
+ * height]` region (view units) as the backdrop, runs the blend in a shader,
32
+ * and draws the blended source over the untouched backdrop with normal
33
+ * premultiplied source-over.
34
+ */
35
+ compose(backend: WebGl2Backend, source: Texture | RenderTexture, x: number, y: number, width: number, height: number, blendMode: BlendModes): void;
36
+ private _drawBlend;
37
+ private _writeQuadVertices;
38
+ private _createBufferRuntime;
39
+ private _createVaoRuntime;
40
+ }
41
+ //# sourceMappingURL=WebGl2BackdropBlendCompositor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGl2BackdropBlendCompositor.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgl2/WebGl2BackdropBlendCompositor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAA4B,MAAM,kBAAkB,CAAC;AAIxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAkBrD;;;;;;;;;;;GAWG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoD;IAC5E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuD;IACnF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoD;IACjF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmC;IACtE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAmC;IACxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAC9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,WAAW,CAAkD;IAE9D,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAkCrC,UAAU,IAAI,IAAI;IAczB;;;;;;OAMG;IACI,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI;IAuCzJ,OAAO,CAAC,UAAU;IAgDlB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,iBAAiB;CA2C1B"}
@@ -0,0 +1,222 @@
1
+ import { Shader } from '../shader/Shader.js';
2
+ import { BufferTypes, BufferUsage, BlendModes } from '../types.js';
3
+ import fragmentSource from './glsl/backdrop-blend.frag.js';
4
+ import vertexSource from './glsl/backdrop-blend.vert.js';
5
+ import { WebGl2RenderBuffer } from './WebGl2RenderBuffer.js';
6
+ import { createWebGl2ShaderProgram } from './WebGl2ShaderProgram.js';
7
+ import { WebGl2VertexArrayObject } from './WebGl2VertexArrayObject.js';
8
+
9
+ // 4 floats per vertex: position(x, y) + texcoord(u, v).
10
+ const vertexStrideBytes = 16;
11
+ const quadIndices = new Uint16Array([0, 1, 2, 0, 2, 3]);
12
+ /**
13
+ * Single-quad backdrop-aware blend compositor used by
14
+ * `WebGl2Backend.composeWithBackdropBlend`. Samples the premultiplied source
15
+ * texture (slot 0) and the captured premultiplied backdrop texture (slot 1),
16
+ * computes the W3C blend for the requested {@link BlendModes}, and draws the
17
+ * result over the active target with normal (premultiplied source-over)
18
+ * blending — so the GPU composites the blended source over the backdrop already
19
+ * in the target.
20
+ *
21
+ * Mirrors {@link WebGl2MaskCompositor}'s structure; like it, this is invoked
22
+ * directly by the backend and never participates in renderer-registry dispatch.
23
+ */
24
+ class WebGl2BackdropBlendCompositor {
25
+ _shader = new Shader(vertexSource, fragmentSource);
26
+ _vertexData = new ArrayBuffer(4 * vertexStrideBytes);
27
+ _float32View = new Float32Array(this._vertexData);
28
+ _sourceSamplerSlot = new Int32Array([0]);
29
+ _backdropSamplerSlot = new Int32Array([1]);
30
+ _modeValue = new Int32Array([0]);
31
+ _opaqueValue = new Float32Array([0]);
32
+ _connection = null;
33
+ connect(backend) {
34
+ if (this._connection !== null) {
35
+ return;
36
+ }
37
+ const gl = backend.context;
38
+ const vaoHandle = gl.createVertexArray();
39
+ if (vaoHandle === null) {
40
+ throw new Error('WebGl2BackdropBlendCompositor: could not create vertex array object.');
41
+ }
42
+ this._shader.connect(createWebGl2ShaderProgram(gl));
43
+ const bufferHandles = new Map();
44
+ const indexBuffer = new WebGl2RenderBuffer(BufferTypes.ElementArrayBuffer, quadIndices, BufferUsage.StaticDraw).connect(this._createBufferRuntime(gl, bufferHandles));
45
+ const vertexBuffer = new WebGl2RenderBuffer(BufferTypes.ArrayBuffer, this._vertexData, BufferUsage.DynamicDraw).connect(this._createBufferRuntime(gl, bufferHandles));
46
+ // Force shader finalize so getAttribute() below sees a populated attribute table.
47
+ this._shader.sync();
48
+ const vao = new WebGl2VertexArrayObject()
49
+ .addIndex(indexBuffer)
50
+ .addAttribute(vertexBuffer, this._shader.getAttribute('a_position'), gl.FLOAT, false, vertexStrideBytes, 0)
51
+ .addAttribute(vertexBuffer, this._shader.getAttribute('a_texcoord'), gl.FLOAT, false, vertexStrideBytes, 8)
52
+ .connect(this._createVaoRuntime(gl, vaoHandle));
53
+ this._connection = { gl, vaoHandle, vao, indexBuffer, vertexBuffer, bufferHandles };
54
+ }
55
+ disconnect() {
56
+ const connection = this._connection;
57
+ if (connection === null) {
58
+ return;
59
+ }
60
+ connection.indexBuffer.destroy();
61
+ connection.vertexBuffer.destroy();
62
+ connection.vao.destroy();
63
+ this._shader.disconnect();
64
+ this._connection = null;
65
+ }
66
+ /**
67
+ * Composite `source` over the active target's current contents under an
68
+ * advanced (backdrop-aware) blend mode. Captures the target's `[x, y, width,
69
+ * height]` region (view units) as the backdrop, runs the blend in a shader,
70
+ * and draws the blended source over the untouched backdrop with normal
71
+ * premultiplied source-over.
72
+ */
73
+ compose(backend, source, x, y, width, height, blendMode) {
74
+ if (this._connection === null) {
75
+ throw new Error('WebGl2BackdropBlendCompositor: not connected.');
76
+ }
77
+ if (width <= 0 || height <= 0) {
78
+ return;
79
+ }
80
+ const gl = backend.context;
81
+ const target = backend.renderTarget;
82
+ const scaleX = target.root && target.width > 0 ? gl.drawingBufferWidth / target.width : 1;
83
+ const scaleY = target.root && target.height > 0 ? gl.drawingBufferHeight / target.height : 1;
84
+ const px = Math.max(0, Math.floor(x * scaleX));
85
+ const py = Math.max(0, Math.floor(gl.drawingBufferHeight - (y + height) * scaleY));
86
+ const backdrop = backend.acquireRenderTexture(width, height);
87
+ const cw = Math.min(backdrop.width, Math.max(0, Math.round(width * scaleX)));
88
+ const ch = Math.min(backdrop.height, Math.max(0, Math.round(height * scaleY)));
89
+ // An opaque framebuffer (the default alpha-less root canvas) reports a
90
+ // captured backdrop alpha of 0; treat such a backdrop as fully covered.
91
+ const opaqueBackdrop = target.root && !(gl.getContextAttributes()?.alpha ?? false);
92
+ try {
93
+ // Capture the target region into the backdrop via blit; copyTexSubImage2D
94
+ // reads the opaque default framebuffer as black, so blit is the reliable
95
+ // path for the on-screen root canvas.
96
+ gl.bindFramebuffer(gl.READ_FRAMEBUFFER, backend._renderTargetFramebuffer(target));
97
+ gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, backend._renderTargetFramebuffer(backdrop));
98
+ gl.blitFramebuffer(px, py, px + cw, py + ch, 0, 0, cw, ch, gl.COLOR_BUFFER_BIT, gl.NEAREST);
99
+ gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);
100
+ gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);
101
+ backend._rebindActiveTarget();
102
+ this._drawBlend(backend, source, backdrop, x, y, width, height, blendMode, opaqueBackdrop);
103
+ }
104
+ finally {
105
+ backend.releaseRenderTexture(backdrop);
106
+ }
107
+ }
108
+ _drawBlend(backend, source, backdrop, x, y, width, height, blendMode, opaqueBackdrop) {
109
+ const connection = this._connection;
110
+ if (connection === null) {
111
+ throw new Error('WebGl2BackdropBlendCompositor: not connected.');
112
+ }
113
+ this._writeQuadVertices(x, y, x + width, y + height);
114
+ backend.bindShader(this._shader);
115
+ const projection = backend.view.getTransform().toArray(false);
116
+ this._modeValue[0] = blendMode;
117
+ this._opaqueValue[0] = opaqueBackdrop ? 1 : 0;
118
+ this._shader.getUniform('u_projection').setValue(projection);
119
+ this._shader.getUniform('u_source').setValue(this._sourceSamplerSlot);
120
+ this._shader.getUniform('u_backdrop').setValue(this._backdropSamplerSlot);
121
+ this._shader.getUniform('u_mode').setValue(this._modeValue);
122
+ this._shader.getUniform('u_opaqueBackdrop').setValue(this._opaqueValue);
123
+ this._shader.sync();
124
+ backend.bindTexture(source, 0);
125
+ backend.bindTexture(backdrop, 1);
126
+ // The blend math is in the shader; composite the blended source over the
127
+ // backdrop already in the target with normal premultiplied source-over.
128
+ backend.setBlendMode(BlendModes.Normal);
129
+ backend.bindVertexArrayObject(connection.vao);
130
+ connection.vertexBuffer.upload(this._float32View);
131
+ connection.vao.draw(6, 0);
132
+ backend.stats.batches++;
133
+ backend.stats.drawCalls++;
134
+ backend.bindTexture(null, 1);
135
+ }
136
+ _writeQuadVertices(left, top, right, bottom) {
137
+ const view = this._float32View;
138
+ // Vertex 0: top-left (UV 0, 0)
139
+ view[0] = left;
140
+ view[1] = top;
141
+ view[2] = 0;
142
+ view[3] = 0;
143
+ // Vertex 1: top-right (UV 1, 0)
144
+ view[4] = right;
145
+ view[5] = top;
146
+ view[6] = 1;
147
+ view[7] = 0;
148
+ // Vertex 2: bottom-right (UV 1, 1)
149
+ view[8] = right;
150
+ view[9] = bottom;
151
+ view[10] = 1;
152
+ view[11] = 1;
153
+ // Vertex 3: bottom-left (UV 0, 1)
154
+ view[12] = left;
155
+ view[13] = bottom;
156
+ view[14] = 0;
157
+ view[15] = 1;
158
+ }
159
+ _createBufferRuntime(gl, handles) {
160
+ const handle = gl.createBuffer();
161
+ if (handle === null) {
162
+ throw new Error('WebGl2BackdropBlendCompositor: could not create render buffer.');
163
+ }
164
+ return {
165
+ bind: (buffer) => {
166
+ gl.bindBuffer(buffer.type, handle);
167
+ },
168
+ upload: (buffer) => {
169
+ const data = buffer.data;
170
+ gl.bindBuffer(buffer.type, handle);
171
+ gl.bufferData(buffer.type, data, buffer.usage);
172
+ handles.set(buffer, handle);
173
+ },
174
+ destroy: (buffer) => {
175
+ gl.deleteBuffer(handle);
176
+ handles.delete(buffer);
177
+ buffer.disconnect();
178
+ },
179
+ };
180
+ }
181
+ _createVaoRuntime(gl, vaoHandle) {
182
+ let appliedVersion = -1;
183
+ return {
184
+ bind: (vao) => {
185
+ gl.bindVertexArray(vaoHandle);
186
+ if (appliedVersion !== vao.version) {
187
+ let lastBuffer = null;
188
+ for (const attribute of vao.attributes) {
189
+ if (lastBuffer !== attribute.buffer) {
190
+ attribute.buffer.bind();
191
+ lastBuffer = attribute.buffer;
192
+ }
193
+ gl.vertexAttribPointer(attribute.location, attribute.size, attribute.type, attribute.normalized, attribute.stride, attribute.start);
194
+ gl.enableVertexAttribArray(attribute.location);
195
+ }
196
+ if (vao.indexBuffer) {
197
+ vao.indexBuffer.bind();
198
+ }
199
+ appliedVersion = vao.version;
200
+ }
201
+ },
202
+ unbind: () => {
203
+ gl.bindVertexArray(null);
204
+ },
205
+ draw: (vao, size, start, type) => {
206
+ if (vao.indexBuffer) {
207
+ gl.drawElements(type, size, gl.UNSIGNED_SHORT, start);
208
+ }
209
+ else {
210
+ gl.drawArrays(type, start, size);
211
+ }
212
+ },
213
+ destroy: (vao) => {
214
+ gl.deleteVertexArray(vaoHandle);
215
+ vao.disconnect();
216
+ },
217
+ };
218
+ }
219
+ }
220
+
221
+ export { WebGl2BackdropBlendCompositor };
222
+ //# sourceMappingURL=WebGl2BackdropBlendCompositor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGl2BackdropBlendCompositor.js","sources":["../../../../../src/rendering/webgl2/WebGl2BackdropBlendCompositor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -55,6 +55,8 @@ export declare class WebGl2Backend implements RenderBackend {
55
55
  private readonly _clipPointB;
56
56
  private readonly _maskCompositor;
57
57
  private _maskCompositorConnected;
58
+ private readonly _backdropBlendCompositor;
59
+ private _backdropBlendCompositorConnected;
58
60
  private readonly _stencilClipper;
59
61
  private readonly _stencilStates;
60
62
  private _stencilClipperConnected;
@@ -79,6 +81,8 @@ export declare class WebGl2Backend implements RenderBackend {
79
81
  private _transformTextureCount;
80
82
  private _activeDrawCommand;
81
83
  private _drawPlanDepth;
84
+ private readonly _planBaseStack;
85
+ private readonly _planHashStack;
82
86
  constructor(app: Application);
83
87
  get context(): WebGL2RenderingContext;
84
88
  get renderTarget(): RenderTarget;
@@ -103,8 +107,10 @@ export declare class WebGl2Backend implements RenderBackend {
103
107
  get _passCoordinator(): WebGl2PassCoordinator;
104
108
  initialize(): Promise<this>;
105
109
  resetStats(): this;
110
+ /** Frame-global slot base the plan builder indexes from. @internal */
111
+ get transformBufferCount(): number;
106
112
  /** @internal */
107
- _beginDrawPlan(nodeCount: number): void;
113
+ _beginDrawPlan(_nodeCount: number): void;
108
114
  /** @internal */
109
115
  _prepareRenderGroupUpload(entries: readonly ScopeEntry[], startIndex: number, count: number): void;
110
116
  /** @internal */
@@ -159,12 +165,39 @@ export declare class WebGl2Backend implements RenderBackend {
159
165
  pushStencilClip(shape: Geometry, transform: Matrix): this;
160
166
  popStencilClip(): this;
161
167
  composeWithAlphaMask(content: Texture | RenderTexture, mask: Texture | RenderTexture, x: number, y: number, width: number, height: number, blendMode: BlendModes): this;
168
+ composeWithBackdropBlend(source: RenderTexture, x: number, y: number, width: number, height: number, mode: BlendModes): this;
169
+ /**
170
+ * Return the GL framebuffer for `target`, preparing the render-target state so
171
+ * the texture is attached. Used internally by {@link WebGl2BackdropBlendCompositor}
172
+ * for framebuffer blits. Null for the root (default) framebuffer.
173
+ * @internal
174
+ */
175
+ _renderTargetFramebuffer(target: RenderTarget): WebGLFramebuffer | null;
176
+ /**
177
+ * Re-bind the currently active render target as the GL DRAW framebuffer and
178
+ * restore the viewport. Called by {@link WebGl2BackdropBlendCompositor} after
179
+ * it unbinds the framebuffer for a blit operation.
180
+ * @internal
181
+ */
182
+ _rebindActiveTarget(): void;
162
183
  acquireRenderTexture(width: number, height: number): RenderTexture;
163
184
  releaseRenderTexture(texture: RenderTexture): this;
164
185
  setView(view: View | null): this;
165
186
  bindVertexArrayObject(vao: WebGl2VertexArrayObject | null): this;
166
187
  bindShader(shader: Shader | null): this;
167
188
  bindTexture(texture: Texture | RenderTexture | null, unit?: number): this;
189
+ /**
190
+ * Make `unit` the active texture unit through the backend's unit cache.
191
+ *
192
+ * Renderers that bind a *raw* `WebGLTexture` to a unit (e.g. the text
193
+ * renderer's private node-data texture) must route the unit switch through
194
+ * here instead of calling `gl.activeTexture` directly — otherwise the cache
195
+ * goes stale and a later {@link bindTexture} can skip its own `activeTexture`
196
+ * call, binding to the wrong unit. After this returns the caller may issue its
197
+ * own raw `gl.bindTexture` on the now-active unit.
198
+ * @internal
199
+ */
200
+ setActiveTextureUnit(unit: number): this;
168
201
  /** @internal */
169
202
  bindTransformBufferTexture(unit: number, minCount: number): this;
170
203
  setBlendMode(blendMode: BlendModes | null): this;
@@ -1 +1 @@
1
- {"version":3,"file":"WebGl2Backend.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgl2/WebGl2Backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGl2Backend.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgl2/WebGl2Backend.ts"],"names":[],"mappings":"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"}