@lightningjs/renderer 3.0.0-beta22 → 3.0.0-beta23

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 (166) hide show
  1. package/README.md +93 -0
  2. package/dist/exports/platform.d.ts +7 -0
  3. package/dist/exports/platform.js +27 -0
  4. package/dist/exports/platform.js.map +1 -0
  5. package/dist/src/core/AutosizeManager.d.ts +29 -0
  6. package/dist/src/core/AutosizeManager.js +169 -0
  7. package/dist/src/core/AutosizeManager.js.map +1 -0
  8. package/dist/src/core/CoreNode.js +10 -14
  9. package/dist/src/core/CoreNode.js.map +1 -1
  10. package/dist/src/core/CoreTextureManager.d.ts +0 -13
  11. package/dist/src/core/CoreTextureManager.js +4 -78
  12. package/dist/src/core/CoreTextureManager.js.map +1 -1
  13. package/dist/src/core/Stage.js +2 -12
  14. package/dist/src/core/Stage.js.map +1 -1
  15. package/dist/src/core/animations/Animation.d.ts +21 -0
  16. package/dist/src/core/animations/Animation.js +194 -0
  17. package/dist/src/core/animations/Animation.js.map +1 -0
  18. package/dist/src/core/animations/CoreAnimationController.d.ts +1 -1
  19. package/dist/src/core/animations/CoreAnimationController.js +4 -2
  20. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  21. package/dist/src/core/animations/Playback.d.ts +64 -0
  22. package/dist/src/core/animations/Playback.js +169 -0
  23. package/dist/src/core/animations/Playback.js.map +1 -0
  24. package/dist/src/core/animations/Transition.d.ts +27 -0
  25. package/dist/src/core/animations/Transition.js +52 -0
  26. package/dist/src/core/animations/Transition.js.map +1 -0
  27. package/dist/src/core/animations/utils.d.ts +2 -0
  28. package/dist/src/core/animations/utils.js +136 -0
  29. package/dist/src/core/animations/utils.js.map +1 -0
  30. package/dist/src/core/lib/collectionUtils.js +3 -2
  31. package/dist/src/core/lib/collectionUtils.js.map +1 -1
  32. package/dist/src/core/lib/utils.d.ts +0 -5
  33. package/dist/src/core/lib/utils.js +0 -63
  34. package/dist/src/core/lib/utils.js.map +1 -1
  35. package/dist/src/core/platforms/GlContextWrapper.d.ts +136 -0
  36. package/dist/src/core/platforms/GlContextWrapper.js +32 -0
  37. package/dist/src/core/platforms/GlContextWrapper.js.map +1 -0
  38. package/dist/src/core/platforms/Platform.d.ts +74 -13
  39. package/dist/src/core/platforms/Platform.js +18 -0
  40. package/dist/src/core/platforms/Platform.js.map +1 -1
  41. package/dist/src/core/platforms/web/WebGlContextWrapper.d.ts +776 -0
  42. package/dist/src/core/platforms/web/WebGlContextWrapper.js +1208 -0
  43. package/dist/src/core/platforms/web/WebGlContextWrapper.js.map +1 -0
  44. package/dist/src/core/platforms/web/WebPlatform.d.ts +13 -2
  45. package/dist/src/core/platforms/web/WebPlatform.js +109 -8
  46. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
  47. package/dist/src/core/platforms/web/WebPlatformChrome50.d.ts +17 -0
  48. package/dist/src/core/platforms/web/WebPlatformChrome50.js +50 -0
  49. package/dist/src/core/platforms/web/WebPlatformChrome50.js.map +1 -0
  50. package/dist/src/core/platforms/web/WebPlatformLegacy.d.ts +18 -0
  51. package/dist/src/core/platforms/web/WebPlatformLegacy.js +99 -0
  52. package/dist/src/core/platforms/web/WebPlatformLegacy.js.map +1 -0
  53. package/dist/src/core/platforms/web/WebPlatformNext.d.ts +21 -0
  54. package/dist/src/core/platforms/web/WebPlatformNext.js +52 -0
  55. package/dist/src/core/platforms/web/WebPlatformNext.js.map +1 -0
  56. package/dist/src/core/platforms/web/lib/ImageWorker.d.ts +15 -0
  57. package/dist/src/core/platforms/web/lib/ImageWorker.js +189 -0
  58. package/dist/src/core/platforms/web/lib/ImageWorker.js.map +1 -0
  59. package/dist/src/core/platforms/web/lib/createImageBitmap.d.ts +1 -0
  60. package/dist/src/core/platforms/web/lib/createImageBitmap.js +27 -0
  61. package/dist/src/core/platforms/web/lib/createImageBitmap.js.map +1 -0
  62. package/dist/src/core/platforms/web/lib/textureCompression.d.ts +26 -0
  63. package/dist/src/core/platforms/web/lib/textureCompression.js +301 -0
  64. package/dist/src/core/platforms/web/lib/textureCompression.js.map +1 -0
  65. package/dist/src/core/platforms/web/lib/textureSvg.d.ts +7 -0
  66. package/dist/src/core/platforms/web/lib/textureSvg.js +51 -0
  67. package/dist/src/core/platforms/web/lib/textureSvg.js.map +1 -0
  68. package/dist/src/core/platforms/web/lib/utils.d.ts +5 -0
  69. package/dist/src/core/platforms/web/lib/utils.js +86 -0
  70. package/dist/src/core/platforms/web/lib/utils.js.map +1 -0
  71. package/dist/src/core/renderers/CoreRenderer.d.ts +1 -9
  72. package/dist/src/core/renderers/CoreRenderer.js +2 -4
  73. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  74. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +3 -2
  75. package/dist/src/core/renderers/canvas/CanvasRenderer.js +4 -3
  76. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  77. package/dist/src/core/renderers/webgl/SdfRenderOp.js +3 -2
  78. package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -1
  79. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +2 -2
  80. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  81. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +2 -2
  82. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
  83. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +3 -3
  84. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +1 -2
  85. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  86. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +5 -5
  87. package/dist/src/core/renderers/webgl/WebGlRenderer.js +7 -8
  88. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  89. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -2
  90. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +2 -2
  91. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  92. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +4 -4
  93. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  94. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +3 -3
  95. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  96. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +24 -8
  97. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  98. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +25 -8
  99. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  100. package/dist/src/core/shaders/webgl/Border.js +6 -4
  101. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  102. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +6 -4
  103. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  104. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +6 -4
  105. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  106. package/dist/src/core/shaders/webgl/SdfShadowShader.d.ts +9 -0
  107. package/dist/src/core/shaders/webgl/SdfShadowShader.js +100 -0
  108. package/dist/src/core/shaders/webgl/SdfShadowShader.js.map +1 -0
  109. package/dist/src/core/text-rendering/CanvasFont.d.ts +1 -1
  110. package/dist/src/core/text-rendering/CanvasFont.js +2 -6
  111. package/dist/src/core/text-rendering/CanvasFont.js.map +1 -1
  112. package/dist/src/core/text-rendering/CoreFont.d.ts +1 -1
  113. package/dist/src/core/text-rendering/CoreFont.js +1 -1
  114. package/dist/src/core/text-rendering/CoreFont.js.map +1 -1
  115. package/dist/src/core/text-rendering/FontManager.js +2 -1
  116. package/dist/src/core/text-rendering/FontManager.js.map +1 -1
  117. package/dist/src/core/textures/ImageTexture.d.ts +24 -11
  118. package/dist/src/core/textures/ImageTexture.js +32 -95
  119. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  120. package/dist/src/core/textures/Texture.d.ts +1 -1
  121. package/dist/src/main-api/Renderer.js +18 -21
  122. package/dist/src/main-api/Renderer.js.map +1 -1
  123. package/dist/src/utils.d.ts +0 -2
  124. package/dist/src/utils.js +0 -36
  125. package/dist/src/utils.js.map +1 -1
  126. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  127. package/dist/tsconfig.tsbuildinfo +1 -0
  128. package/exports/platform.ts +31 -0
  129. package/package.json +3 -2
  130. package/src/core/CoreNode.ts +11 -15
  131. package/src/core/CoreTextureManager.ts +10 -103
  132. package/src/core/Stage.ts +1 -14
  133. package/src/core/animations/CoreAnimationController.ts +5 -2
  134. package/src/core/lib/collectionUtils.ts +3 -2
  135. package/src/core/lib/utils.ts +0 -78
  136. package/src/core/platforms/GlContextWrapper.ts +291 -0
  137. package/src/core/platforms/Platform.ts +121 -28
  138. package/src/core/{lib → platforms/web}/WebGlContextWrapper.ts +129 -4
  139. package/src/core/platforms/web/WebPlatform.ts +171 -22
  140. package/src/core/platforms/web/WebPlatformChrome50.ts +57 -0
  141. package/src/core/platforms/web/WebPlatformLegacy.ts +140 -0
  142. package/src/core/platforms/web/WebPlatformNext.ts +57 -0
  143. package/src/core/{lib → platforms/web/lib}/ImageWorker.ts +10 -74
  144. package/src/core/platforms/web/lib/createImageBitmap.ts +40 -0
  145. package/src/core/{lib → platforms/web/lib}/textureCompression.ts +19 -138
  146. package/src/core/{lib → platforms/web/lib}/textureSvg.ts +3 -15
  147. package/src/core/platforms/web/lib/utils.ts +105 -0
  148. package/src/core/renderers/CoreRenderer.ts +2 -11
  149. package/src/core/renderers/canvas/CanvasRenderer.ts +6 -4
  150. package/src/core/renderers/webgl/SdfRenderOp.ts +3 -2
  151. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +2 -2
  152. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +2 -2
  153. package/src/core/renderers/webgl/WebGlCtxTexture.ts +3 -4
  154. package/src/core/renderers/webgl/WebGlRenderer.ts +12 -19
  155. package/src/core/renderers/webgl/WebGlShaderNode.ts +2 -2
  156. package/src/core/renderers/webgl/WebGlShaderProgram.ts +2 -2
  157. package/src/core/renderers/webgl/internal/RendererUtils.ts +4 -8
  158. package/src/core/renderers/webgl/internal/ShaderUtils.ts +3 -3
  159. package/src/core/shaders/webgl/Border.ts +6 -4
  160. package/src/core/shaders/webgl/RoundedWithBorder.ts +6 -4
  161. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +6 -4
  162. package/src/core/textures/ImageTexture.ts +42 -161
  163. package/src/core/textures/Texture.ts +1 -1
  164. package/src/main-api/Renderer.ts +24 -22
  165. package/src/utils.ts +0 -47
  166. package/src/core/lib/validateImageBitmap.ts +0 -87
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGlContextWrapper.js","sourceRoot":"","sources":["../../../../../src/core/platforms/web/WebGlContextWrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAWH,OAAO,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB;IAmEnC;IAlEpB,4BAA4B;IACpB,iBAAiB,GAAG,CAAC,CAAC;IACtB,cAAc,CAA6B;IAC3C,eAAe,GAGnB,IAAI,OAAO,EAAE,CAAC;IACV,cAAc,CAAC;IACf,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,YAAY,CAAS;IACrB,aAAa,CAAS;IACtB,YAAY,CAAC;IACb,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,aAAa,CAAS;IACtB,aAAa,CAAS;IACtB,gBAAgB,CAAqB;IACrC,uBAAuB,CAAqB;IAC5C,UAAU,CAAsB;IAChC,mBAAmB,GAAyC,EAAE,CAAC;IACvE,+BAA+B;IAE/B,gBAAgB;IACA,MAAM,CAAC;IACvB,mBAAmB;IAEnB,qBAAqB;IACL,qBAAqB,CAAC;IACtB,gBAAgB,CAAC;IACjB,iBAAiB,CAAC;IAClB,8BAA8B,CAAC;IAC/B,uBAAuB,CAAC;IACxB,gCAAgC,CAAC;IACjC,kBAAkB,CAAC;IACnB,mBAAmB,CAAC;IACpB,0BAA0B,CAAC;IAC3B,4BAA4B,CAAC;IAC7B,kBAAkB,CAAC;IACnB,kBAAkB,CAAC;IACnB,cAAc,CAAC;IACf,cAAc,CAAC;IACf,MAAM,CAAC;IACP,oBAAoB,CAAC;IACrB,aAAa,CAAC;IACd,GAAG,CAAC;IACJ,IAAI,CAAC;IACL,aAAa,CAAC;IACd,8BAA8B,CAAC;IAC/B,mBAAmB,CAAC;IACpB,KAAK,CAAC;IACN,SAAS,CAAC;IACV,cAAc,CAAC;IACf,GAAG,CAAC;IACJ,mBAAmB,CAAC;IACpB,aAAa,CAAC;IACd,eAAe,CAAC;IAChB,WAAW,CAAC;IACZ,cAAc,CAAC;IACf,WAAW,CAAC;IACZ,YAAY,CAAC;IACb,iBAAiB,CAAC;IAClB,YAAY,CAAS;IACrB,iBAAiB,CAAS;IAC1C,wBAAwB;IAExB,YAAoB,EAAkD;QACpE,KAAK,EAAE,CAAC;QADU,OAAE,GAAF,EAAE,CAAgD;QAEpE,qEAAqE;QACrE,kEAAkE;QAClE,gDAAgD;QAChD,oEAAoE;QACpE,wEAAwE;QACxE,gCAAgC;QAChC,IAAI,CAAC,iBAAiB;YACnB,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,cAAc,CAAY,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC/D,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CACrC,EAAE,CAAC,uBAAuB,CACjB,CAAC;QACZ,6BAA6B;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,KAAK,CAAY,eAAe,CAAC;aACxD,IAAI,CAAC,SAAS,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACZ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,kBAAkB,CAAiB,CAAC;QAChE,CAAC,CAAC,CAAC;QACL,8BAA8B;QAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QAEpD,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAKhD,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAEnC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,aAAa,CAAW,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,aAAa,CAAW,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,eAAe,CAAW,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,eAAe,CAAW,CAAC;QAEnE,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,YAAY,CACrC,EAAE,CAAC,oBAAoB,CACT,CAAC;QACjB,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,YAAY,CAC5C,EAAE,CAAC,4BAA4B,CACjB,CAAC;QAEjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,YAAY,CAC/B,EAAE,CAAC,eAAe,CACI,CAAC;QAEzB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QAExB,kBAAkB;QAClB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,qBAAqB,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,CAAC;QAC9C,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC,8BAA8B,CAAC;QACxE,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,uBAAuB,CAAC;QAC1D,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,gCAAgC,CAAC;QAC5E,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,kBAAkB,CAAC;QAChD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,mBAAmB,CAAC;QAClD,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,0BAA0B,CAAC;QAChE,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC,4BAA4B,CAAC;QACpE,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,kBAAkB,CAAC;QAChD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,kBAAkB,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,oBAAoB,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;QACtC,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC,8BAA8B,CAAC;QACxE,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,mBAAmB,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;QACxC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;QAClB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,mBAAmB,CAAC;QAClD,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC,8BAA8B,CAAC;QACxE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,eAAe,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,CAAC;IAChD,CAAC;IACD;;;;OAIG;IACH,QAAQ;QACN,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;;;;OASG;IACH,aAAa,CAAC,WAAmB;QAC/B,IAAI,IAAI,CAAC,iBAAiB,KAAK,WAAW,EAAE,CAAC;YAC3C,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,OAA4B;QACtC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,OAAO,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;QAEtD,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAE,CAAC;IACtD,CAAC;IAED;;;;;;;;;;OAUG;IACH,aAAa,CAAC,KAAa,EAAE,KAAa;QACxC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IA6CD,UAAU,CACR,KAAU,EACV,cAAmB,EACnB,aAAkB,EAClB,YAAiB,EACjB,cAAmB,EACnB,MAAY,EACZ,IAAU,EACV,MAAY;QAEZ,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,UAAU,CAChB,IAAI,CAAC,EAAE,CAAC,UAAU,EAClB,KAAK,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,MAAM,EACN,IAAI,EACJ,MAAM,CACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,CAAC,UAAU,CAChB,IAAI,CAAC,EAAE,CAAC,UAAU,EAClB,KAAK,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,CACf,CAAC;QACJ,CAAC;IACH,CAAC;IACD;;;;;;;OAOG;IAEH,oBAAoB,CAClB,KAAY,EACZ,cAAsB,EACtB,KAAc,EACd,MAAe,EACf,MAAa,EACb,IAAsB;QAEtB,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,EAClB,KAAK,EACL,cAAc,EACd,KAAK,EACL,MAAM,EACN,MAAM,EACN,IAAuB,CACxB,CAAC;IACJ,CAAC;IACD;;;;;;;OAOG;IACH,WAAW,CAAC,KAAa,EAAE,KAAwB;QACjD,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,cAAc;QACZ,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,OAA4B;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,WAAoC;QACpD,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,CAAQ,EAAE,CAAQ,EAAE,KAAc,EAAE,MAAe;QAC1D,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU,CAAC,GAAa,EAAE,KAAe,EAAE,IAAc,EAAE,KAAe;QACxE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,MAAe;QAC5B,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;IAC/B,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,CAAQ,EAAE,CAAQ,EAAE,KAAc,EAAE,MAAe;QACzD,IACE,CAAC,KAAK,IAAI,CAAC,QAAQ;YACnB,CAAC,KAAK,IAAI,CAAC,QAAQ;YACnB,KAAK,KAAK,IAAI,CAAC,YAAY;YAC3B,MAAM,KAAK,IAAI,CAAC,aAAa,EAC7B,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAc;QACrB,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,GAAW,EAAE,GAAW;QAChC,IACE,GAAG,KAAK,IAAI,CAAC,WAAW;YACxB,GAAG,KAAK,IAAI,CAAC,WAAW;YACxB,GAAG,KAAK,IAAI,CAAC,aAAa;YAC1B,GAAG,KAAK,IAAI,CAAC,aAAa,EAC1B,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,WAAoC;QAClD,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;OAMG;IAEH,oBAAoB,CAClB,UAAkB,EAClB,OAA4B,EAC5B,KAAY;QAEZ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,EAAE,CAAC,oBAAoB,CACrB,EAAE,CAAC,WAAW,EACd,UAAU,EACV,EAAE,CAAC,UAAU,EACb,OAAO,EACP,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,eAAe,CACb,MAA0B,EAC1B,IAAqB,EACrB,KAAa;QAEb,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,sBAAsB,CACpB,MAA0B,EAC1B,IAAqB,EACrB,KAAa;QAEb,IAAI,IAAI,CAAC,uBAAuB,KAAK,MAAM,EAAE,CAAC;YAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CACjB,MAAmB,EACnB,KAAa,EACb,IAAW,EACX,IAAY,EACZ,UAAqB,EACrB,MAAe,EACf,MAAgB;QAEhB,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CACjB,OAAqB;QAErB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,EAAE,CAAC,mBAAmB,CACnC,OAAO,EACP,EAAE,CAAC,eAAe,CACT,CAAC;QACZ,MAAM,MAAM,GAAG,EAA0C,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAoB,CAAC;YAChE,2CAA2C;YAC3C,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAClC,OAAO,EACP,IAAI,CACmB,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,OAAqB;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,EAAE,CAAC,mBAAmB,CACnC,OAAO,EACP,EAAE,CAAC,iBAAiB,CACX,CAAC;QAEZ,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAoB,CAAC;YACnE,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACrD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CACR,OAA4B,EAC5B,gBAAsD;QAEtD,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAgB,EAAE,EAAU;QACpC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAmB;QAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAgB,EAAE,EAAU;QACpC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAiB;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,QAAgB,EAAE,EAAU,EAAE,EAAU;QAChD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAW;QACtC,IAAI,CAAC,EAAE,CAAC,SAAS,CACf,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAC1C,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,CACT,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAmB;QAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,QAAgB,EAAE,EAAU,EAAE,EAAU;QAChD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAiB;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,QAAgB,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QAC5D,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAW;QACtC,IAAI,CAAC,EAAE,CAAC,SAAS,CACf,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAC1C,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,CACT,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAmB;QAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,QAAgB,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QAC5D,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAiB;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAgB,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QACxE,IAAI,CAAC,EAAE,CAAC,SAAS,CACf,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAC1C,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,CACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAW;QACtC,IAAI,CAAC,EAAE,CAAC,SAAS,CACf,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAC1C,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,CACT,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAmB;QAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAgB,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QACxE,IAAI,CAAC,EAAE,CAAC,SAAS,CACf,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAC1C,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,CACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB,EAAE,KAAiB;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAgB,EAAE,KAAmB;QACpD,IAAI,CAAC,EAAE,CAAC,gBAAgB,CACtB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAC1C,KAAK,EACL,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,QAAgB,EAAE,KAAmB;QACpD,IAAI,CAAC,EAAE,CAAC,gBAAgB,CACtB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAC1C,KAAK,EACL,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,QAAgB,EAAE,KAAmB;QACpD,IAAI,CAAC,EAAE,CAAC,gBAAgB,CACtB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAC1C,KAAK,EACL,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;;OASG;IACH,YAAY,CAAC,IAAY,EAAE,KAAc,EAAE,IAAY,EAAE,MAAgB;QACvE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAY,EAAE,KAAY,EAAE,KAAc;QACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB;QACf,IAAI,IAAI,CAAC,EAAE,YAAY,sBAAsB,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,WAA0C;QACxD,IAAI,IAAI,CAAC,EAAE,YAAY,sBAAsB,EAAE,CAAC;YAC9C,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,iBAAiB,CAAC,OAAqB,EAAE,IAAY;QACnD,OAAO,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;OAQG;IACH,kBAAkB,CAAC,OAAqB,EAAE,IAAY;QACpD,OAAO,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,KAAa;QACnC,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,wBAAwB,CAAC,KAAa;QACpC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,MAAmB;QAC/B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,OAAqB,EAAE,MAAmB;QACrD,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,OAAqB;QAC/B,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,MAAoB;QAChC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,kBAAkB,CAAC,MAAmB,EAAE,KAAa;QACnD,OAAO,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,OAAqB,EAAE,KAAa;QACtD,OAAO,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAqB;QACrC,OAAO,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,MAAmB,EAAE,MAAc;QAC9C,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAmB;QAC9B,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAmB;QAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QACpB,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAExB,uDAAuD;QACvD,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CAAC,WAAmC;QACnD,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,EAA6B,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,UAAU,CACR,SAAiB;QAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,mBAAmB;YACnB,IAAI,SAAS,GAAG,eAAe,CAAC;YAChC,QAAQ,KAAK,EAAE,CAAC;gBACd,KAAK,IAAI,CAAC,YAAY;oBACpB,SAAS,GAAG,cAAc,CAAC;oBAC3B,MAAM;gBACR,KAAK,MAAM,EAAE,mBAAmB;oBAC9B,SAAS,GAAG,eAAe,CAAC;oBAC5B,MAAM;gBACR,KAAK,IAAI,CAAC,iBAAiB;oBACzB,SAAS,GAAG,mBAAmB,CAAC;oBAChC,MAAM;gBACR,KAAK,MAAM,EAAE,mBAAmB;oBAC9B,SAAS,GAAG,eAAe,CAAC;oBAC5B,MAAM;gBACR,KAAK,MAAM,EAAE,wBAAwB;oBACnC,SAAS,GAAG,oBAAoB,CAAC;oBACjC,MAAM;YACV,CAAC;YAED,MAAM,OAAO,GAAG,SAAS,SAAS,OAAO,KAAK,CAAC,QAAQ,CACrD,EAAE,CACH,YAAY,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,OAAqB,EAAE,IAAoB;QACnD,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1B,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;QACnC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,IAAI,CAAC,GAAG,MAAM,CAAC;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,IAAI,GAAG,IAAI,UAAU,CAAC,OAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;YAExC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC;YAEzD,MAAM,aAAa,GACjB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC;gBAC1B,SAAS,CAAC,KAAK,CAAC;YAElB,IAAI,IAAI,CAAC,UAAU,GAAG,aAAa,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC7C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjB,IAAI,GAAG,MAAM,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAE1E,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACxB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,CAChB,IAAI,CAAC,kBAAkB,EACvB,OAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAC9D,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,OAAqB,EAAE,IAAoB;QACnD,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1B,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,IAAI,CAAC,GAAG,MAAM,CAAC;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,oBAAoB,CACvB,CAAC,EACD,gBAAgB,EAChB,CAAC,EACD,CAAC,EACD,CAAC,EACD,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAC5B,CAAC;YAEF,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACxB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,CAChB,IAAI,CAAC,kBAAkB,EACvB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAC7D,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,OAAqB,EAAE,IAAoB;QACpD,IAAI,IAAI,CAAC,YAAY,CAAC,+BAA+B,CAAC,KAAK,IAAI,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1B,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;QAEzC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,kDAAkD;QAClD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;CACF;AAoBD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAI,CAAM,EAAE,CAAM;IAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE,CAAC;YACxD,MAAM,GAAG,KAAK,CAAC;YACf,MAAM;QACR,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,MAAM,GAAG,KAAK,CAAC;YACf,MAAM;QACR,CAAC;QAED,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,10 +1,21 @@
1
- import { Platform } from '../Platform.js';
1
+ import { Platform, type PlatformSettings } from '../Platform.js';
2
2
  import type { Stage } from '../../Stage.js';
3
+ import type { ImageResponse } from '../../textures/ImageTexture.js';
4
+ import type { GlContextWrapper } from '../GlContextWrapper.js';
3
5
  export declare class WebPlatform extends Platform {
6
+ private useImageWorker;
7
+ private imageWorkerManager;
8
+ private hasWorker;
9
+ constructor(settings?: PlatformSettings);
4
10
  createCanvas(): HTMLCanvasElement;
11
+ createContext(): GlContextWrapper;
5
12
  getElementById(id: string): HTMLElement | null;
6
13
  startLoop(stage: Stage): void;
7
- createImageBitmap(blob: ImageBitmapSource, sxOrOptions?: number | ImageBitmapOptions, sy?: number, sw?: number, sh?: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
14
+ fetch(url: string): Promise<Blob>;
15
+ createImage(blob: Blob, premultiplyAlpha: boolean | null, sx: number | null, sy: number | null, sw: number | null, sh: number | null): Promise<ImageResponse>;
16
+ loadImage(src: string, premultiplyAlpha: boolean | null, sx?: number | null, sy?: number | null, sw?: number | null, sh?: number | null): Promise<ImageResponse>;
17
+ loadSvg(src: string, width: number | null, height: number | null, sx?: number | null, sy?: number | null, sw?: number | null, sh?: number | null): Promise<ImageResponse>;
18
+ loadCompressedTexture(src: string): Promise<ImageResponse>;
8
19
  getTimeStamp(): number;
9
20
  addFont(font: FontFace): void;
10
21
  }
@@ -1,11 +1,49 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2026 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
1
19
  import { Platform } from '../Platform.js';
20
+ import { ImageWorkerManager } from './lib/ImageWorker.js';
21
+ import { dataURIToBlob, isBase64Image, convertUrlToAbsolute, createWebGLContext, } from './lib/utils.js';
22
+ import { loadSvg } from './lib/textureSvg.js';
23
+ import { loadCompressedTexture } from './lib/textureCompression.js';
24
+ import { WebGlContextWrapper } from './WebGlContextWrapper.js';
2
25
  export class WebPlatform extends Platform {
26
+ useImageWorker;
27
+ imageWorkerManager = null;
28
+ hasWorker = !!self.Worker;
29
+ constructor(settings = {}) {
30
+ super(settings);
31
+ const numImageWorkers = settings.numImageWorkers ?? 0;
32
+ this.useImageWorker = numImageWorkers > 0 && this.hasWorker;
33
+ if (this.useImageWorker === true) {
34
+ this.imageWorkerManager = new ImageWorkerManager(numImageWorkers);
35
+ }
36
+ }
3
37
  ////////////////////////
4
38
  // Platform-specific methods
5
39
  ////////////////////////
6
40
  createCanvas() {
7
- const canvas = document.createElement('canvas');
8
- return canvas;
41
+ return document.createElement('canvas');
42
+ }
43
+ createContext() {
44
+ const gl = createWebGLContext(this.canvas, this.settings.forceWebGL2);
45
+ this.glw = new WebGlContextWrapper(gl);
46
+ return this.glw;
9
47
  }
10
48
  getElementById(id) {
11
49
  return document.getElementById(id);
@@ -50,7 +88,10 @@ export class WebPlatform extends Platform {
50
88
  stage.flushFrameEvents();
51
89
  return;
52
90
  }
53
- isIdle = false;
91
+ if (isIdle === true) {
92
+ stage.eventBus.emit('active');
93
+ isIdle = false;
94
+ }
54
95
  stage.drawFrame();
55
96
  stage.flushFrameEvents();
56
97
  // Schedule next frame
@@ -67,16 +108,76 @@ export class WebPlatform extends Platform {
67
108
  requestAnimationFrame(runLoop);
68
109
  }
69
110
  ////////////////////////
70
- // ImageBitmap
111
+ // Image handling
71
112
  ////////////////////////
72
- createImageBitmap(blob, sxOrOptions, sy, sw, sh, options) {
73
- if (typeof sxOrOptions === 'number') {
74
- return createImageBitmap(blob, sxOrOptions, sy ?? 0, sw ?? 0, sh ?? 0, options);
113
+ fetch(url) {
114
+ return new Promise((resolve, reject) => {
115
+ const xhr = new XMLHttpRequest();
116
+ xhr.responseType = '';
117
+ xhr.onreadystatechange = function () {
118
+ if (xhr.readyState == XMLHttpRequest.DONE) {
119
+ // On most devices like WebOS and Tizen, the file protocol returns 0 while http(s) protocol returns 200
120
+ if (xhr.status === 0 || xhr.status === 200) {
121
+ resolve(xhr.response);
122
+ }
123
+ else {
124
+ reject(xhr.statusText);
125
+ }
126
+ }
127
+ };
128
+ xhr.open('GET', url, true);
129
+ xhr.send(null);
130
+ });
131
+ }
132
+ async createImage(blob, premultiplyAlpha, sx, sy, sw, sh) {
133
+ const hasAlphaChannel = premultiplyAlpha ?? blob.type.includes('image/png');
134
+ if (sw !== null && sh !== null) {
135
+ // createImageBitmap with crop
136
+ const bitmap = await createImageBitmap(blob, sx || 0, sy || 0, sw, sh, {
137
+ premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
138
+ colorSpaceConversion: 'none',
139
+ imageOrientation: 'none',
140
+ });
141
+ return { data: bitmap, premultiplyAlpha: hasAlphaChannel };
142
+ }
143
+ // default createImageBitmap without crop but with options
144
+ const bitmap = await createImageBitmap(blob, {
145
+ premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
146
+ colorSpaceConversion: 'none',
147
+ imageOrientation: 'none',
148
+ });
149
+ return { data: bitmap, premultiplyAlpha: hasAlphaChannel };
150
+ }
151
+ async loadImage(src, premultiplyAlpha, sx, sy, sw, sh) {
152
+ const isBase64 = isBase64Image(src);
153
+ const absoluteSrc = convertUrlToAbsolute(src);
154
+ const x = sx ?? null;
155
+ const y = sy ?? null;
156
+ const width = sw ?? null;
157
+ const height = sh ?? null;
158
+ // check if image worker is enabled
159
+ if (this.imageWorkerManager !== null && isBase64 === false) {
160
+ return this.imageWorkerManager.getImage(absoluteSrc, premultiplyAlpha, x, y, width, height);
161
+ }
162
+ // fallback to main thread loading
163
+ let blob;
164
+ if (isBase64Image(src) === true) {
165
+ blob = dataURIToBlob(src);
75
166
  }
76
167
  else {
77
- return createImageBitmap(blob, sxOrOptions);
168
+ blob = await this.fetch(absoluteSrc);
78
169
  }
170
+ return this.createImage(blob, premultiplyAlpha, x, y, width, height);
171
+ }
172
+ async loadSvg(src, width, height, sx, sy, sw, sh) {
173
+ return loadSvg(convertUrlToAbsolute(src), width, height, sx ?? null, sy ?? null, sw ?? null, sh ?? null);
79
174
  }
175
+ async loadCompressedTexture(src) {
176
+ return loadCompressedTexture(convertUrlToAbsolute(src));
177
+ }
178
+ ////////////////////////
179
+ // Utilities
180
+ ////////////////////////
80
181
  getTimeStamp() {
81
182
  return performance ? performance.now() : Date.now();
82
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebPlatform.js","sourceRoot":"","sources":["../../../../../src/core/platforms/web/WebPlatform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebPlatform.js","sourceRoot":"","sources":["../../../../../src/core/platforms/web/WebPlatform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { WebPlatform } from './WebPlatform.js';
2
+ import type { ImageResponse } from '../../textures/ImageTexture.js';
3
+ /**
4
+ * Chrome 50 Web Platform implementation with limited createImageBitmap support
5
+ *
6
+ * @remarks
7
+ * This platform is designed for Chrome 50 and similar browsers that support
8
+ * createImageBitmap but with a limited signature (no options or cropping parameters).
9
+ *
10
+ * Limitations:
11
+ * - createImageBitmap is called without options (premultiplyAlpha, colorSpaceConversion, imageOrientation)
12
+ * - Image cropping (sx, sy, sw, sh parameters) is not supported
13
+ * - Image workers can still be used if enabled via settings
14
+ */
15
+ export declare class WebPlatformChrome50 extends WebPlatform {
16
+ createImage(blob: Blob, premultiplyAlpha: boolean | null, sx: number | null, sy: number | null, sw: number | null, sh: number | null): Promise<ImageResponse>;
17
+ }
@@ -0,0 +1,50 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2026 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { WebPlatform } from './WebPlatform.js';
20
+ /**
21
+ * Chrome 50 Web Platform implementation with limited createImageBitmap support
22
+ *
23
+ * @remarks
24
+ * This platform is designed for Chrome 50 and similar browsers that support
25
+ * createImageBitmap but with a limited signature (no options or cropping parameters).
26
+ *
27
+ * Limitations:
28
+ * - createImageBitmap is called without options (premultiplyAlpha, colorSpaceConversion, imageOrientation)
29
+ * - Image cropping (sx, sy, sw, sh parameters) is not supported
30
+ * - Image workers can still be used if enabled via settings
31
+ */
32
+ export class WebPlatformChrome50 extends WebPlatform {
33
+ async createImage(blob, premultiplyAlpha,
34
+ // Cropping parameters are not supported in Chrome 50
35
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
36
+ sx,
37
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
38
+ sy,
39
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
40
+ sw,
41
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
+ sh) {
43
+ const hasAlphaChannel = premultiplyAlpha ?? blob.type.includes('image/png');
44
+ // Chrome 50 createImageBitmap signature: createImageBitmap(blob)
45
+ // No options or cropping parameters supported
46
+ const bitmap = await createImageBitmap(blob);
47
+ return { data: bitmap, premultiplyAlpha: hasAlphaChannel };
48
+ }
49
+ }
50
+ //# sourceMappingURL=WebPlatformChrome50.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebPlatformChrome50.js","sourceRoot":"","sources":["../../../../../src/core/platforms/web/WebPlatformChrome50.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IACzC,KAAK,CAAC,WAAW,CACxB,IAAU,EACV,gBAAgC;IAChC,qDAAqD;IACrD,6DAA6D;IAC7D,EAAiB;IACjB,6DAA6D;IAC7D,EAAiB;IACjB,6DAA6D;IAC7D,EAAiB;IACjB,6DAA6D;IAC7D,EAAiB;QAEjB,MAAM,eAAe,GAAG,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE5E,iEAAiE;QACjE,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAC7D,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { WebPlatform } from './WebPlatform.js';
2
+ import type { PlatformSettings } from '../Platform.js';
3
+ import type { ImageResponse } from '../../textures/ImageTexture.js';
4
+ /**
5
+ * Legacy Web Platform implementation that uses Image() instead of createImageBitmap
6
+ *
7
+ * @remarks
8
+ * This platform is designed for environments that don't support createImageBitmap API,
9
+ * or for compatibility with older browsers. It uses the traditional HTMLImageElement
10
+ * approach for image loading.
11
+ *
12
+ */
13
+ export declare class WebPlatformLegacy extends WebPlatform {
14
+ constructor(settings?: PlatformSettings);
15
+ loadImage(src: string, premultiplyAlpha: boolean | null, sx?: number | null, sy?: number | null, sw?: number | null, sh?: number | null): Promise<ImageResponse>;
16
+ createImage(blob: Blob, premultiplyAlpha: boolean | null, sx: number | null, sy: number | null, sw: number | null, sh: number | null): Promise<ImageResponse>;
17
+ loadCompressedTexture(src: string): Promise<ImageResponse>;
18
+ }
@@ -0,0 +1,99 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2026 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { WebPlatform } from './WebPlatform.js';
20
+ import { isBase64Image, dataURIToBlob, convertUrlToAbsolute, } from './lib/utils.js';
21
+ /**
22
+ * Legacy Web Platform implementation that uses Image() instead of createImageBitmap
23
+ *
24
+ * @remarks
25
+ * This platform is designed for environments that don't support createImageBitmap API,
26
+ * or for compatibility with older browsers. It uses the traditional HTMLImageElement
27
+ * approach for image loading.
28
+ *
29
+ */
30
+ export class WebPlatformLegacy extends WebPlatform {
31
+ constructor(settings = {}) {
32
+ // Force image workers to be disabled in legacy mode
33
+ super({ ...settings, numImageWorkers: 0 });
34
+ }
35
+ async loadImage(src, premultiplyAlpha, sx, sy, sw, sh) {
36
+ const isBase64 = isBase64Image(src);
37
+ const absoluteSrc = convertUrlToAbsolute(src);
38
+ // For base64 images, use blob conversion
39
+ if (isBase64 === true) {
40
+ const blob = dataURIToBlob(src);
41
+ return this.createImage(blob, premultiplyAlpha, sx ?? null, sy ?? null, sw ?? null, sh ?? null);
42
+ }
43
+ // For regular URLs, load directly without blob conversion
44
+ const hasAlpha = premultiplyAlpha ?? absoluteSrc.toLowerCase().endsWith('.png');
45
+ const img = new Image();
46
+ img.crossOrigin = 'anonymous';
47
+ return new Promise((resolve, reject) => {
48
+ img.onload = () => {
49
+ resolve({ data: img, premultiplyAlpha: hasAlpha });
50
+ };
51
+ img.onerror = (err) => {
52
+ const errorMessage = err instanceof Error
53
+ ? err.message
54
+ : err instanceof Event
55
+ ? `Image loading failed for ${img.src}`
56
+ : 'Unknown image loading error';
57
+ reject(new Error(`Image loading failed: ${errorMessage}`));
58
+ };
59
+ img.src = absoluteSrc;
60
+ });
61
+ }
62
+ async createImage(blob, premultiplyAlpha,
63
+ // Cropping parameters are not supported in legacy mode
64
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
65
+ sx,
66
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
67
+ sy,
68
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
69
+ sw,
70
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
71
+ sh) {
72
+ const hasAlpha = premultiplyAlpha ?? blob.type.includes('image/png');
73
+ const src = URL.createObjectURL(blob);
74
+ const img = new Image();
75
+ if (typeof src === 'string' && isBase64Image(src) === false) {
76
+ img.crossOrigin = 'anonymous';
77
+ }
78
+ return new Promise((resolve, reject) => {
79
+ img.onload = () => {
80
+ URL.revokeObjectURL(src);
81
+ resolve({ data: img, premultiplyAlpha: hasAlpha });
82
+ };
83
+ img.onerror = (err) => {
84
+ URL.revokeObjectURL(src);
85
+ const errorMessage = err instanceof Error
86
+ ? err.message
87
+ : err instanceof Event
88
+ ? `Image loading failed for ${img.src}`
89
+ : 'Unknown image loading error';
90
+ reject(new Error(`Image loading failed: ${errorMessage}`));
91
+ };
92
+ img.src = src;
93
+ });
94
+ }
95
+ async loadCompressedTexture(src) {
96
+ throw new Error(`Compressed textures are not supported in legacy mode. Attempted to load: ${src}`);
97
+ }
98
+ }
99
+ //# sourceMappingURL=WebPlatformLegacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebPlatformLegacy.js","sourceRoot":"","sources":["../../../../../src/core/platforms/web/WebPlatformLegacy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { WebPlatform } from './WebPlatform.js';
2
+ /**
3
+ * Next-generation Web Platform implementation that uses Fetch API
4
+ *
5
+ * @remarks
6
+ * This platform uses the modern Fetch API instead of XMLHttpRequest for
7
+ * loading image resources. The Fetch API provides a more modern, promise-based
8
+ * interface for network requests and better streaming capabilities.
9
+ *
10
+ * Benefits over XMLHttpRequest:
11
+ * - Promise-based (no callback-based API)
12
+ * - Better error handling
13
+ * - More consistent across browsers
14
+ * - Better streaming support
15
+ * - Service Worker compatible
16
+ *
17
+ * All other platform features remain the same as WebPlatform.
18
+ */
19
+ export declare class WebPlatformNext extends WebPlatform {
20
+ fetch(url: string): Promise<Blob>;
21
+ }
@@ -0,0 +1,52 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2026 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { WebPlatform } from './WebPlatform.js';
20
+ /**
21
+ * Next-generation Web Platform implementation that uses Fetch API
22
+ *
23
+ * @remarks
24
+ * This platform uses the modern Fetch API instead of XMLHttpRequest for
25
+ * loading image resources. The Fetch API provides a more modern, promise-based
26
+ * interface for network requests and better streaming capabilities.
27
+ *
28
+ * Benefits over XMLHttpRequest:
29
+ * - Promise-based (no callback-based API)
30
+ * - Better error handling
31
+ * - More consistent across browsers
32
+ * - Better streaming support
33
+ * - Service Worker compatible
34
+ *
35
+ * All other platform features remain the same as WebPlatform.
36
+ */
37
+ export class WebPlatformNext extends WebPlatform {
38
+ async fetch(url) {
39
+ try {
40
+ const response = await fetch(url);
41
+ if (!response.ok) {
42
+ throw new Error(`Failed to fetch resource: ${response.status} ${response.statusText}`);
43
+ }
44
+ return await response.blob();
45
+ }
46
+ catch (error) {
47
+ const errorMessage = error instanceof Error ? error.message : 'Unknown fetch error';
48
+ throw new Error(`Fetch failed for ${url}: ${errorMessage}`);
49
+ }
50
+ }
51
+ }
52
+ //# sourceMappingURL=WebPlatformNext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebPlatformNext.js","sourceRoot":"","sources":["../../../../../src/core/platforms/web/WebPlatformNext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,eAAgB,SAAQ,WAAW;IACrC,KAAK,CAAC,KAAK,CAAC,GAAW;QAC9B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACtE,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,KAAK,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import type { ImageResponse } from '../../../textures/ImageTexture.js';
2
+ type MessageCallback = [(value: any) => void, (reason: any) => void];
3
+ export declare class ImageWorkerManager {
4
+ imageWorkersEnabled: boolean;
5
+ messageManager: Record<number, MessageCallback>;
6
+ workers: Worker[];
7
+ workerLoad: number[];
8
+ nextId: number;
9
+ constructor(numImageWorkers: number);
10
+ private handleMessage;
11
+ private createWorkers;
12
+ private getNextWorkerIndex;
13
+ getImage(src: string, premultiplyAlpha: boolean | null, sx: number | null, sy: number | null, sw: number | null, sh: number | null): Promise<ImageResponse>;
14
+ }
15
+ export {};