@codexo/exojs 0.14.0 → 0.15.1

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 (277) hide show
  1. package/CHANGELOG.md +183 -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/Playable.d.ts +6 -1
  17. package/dist/esm/audio/Playable.d.ts.map +1 -1
  18. package/dist/esm/audio/WorkletEffect.d.ts +34 -20
  19. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -1
  20. package/dist/esm/audio/WorkletEffect.js +92 -25
  21. package/dist/esm/audio/WorkletEffect.js.map +1 -1
  22. package/dist/esm/core/Application.d.ts +43 -5
  23. package/dist/esm/core/Application.d.ts.map +1 -1
  24. package/dist/esm/core/Application.js +83 -9
  25. package/dist/esm/core/Application.js.map +1 -1
  26. package/dist/esm/core/BuildInfo.js +2 -2
  27. package/dist/esm/core/Codec.d.ts +41 -0
  28. package/dist/esm/core/Codec.d.ts.map +1 -0
  29. package/dist/esm/core/Codec.js +79 -0
  30. package/dist/esm/core/Codec.js.map +1 -0
  31. package/dist/esm/core/FixedTimestep.d.ts +28 -0
  32. package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
  33. package/dist/esm/core/FixedTimestep.js +62 -0
  34. package/dist/esm/core/FixedTimestep.js.map +1 -0
  35. package/dist/esm/core/Scene.d.ts +14 -0
  36. package/dist/esm/core/Scene.d.ts.map +1 -1
  37. package/dist/esm/core/Scene.js +18 -0
  38. package/dist/esm/core/Scene.js.map +1 -1
  39. package/dist/esm/core/SceneManager.d.ts +7 -0
  40. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  41. package/dist/esm/core/SceneManager.js +20 -4
  42. package/dist/esm/core/SceneManager.js.map +1 -1
  43. package/dist/esm/core/SceneNode.d.ts +46 -7
  44. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  45. package/dist/esm/core/SceneNode.js +73 -12
  46. package/dist/esm/core/SceneNode.js.map +1 -1
  47. package/dist/esm/core/Stage.d.ts +7 -0
  48. package/dist/esm/core/Stage.d.ts.map +1 -1
  49. package/dist/esm/core/SystemRegistry.d.ts +5 -0
  50. package/dist/esm/core/SystemRegistry.d.ts.map +1 -1
  51. package/dist/esm/core/SystemRegistry.js +10 -0
  52. package/dist/esm/core/SystemRegistry.js.map +1 -1
  53. package/dist/esm/core/index.d.ts +4 -0
  54. package/dist/esm/core/index.d.ts.map +1 -1
  55. package/dist/esm/core/logging.d.ts +34 -0
  56. package/dist/esm/core/logging.d.ts.map +1 -0
  57. package/dist/esm/core/logging.js +59 -0
  58. package/dist/esm/core/logging.js.map +1 -0
  59. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -1
  60. package/dist/esm/core/serialization/commonFields.js +6 -0
  61. package/dist/esm/core/serialization/commonFields.js.map +1 -1
  62. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -1
  63. package/dist/esm/core/serialization/renderingSerializers.js +14 -5
  64. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -1
  65. package/dist/esm/debug/BoundingBoxesLayer.d.ts.map +1 -1
  66. package/dist/esm/debug/BoundingBoxesLayer.js +2 -1
  67. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
  68. package/dist/esm/debug/HitTestLayer.js +4 -4
  69. package/dist/esm/debug/HitTestLayer.js.map +1 -1
  70. package/dist/esm/debug/PerformanceLayer.js +1 -1
  71. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  72. package/dist/esm/debug/RenderPassInspectorLayer.js +2 -2
  73. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  74. package/dist/esm/index.js +7 -2
  75. package/dist/esm/index.js.map +1 -1
  76. package/dist/esm/input/Gamepad.d.ts +10 -0
  77. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  78. package/dist/esm/input/Gamepad.js +12 -0
  79. package/dist/esm/input/Gamepad.js.map +1 -1
  80. package/dist/esm/input/InputManager.d.ts.map +1 -1
  81. package/dist/esm/input/InputManager.js +5 -0
  82. package/dist/esm/input/InputManager.js.map +1 -1
  83. package/dist/esm/input/InteractionManager.js +4 -4
  84. package/dist/esm/input/InteractionManager.js.map +1 -1
  85. package/dist/esm/math/AbstractVector.d.ts +4 -3
  86. package/dist/esm/math/AbstractVector.d.ts.map +1 -1
  87. package/dist/esm/math/AbstractVector.js +5 -4
  88. package/dist/esm/math/AbstractVector.js.map +1 -1
  89. package/dist/esm/math/ObservableVector.d.ts +2 -0
  90. package/dist/esm/math/ObservableVector.d.ts.map +1 -1
  91. package/dist/esm/math/ObservableVector.js +9 -0
  92. package/dist/esm/math/ObservableVector.js.map +1 -1
  93. package/dist/esm/math/Polygon.d.ts.map +1 -1
  94. package/dist/esm/math/Polygon.js +4 -1
  95. package/dist/esm/math/Polygon.js.map +1 -1
  96. package/dist/esm/math/collision-detection.d.ts.map +1 -1
  97. package/dist/esm/math/collision-detection.js +14 -14
  98. package/dist/esm/math/collision-detection.js.map +1 -1
  99. package/dist/esm/math/collision-primitives.d.ts +1 -1
  100. package/dist/esm/math/collision-primitives.d.ts.map +1 -1
  101. package/dist/esm/math/collision-primitives.js +4 -1
  102. package/dist/esm/math/collision-primitives.js.map +1 -1
  103. package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
  104. package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
  105. package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
  106. package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
  107. package/dist/esm/rendering/CallbackRenderPass.js +16 -11
  108. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  109. package/dist/esm/rendering/DrawContext.d.ts +48 -0
  110. package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
  111. package/dist/esm/rendering/PassContext.d.ts +42 -0
  112. package/dist/esm/rendering/PassContext.d.ts.map +1 -0
  113. package/dist/esm/rendering/PassContext.js +48 -0
  114. package/dist/esm/rendering/PassContext.js.map +1 -0
  115. package/dist/esm/rendering/RenderBackend.d.ts +14 -0
  116. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  117. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  118. package/dist/esm/rendering/RenderNode.js +2 -2
  119. package/dist/esm/rendering/RenderNode.js.map +1 -1
  120. package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
  121. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
  122. package/dist/esm/rendering/RenderingContext.d.ts +47 -16
  123. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  124. package/dist/esm/rendering/RenderingContext.js +134 -36
  125. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  126. package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
  127. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  128. package/dist/esm/rendering/TransformBuffer.js +58 -0
  129. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  130. package/dist/esm/rendering/View.d.ts +38 -0
  131. package/dist/esm/rendering/View.d.ts.map +1 -1
  132. package/dist/esm/rendering/View.js +37 -0
  133. package/dist/esm/rendering/View.js.map +1 -1
  134. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  135. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +9 -2
  136. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  137. package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
  138. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
  139. package/dist/esm/rendering/material/MeshMaterial.js +17 -0
  140. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
  141. package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
  142. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
  143. package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
  144. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
  145. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  146. package/dist/esm/rendering/plan/RenderEffectExecutor.js +7 -2
  147. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  148. package/dist/esm/rendering/plan/RenderInstruction.d.ts +5 -2
  149. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  150. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  151. package/dist/esm/rendering/plan/RenderPlanBuilder.js +23 -5
  152. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  153. package/dist/esm/rendering/plan/RenderScope.d.ts +7 -0
  154. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  155. package/dist/esm/rendering/primitives/Graphics.d.ts +17 -1
  156. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  157. package/dist/esm/rendering/primitives/Graphics.js +50 -15
  158. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  159. package/dist/esm/rendering/public.d.ts +5 -5
  160. package/dist/esm/rendering/public.d.ts.map +1 -1
  161. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +57 -19
  162. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  163. package/dist/esm/rendering/sprite/AnimatedSprite.js +138 -31
  164. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  165. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  166. package/dist/esm/rendering/sprite/Sprite.js +8 -0
  167. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  168. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  169. package/dist/esm/rendering/text/BitmapText.js +2 -0
  170. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  171. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  172. package/dist/esm/rendering/text/HTMLText.js +2 -2
  173. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  174. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  175. package/dist/esm/rendering/text/Text.js +2 -0
  176. package/dist/esm/rendering/text/Text.js.map +1 -1
  177. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
  178. package/dist/esm/rendering/text/TextLayout.js +2 -3
  179. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  180. package/dist/esm/rendering/types.d.ts +37 -13
  181. package/dist/esm/rendering/types.d.ts.map +1 -1
  182. package/dist/esm/rendering/types.js +37 -13
  183. package/dist/esm/rendering/types.js.map +1 -1
  184. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
  185. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
  186. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
  187. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
  188. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +34 -1
  189. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  190. package/dist/esm/rendering/webgl2/WebGl2Backend.js +108 -60
  191. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  192. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  193. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +50 -11
  194. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  195. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
  196. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
  197. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
  198. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
  199. package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
  200. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
  201. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
  202. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
  203. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
  204. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +27 -0
  205. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  206. package/dist/esm/rendering/webgpu/WebGpuBackend.js +157 -60
  207. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  208. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  209. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -29
  210. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  211. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
  212. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
  213. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
  214. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  215. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -0
  216. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  217. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +3 -1
  218. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  219. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
  220. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  221. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +2 -1
  222. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  223. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
  224. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
  225. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
  226. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
  227. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
  228. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  229. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +4 -1
  230. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  231. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
  232. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  233. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +2 -1
  234. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  235. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
  236. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  237. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +2 -1
  238. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  239. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
  240. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  241. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +3 -2
  242. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  243. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +3 -1
  244. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  245. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +29 -5
  246. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  247. package/dist/esm/resources/Loader.d.ts +13 -0
  248. package/dist/esm/resources/Loader.d.ts.map +1 -1
  249. package/dist/esm/resources/Loader.js +67 -7
  250. package/dist/esm/resources/Loader.js.map +1 -1
  251. package/dist/esm/resources/coreAssetBindings.d.ts +11 -0
  252. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
  253. package/dist/esm/resources/coreAssetBindings.js +10 -2
  254. package/dist/esm/resources/coreAssetBindings.js.map +1 -1
  255. package/dist/esm/ui/ScrollContainer.d.ts +63 -0
  256. package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
  257. package/dist/esm/ui/ScrollContainer.js +99 -0
  258. package/dist/esm/ui/ScrollContainer.js.map +1 -0
  259. package/dist/esm/ui/Tooltip.d.ts +67 -0
  260. package/dist/esm/ui/Tooltip.d.ts.map +1 -0
  261. package/dist/esm/ui/Tooltip.js +133 -0
  262. package/dist/esm/ui/Tooltip.js.map +1 -0
  263. package/dist/esm/ui/index.d.ts +4 -0
  264. package/dist/esm/ui/index.d.ts.map +1 -1
  265. package/dist/exo.debug.esm.js +1 -1
  266. package/dist/exo.debug.esm.js.map +1 -1
  267. package/dist/exo.esm.js +1 -1
  268. package/dist/exo.esm.js.map +1 -1
  269. package/dist/exo.iife.js +45273 -0
  270. package/dist/exo.iife.js.map +1 -0
  271. package/dist/exo.iife.min.js +2 -0
  272. package/dist/exo.iife.min.js.map +1 -0
  273. package/package.json +15 -3
  274. package/dist/esm/rendering/Camera.d.ts +0 -34
  275. package/dist/esm/rendering/Camera.d.ts.map +0 -1
  276. package/dist/esm/rendering/Camera.js +0 -38
  277. package/dist/esm/rendering/Camera.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TextLayout.js","sources":["../../../../../src/rendering/text/TextLayout.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextLayout.js","sources":["../../../../../src/rendering/text/TextLayout.ts"],"sourcesContent":[null],"names":[],"mappings":"AASA;;;AAGG;AAoBH;;;;;;;;;;AAUG;AACG,SAAU,UAAU,CAAC,IAAY,EAAE,KAAsB,EAAE,MAAqB,EAAE,QAAuB,EAAA;AAC7G,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,EAAE;IAEhC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK;AACtD,IAAA,MAAM,kBAAkB,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO;AAC1D,IAAA,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC;AAC/C,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAChC,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,KAAK;AAC7C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,UAAU;;IAGlD,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC;;IAGvD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;IAC1C,MAAM,QAAQ,GAAa,EAAE;AAE7B,IAAA,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;AAC5B,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACrB;aAAO;AACL,YAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QAC5F;IACF;;IAGA,MAAM,cAAc,GAAoB,EAAE;IAC1C,IAAI,YAAY,GAAG,CAAC;AAEpB,IAAA,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;;AAEhE,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAE;AACjC,QAAA,MAAM,KAAK,GAAG,SAAS,GAAG,kBAAkB;QAC5C,IAAI,OAAO,GAAG,CAAC;QACf,IAAI,SAAS,GAAG,CAAC;QACjB,IAAI,MAAM,GAAG,KAAK;QAClB,MAAM,UAAU,GAAgC,EAAE;QAClD,IAAI,QAAQ,GAAkB,IAAI;AAElC,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;;YAEvB,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC1D,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC;YAC1D;YAEA,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC9C,YAAA,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACrD,YAAA,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,aAAa;AAEvC,YAAA,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,MAAM,GAAG,KAAK;YAChB;iBAAO,IAAI,CAAC,MAAM,EAAE;gBAClB,MAAM,GAAG,IAAI;AACb,gBAAA,SAAS,EAAE;YACb;YAEA,QAAQ,GAAG,IAAI;QACjB;AAEA,QAAA,MAAM,SAAS,GAAG,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC;QACvE,IAAI,SAAS,GAAG,YAAY;YAAE,YAAY,GAAG,SAAS;AACtD,QAAA,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAClE;;IAGA,MAAM,MAAM,GAAqB,EAAE;AACnC,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC;AAE/C,IAAA,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;;AAEjD,QAAA,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,CAAE;QAChC,IAAI,OAAO,GAAG,CAAC;AAEf,QAAA,IAAI,KAAK,KAAK,OAAO,EAAE;AACrB,YAAA,OAAO,GAAG,YAAY,GAAG,IAAI,CAAC,KAAK;QACrC;AAAO,aAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;QAC3C;AAAO,aAAA,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,aAAa,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;;AAE5E,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;YAC/B,MAAM,WAAW,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI;AACtD,YAAA,IAAI,OAAO,GAAG,EAAE;YAChB,IAAI,YAAY,GAAG,IAAI;AAEvB,YAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnC,IAAI,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE;AACtC,oBAAA,OAAO,EAAE;oBACT,YAAY,GAAG,KAAK;gBACtB;qBAAO,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC9C,YAAY,GAAG,IAAI;gBACrB;gBAEA,MAAM,CAAC,IAAI,CAAC;AACV,oBAAA,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;AACzE,oBAAA,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;AACvC,oBAAA,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;AACvB,oBAAA,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;AACzB,oBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;AACrB,oBAAA,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;AACzB,oBAAA,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;AACvB,oBAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;AAC3B,oBAAA,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;AAC9B,iBAAA,CAAC;YACJ;YACA;QACF;AAEA,QAAA,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5C,MAAM,CAAC,IAAI,CAAC;gBACV,CAAC,EAAE,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;gBACrC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;gBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC;QACJ;IACF;AAEA,IAAA,OAAO,MAAM;AACf;AAEA;;;;AAIG;AACG,SAAU,kBAAkB,CAAC,UAAqC,EAAA;AACtE,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B;AAClD,IAAA,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;QAC1B,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;AAAE,YAAA,SAAS;QAC5C,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5B,IAAI,GAAG,KAAK,SAAS;AAAE,YAAA,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE;AACrD,QAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACb;IAEA,MAAM,MAAM,GAAoB,EAAE;IAElC,KAAK,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,MAAM,EAAE;AAChD,QAAA,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM;QAC/B,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;;AAE1B,YAAA,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAE;AAC5B,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACf,YAAA,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC;AACnB,YAAA,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC;YAErB,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrB,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,YAAA,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;YAC/B,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,YAAA,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;AAC/B,YAAA,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM;YAChC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,YAAA,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM;YAEhC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM;YACrB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;YACpB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO;YACtB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;YACpB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO;YACtB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ;YACvB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM;YACrB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ;AAEvB,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK;YAC5B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;YAChC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AAChC,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK;YAC5B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;YAChC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;QAClC;AAEA,QAAA,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAClE;AAEA,IAAA,OAAO,MAAM;AACf;AAEA;AAEA,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAmC,EAAA;IACzE,IAAI,IAAI,KAAK,KAAK;AAAE,QAAA,OAAO,IAAI;AAC/B,IAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;IAC9D;;AAEA,IAAA,OAAO;SACJ,KAAK,CAAC,IAAI;AACV,SAAA,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;SAC3C,IAAI,CAAC,IAAI,CAAC;AACf;AAEA,SAAS,SAAS,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAuB,EAAE,QAAgB,EAAE,aAAqB,EAAE,UAAmB,EAAA;AACtI,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IAC7B,MAAM,KAAK,GAAa,EAAE;IAC1B,IAAI,OAAO,GAAG,EAAE;IAChB,IAAI,YAAY,GAAG,CAAC;AACpB,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,OAAO,GAAG,aAAa;AAEzE,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,SAAS,GAAG,CAAC;AACjB,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACvB,YAAA,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,GAAG,aAAa;QACxE;QACA,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;AAElD,QAAA,IAAI,UAAU,IAAI,SAAS,GAAG,QAAQ,EAAE;AACtC,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,gBAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnB,OAAO,GAAG,EAAE;gBACZ,YAAY,GAAG,CAAC;YAClB;YACA,IAAI,QAAQ,GAAG,EAAE;YACjB,IAAI,aAAa,GAAG,CAAC;AACrB,YAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACvB,gBAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,GAAG,aAAa;AACpE,gBAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,GAAG,EAAE,GAAG,QAAQ,EAAE;AACxD,oBAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACpB,QAAQ,GAAG,IAAI;oBACf,aAAa,GAAG,EAAE;gBACpB;qBAAO;oBACL,QAAQ,IAAI,IAAI;oBAChB,aAAa,IAAI,EAAE;gBACrB;YACF;AACA,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,OAAO,GAAG,QAAQ;gBAClB,YAAY,GAAG,aAAa;YAC9B;QACF;AAAO,aAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,GAAG,IAAI;YACd,YAAY,GAAG,SAAS;QAC1B;aAAO;AACL,YAAA,MAAM,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS;AACrD,YAAA,IAAI,SAAS,IAAI,QAAQ,EAAE;AACzB,gBAAA,OAAO,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE;gBACrB,YAAY,GAAG,SAAS;YAC1B;iBAAO;AACL,gBAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnB,OAAO,GAAG,IAAI;gBACd,YAAY,GAAG,SAAS;YAC1B;QACF;IACF;AAEA,IAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AACnB,IAAA,OAAO,KAAK;AACd;;;;"}
@@ -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":"AAAA;;;AAGG;IACS;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACV,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACV;;;;;;;;;;AAUG;AACH,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACV,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACb,CAAC,EAnBW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;AAqBtB;;;;AAIG;IACS;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,IAAA,CAAA,GAAA,SAAgB;AAChB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,IAAA,CAAA,GAAA,QAAe;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,sBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,sBAA6B;AAC7B,IAAA,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,qBAA4B;AAC5B,IAAA,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,qBAA4B;AAC5B,IAAA,UAAA,CAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,oBAA2B;AAC7B,CAAC,EAPW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;AAStB;;;AAGG;IACS;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAe;AACf,IAAA,SAAA,CAAA,SAAA,CAAA,aAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAoB;AACpB,IAAA,SAAA,CAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,gBAAuB;AACzB,CAAC,EAJW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AAMrB;;;AAGG;IACS;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAe;AACf,IAAA,mBAAA,CAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAc;AACd,IAAA,mBAAA,CAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAiB;AACjB,IAAA,mBAAA,CAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAkB;AAClB,IAAA,mBAAA,CAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAkB;AAClB,IAAA,mBAAA,CAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAsB;AACtB,IAAA,mBAAA,CAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAoB;AACtB,CAAC,EARW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;AAU/B;;;AAGG;IACS;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAoB;AACpB,IAAA,WAAA,CAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,oBAA2B;AAC3B,IAAA,WAAA,CAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,gBAAuB;AACvB,IAAA,WAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAwB;AACxB,IAAA,WAAA,CAAA,WAAA,CAAA,yBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,yBAAgC;AAChC,IAAA,WAAA,CAAA,WAAA,CAAA,eAAA,CAAA,GAAA,KAAA,CAAA,GAAA,eAAsB;AACtB,IAAA,WAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAwB;AACxB,IAAA,WAAA,CAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,mBAA0B;AAC5B,CAAC,EATW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;AAWvB;;;AAGG;IACS;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAmB;AACnB,IAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAmB;AACnB,IAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAmB;AACnB,IAAA,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAoB;AACpB,IAAA,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAoB;AACpB,IAAA,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAoB;AACpB,IAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAmB;AACnB,IAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAmB;AACnB,IAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAmB;AACrB,CAAC,EAVW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;AAYvB;;;AAGG;AACH;IACY;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,IAAA,CAAA,GAAA,KAAY;AACZ,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAgB;AAChB,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAgB;AAChB,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAgB;AAEhB,IAAA,gBAAA,CAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,IAAA,CAAA,GAAA,aAAoB;AACpB,IAAA,gBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAwB;AACxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAwB;AACxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAwB;AAExB,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,IAAA,CAAA,GAAA,OAAc;AACd,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAkB;AAClB,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAkB;AAClB,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAkB;AAElB,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAa;AACb,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAiB;AACjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAiB;AACjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAiB;AAEjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAkB;AAClB,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAkB;AAClB,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAkB;AAElB,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAkB;AACpB,CAAC,EA1BW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;;;;"}
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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"}