@blakron/core 0.2.4 → 0.3.3

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 (550) hide show
  1. package/README.md +3 -1
  2. package/dist/blakron/benchmark/BenchmarkRunner.d.ts +60 -0
  3. package/dist/blakron/benchmark/BenchmarkRunner.d.ts.map +1 -0
  4. package/dist/blakron/benchmark/BenchmarkRunner.js +112 -0
  5. package/dist/blakron/benchmark/BenchmarkRunner.js.map +1 -0
  6. package/dist/blakron/benchmark/MetricsCollector.d.ts +34 -0
  7. package/dist/blakron/benchmark/MetricsCollector.d.ts.map +1 -0
  8. package/dist/blakron/benchmark/MetricsCollector.js +123 -0
  9. package/dist/blakron/benchmark/MetricsCollector.js.map +1 -0
  10. package/dist/blakron/benchmark/PerfPanel.d.ts +24 -0
  11. package/dist/blakron/benchmark/PerfPanel.d.ts.map +1 -0
  12. package/dist/blakron/benchmark/PerfPanel.js +131 -0
  13. package/dist/blakron/benchmark/PerfPanel.js.map +1 -0
  14. package/dist/blakron/benchmark/ReportExporter.d.ts +8 -0
  15. package/dist/blakron/benchmark/ReportExporter.d.ts.map +1 -0
  16. package/dist/blakron/benchmark/ReportExporter.js +54 -0
  17. package/dist/blakron/benchmark/ReportExporter.js.map +1 -0
  18. package/dist/blakron/benchmark/SceneRegistry.d.ts +16 -0
  19. package/dist/blakron/benchmark/SceneRegistry.d.ts.map +1 -0
  20. package/dist/blakron/benchmark/SceneRegistry.js +233 -0
  21. package/dist/blakron/benchmark/SceneRegistry.js.map +1 -0
  22. package/dist/blakron/benchmark/types.d.ts +47 -0
  23. package/dist/blakron/benchmark/types.d.ts.map +1 -0
  24. package/dist/blakron/benchmark/types.js +2 -0
  25. package/dist/blakron/benchmark/types.js.map +1 -0
  26. package/dist/blakron/display/Bitmap.d.ts +53 -0
  27. package/dist/blakron/display/Bitmap.d.ts.map +1 -0
  28. package/dist/blakron/display/Bitmap.js +176 -0
  29. package/dist/blakron/display/Bitmap.js.map +1 -0
  30. package/dist/blakron/display/DisplayObject.d.ts +206 -0
  31. package/dist/blakron/display/DisplayObject.d.ts.map +1 -0
  32. package/dist/blakron/display/DisplayObject.js +827 -0
  33. package/dist/blakron/display/DisplayObject.js.map +1 -0
  34. package/dist/blakron/display/DisplayObjectContainer.d.ts +58 -0
  35. package/dist/blakron/display/DisplayObjectContainer.d.ts.map +1 -0
  36. package/dist/blakron/display/DisplayObjectContainer.js +348 -0
  37. package/dist/blakron/display/DisplayObjectContainer.js.map +1 -0
  38. package/dist/blakron/display/Graphics.d.ts +49 -0
  39. package/dist/blakron/display/Graphics.d.ts.map +1 -0
  40. package/dist/blakron/display/Graphics.js +315 -0
  41. package/dist/blakron/display/Graphics.js.map +1 -0
  42. package/dist/blakron/display/GraphicsPath.d.ts +112 -0
  43. package/dist/blakron/display/GraphicsPath.d.ts.map +1 -0
  44. package/dist/blakron/display/GraphicsPath.js +2 -0
  45. package/dist/blakron/display/GraphicsPath.js.map +1 -0
  46. package/dist/blakron/display/Mesh.d.ts +21 -0
  47. package/dist/blakron/display/Mesh.d.ts.map +1 -0
  48. package/dist/blakron/display/Mesh.js +56 -0
  49. package/dist/blakron/display/Mesh.js.map +1 -0
  50. package/dist/blakron/display/Shape.d.ts +12 -0
  51. package/dist/blakron/display/Shape.d.ts.map +1 -0
  52. package/dist/blakron/display/Shape.js +35 -0
  53. package/dist/blakron/display/Shape.js.map +1 -0
  54. package/dist/blakron/display/Sprite.d.ts +13 -0
  55. package/dist/blakron/display/Sprite.d.ts.map +1 -0
  56. package/dist/blakron/display/Sprite.js +37 -0
  57. package/dist/blakron/display/Sprite.js.map +1 -0
  58. package/dist/blakron/display/Stage.d.ts +45 -0
  59. package/dist/blakron/display/Stage.d.ts.map +1 -0
  60. package/dist/blakron/display/Stage.js +107 -0
  61. package/dist/blakron/display/Stage.js.map +1 -0
  62. package/dist/blakron/display/enums/BitmapFillMode.d.ts +7 -0
  63. package/dist/blakron/display/enums/BitmapFillMode.d.ts.map +1 -0
  64. package/dist/blakron/display/enums/BitmapFillMode.js +6 -0
  65. package/dist/blakron/display/enums/BitmapFillMode.js.map +1 -0
  66. package/dist/blakron/display/enums/BlendMode.d.ts +24 -0
  67. package/dist/blakron/display/enums/BlendMode.d.ts.map +1 -0
  68. package/dist/blakron/display/enums/BlendMode.js +31 -0
  69. package/dist/blakron/display/enums/BlendMode.js.map +1 -0
  70. package/dist/blakron/display/enums/CapsStyle.d.ts +7 -0
  71. package/dist/blakron/display/enums/CapsStyle.d.ts.map +1 -0
  72. package/dist/blakron/display/enums/CapsStyle.js +6 -0
  73. package/dist/blakron/display/enums/CapsStyle.js.map +1 -0
  74. package/dist/blakron/display/enums/GradientType.d.ts +6 -0
  75. package/dist/blakron/display/enums/GradientType.d.ts.map +1 -0
  76. package/dist/blakron/display/enums/GradientType.js +5 -0
  77. package/dist/blakron/display/enums/GradientType.js.map +1 -0
  78. package/dist/blakron/display/enums/JointStyle.d.ts +7 -0
  79. package/dist/blakron/display/enums/JointStyle.d.ts.map +1 -0
  80. package/dist/blakron/display/enums/JointStyle.js +6 -0
  81. package/dist/blakron/display/enums/JointStyle.js.map +1 -0
  82. package/dist/blakron/display/enums/OrientationMode.d.ts +8 -0
  83. package/dist/blakron/display/enums/OrientationMode.d.ts.map +1 -0
  84. package/dist/blakron/display/enums/OrientationMode.js +7 -0
  85. package/dist/blakron/display/enums/OrientationMode.js.map +1 -0
  86. package/dist/blakron/display/enums/StageScaleMode.d.ts +12 -0
  87. package/dist/blakron/display/enums/StageScaleMode.d.ts.map +1 -0
  88. package/dist/blakron/display/enums/StageScaleMode.js +11 -0
  89. package/dist/blakron/display/enums/StageScaleMode.js.map +1 -0
  90. package/dist/blakron/display/enums/index.d.ts +8 -0
  91. package/dist/blakron/display/enums/index.d.ts.map +1 -0
  92. package/dist/blakron/display/enums/index.js +8 -0
  93. package/dist/blakron/display/enums/index.js.map +1 -0
  94. package/dist/blakron/display/index.d.ts +21 -0
  95. package/dist/blakron/display/index.d.ts.map +1 -0
  96. package/dist/blakron/display/index.js +20 -0
  97. package/dist/blakron/display/index.js.map +1 -0
  98. package/dist/blakron/display/texture/BitmapData.d.ts +37 -0
  99. package/dist/blakron/display/texture/BitmapData.d.ts.map +1 -0
  100. package/dist/blakron/display/texture/BitmapData.js +144 -0
  101. package/dist/blakron/display/texture/BitmapData.js.map +1 -0
  102. package/dist/blakron/display/texture/RenderTexture.d.ts +13 -0
  103. package/dist/blakron/display/texture/RenderTexture.d.ts.map +1 -0
  104. package/dist/blakron/display/texture/RenderTexture.js +51 -0
  105. package/dist/blakron/display/texture/RenderTexture.js.map +1 -0
  106. package/dist/blakron/display/texture/SpriteSheet.d.ts +13 -0
  107. package/dist/blakron/display/texture/SpriteSheet.d.ts.map +1 -0
  108. package/dist/blakron/display/texture/SpriteSheet.js +34 -0
  109. package/dist/blakron/display/texture/SpriteSheet.js.map +1 -0
  110. package/dist/blakron/display/texture/Texture.d.ts +33 -0
  111. package/dist/blakron/display/texture/Texture.d.ts.map +1 -0
  112. package/dist/blakron/display/texture/Texture.js +77 -0
  113. package/dist/blakron/display/texture/Texture.js.map +1 -0
  114. package/dist/blakron/display/texture/index.d.ts +5 -0
  115. package/dist/blakron/display/texture/index.d.ts.map +1 -0
  116. package/dist/blakron/display/texture/index.js +5 -0
  117. package/dist/blakron/display/texture/index.js.map +1 -0
  118. package/dist/blakron/events/Event.d.ts +57 -0
  119. package/dist/blakron/events/Event.d.ts.map +1 -0
  120. package/dist/blakron/events/Event.js +139 -0
  121. package/dist/blakron/events/Event.js.map +1 -0
  122. package/dist/blakron/events/EventDispatcher.d.ts +23 -0
  123. package/dist/blakron/events/EventDispatcher.d.ts.map +1 -0
  124. package/dist/blakron/events/EventDispatcher.js +123 -0
  125. package/dist/blakron/events/EventDispatcher.js.map +1 -0
  126. package/dist/blakron/events/EventPhase.d.ts +6 -0
  127. package/dist/blakron/events/EventPhase.d.ts.map +1 -0
  128. package/dist/blakron/events/EventPhase.js +2 -0
  129. package/dist/blakron/events/EventPhase.js.map +1 -0
  130. package/dist/blakron/events/FocusEvent.d.ts +7 -0
  131. package/dist/blakron/events/FocusEvent.d.ts.map +1 -0
  132. package/dist/blakron/events/FocusEvent.js +11 -0
  133. package/dist/blakron/events/FocusEvent.js.map +1 -0
  134. package/dist/blakron/events/HTTPStatusEvent.d.ts +10 -0
  135. package/dist/blakron/events/HTTPStatusEvent.d.ts.map +1 -0
  136. package/dist/blakron/events/HTTPStatusEvent.js +24 -0
  137. package/dist/blakron/events/HTTPStatusEvent.js.map +1 -0
  138. package/dist/blakron/events/IEventDispatcher.d.ts +11 -0
  139. package/dist/blakron/events/IEventDispatcher.d.ts.map +1 -0
  140. package/dist/blakron/events/IEventDispatcher.js +2 -0
  141. package/dist/blakron/events/IEventDispatcher.js.map +1 -0
  142. package/dist/blakron/events/IOErrorEvent.d.ts +8 -0
  143. package/dist/blakron/events/IOErrorEvent.d.ts.map +1 -0
  144. package/dist/blakron/events/IOErrorEvent.js +17 -0
  145. package/dist/blakron/events/IOErrorEvent.js.map +1 -0
  146. package/dist/blakron/events/ProgressEvent.d.ts +11 -0
  147. package/dist/blakron/events/ProgressEvent.d.ts.map +1 -0
  148. package/dist/blakron/events/ProgressEvent.js +25 -0
  149. package/dist/blakron/events/ProgressEvent.js.map +1 -0
  150. package/dist/blakron/events/StageOrientationEvent.d.ts +8 -0
  151. package/dist/blakron/events/StageOrientationEvent.d.ts.map +1 -0
  152. package/dist/blakron/events/StageOrientationEvent.js +17 -0
  153. package/dist/blakron/events/StageOrientationEvent.js.map +1 -0
  154. package/dist/blakron/events/TextEvent.d.ts +9 -0
  155. package/dist/blakron/events/TextEvent.d.ts.map +1 -0
  156. package/dist/blakron/events/TextEvent.js +21 -0
  157. package/dist/blakron/events/TextEvent.js.map +1 -0
  158. package/dist/blakron/events/TimerEvent.d.ts +14 -0
  159. package/dist/blakron/events/TimerEvent.d.ts.map +1 -0
  160. package/dist/blakron/events/TimerEvent.js +27 -0
  161. package/dist/blakron/events/TimerEvent.js.map +1 -0
  162. package/dist/blakron/events/TouchEvent.d.ts +32 -0
  163. package/dist/blakron/events/TouchEvent.d.ts.map +1 -0
  164. package/dist/blakron/events/TouchEvent.js +85 -0
  165. package/dist/blakron/events/TouchEvent.js.map +1 -0
  166. package/dist/blakron/events/index.d.ts +13 -0
  167. package/dist/blakron/events/index.d.ts.map +1 -0
  168. package/dist/blakron/events/index.js +11 -0
  169. package/dist/blakron/events/index.js.map +1 -0
  170. package/dist/blakron/external/ExternalInterface.d.ts +18 -0
  171. package/dist/blakron/external/ExternalInterface.d.ts.map +1 -0
  172. package/dist/blakron/external/ExternalInterface.js +23 -0
  173. package/dist/blakron/external/ExternalInterface.js.map +1 -0
  174. package/dist/blakron/external/index.d.ts +2 -0
  175. package/dist/blakron/external/index.d.ts.map +1 -0
  176. package/dist/blakron/external/index.js +2 -0
  177. package/dist/blakron/external/index.js.map +1 -0
  178. package/dist/blakron/filters/BlurFilter.d.ts +16 -0
  179. package/dist/blakron/filters/BlurFilter.d.ts.map +1 -0
  180. package/dist/blakron/filters/BlurFilter.js +56 -0
  181. package/dist/blakron/filters/BlurFilter.js.map +1 -0
  182. package/dist/blakron/filters/ColorMatrixFilter.d.ts +10 -0
  183. package/dist/blakron/filters/ColorMatrixFilter.d.ts.map +1 -0
  184. package/dist/blakron/filters/ColorMatrixFilter.js +51 -0
  185. package/dist/blakron/filters/ColorMatrixFilter.js.map +1 -0
  186. package/dist/blakron/filters/CustomFilter.d.ts +12 -0
  187. package/dist/blakron/filters/CustomFilter.d.ts.map +1 -0
  188. package/dist/blakron/filters/CustomFilter.js +43 -0
  189. package/dist/blakron/filters/CustomFilter.js.map +1 -0
  190. package/dist/blakron/filters/DropShadowFilter.d.ts +16 -0
  191. package/dist/blakron/filters/DropShadowFilter.d.ts.map +1 -0
  192. package/dist/blakron/filters/DropShadowFilter.js +76 -0
  193. package/dist/blakron/filters/DropShadowFilter.js.map +1 -0
  194. package/dist/blakron/filters/Filter.d.ts +20 -0
  195. package/dist/blakron/filters/Filter.d.ts.map +1 -0
  196. package/dist/blakron/filters/Filter.js +27 -0
  197. package/dist/blakron/filters/Filter.js.map +1 -0
  198. package/dist/blakron/filters/GlowFilter.d.ts +34 -0
  199. package/dist/blakron/filters/GlowFilter.d.ts.map +1 -0
  200. package/dist/blakron/filters/GlowFilter.js +131 -0
  201. package/dist/blakron/filters/GlowFilter.js.map +1 -0
  202. package/dist/blakron/filters/index.d.ts +7 -0
  203. package/dist/blakron/filters/index.d.ts.map +1 -0
  204. package/dist/blakron/filters/index.js +7 -0
  205. package/dist/blakron/filters/index.js.map +1 -0
  206. package/dist/blakron/geom/Matrix.d.ts +51 -0
  207. package/dist/blakron/geom/Matrix.d.ts.map +1 -0
  208. package/dist/blakron/geom/Matrix.js +312 -0
  209. package/dist/blakron/geom/Matrix.js.map +1 -0
  210. package/dist/blakron/geom/Point.d.ts +24 -0
  211. package/dist/blakron/geom/Point.d.ts.map +1 -0
  212. package/dist/blakron/geom/Point.js +75 -0
  213. package/dist/blakron/geom/Point.js.map +1 -0
  214. package/dist/blakron/geom/Rectangle.d.ts +48 -0
  215. package/dist/blakron/geom/Rectangle.d.ts.map +1 -0
  216. package/dist/blakron/geom/Rectangle.js +176 -0
  217. package/dist/blakron/geom/Rectangle.js.map +1 -0
  218. package/dist/blakron/geom/index.d.ts +4 -0
  219. package/dist/blakron/geom/index.d.ts.map +1 -0
  220. package/dist/blakron/geom/index.js +4 -0
  221. package/dist/blakron/geom/index.js.map +1 -0
  222. package/dist/blakron/localStorage/index.d.ts +2 -0
  223. package/dist/blakron/localStorage/index.d.ts.map +1 -0
  224. package/dist/blakron/localStorage/index.js +2 -0
  225. package/dist/blakron/localStorage/index.js.map +1 -0
  226. package/dist/blakron/localStorage/localStorage.d.ts +5 -0
  227. package/dist/blakron/localStorage/localStorage.d.ts.map +1 -0
  228. package/dist/blakron/localStorage/localStorage.js +19 -0
  229. package/dist/blakron/localStorage/localStorage.js.map +1 -0
  230. package/dist/blakron/media/Sound.d.ts +26 -0
  231. package/dist/blakron/media/Sound.d.ts.map +1 -0
  232. package/dist/blakron/media/Sound.js +145 -0
  233. package/dist/blakron/media/Sound.js.map +1 -0
  234. package/dist/blakron/media/SoundChannel.d.ts +28 -0
  235. package/dist/blakron/media/SoundChannel.d.ts.map +1 -0
  236. package/dist/blakron/media/SoundChannel.js +117 -0
  237. package/dist/blakron/media/SoundChannel.js.map +1 -0
  238. package/dist/blakron/media/Video.d.ts +50 -0
  239. package/dist/blakron/media/Video.d.ts.map +1 -0
  240. package/dist/blakron/media/Video.js +249 -0
  241. package/dist/blakron/media/Video.js.map +1 -0
  242. package/dist/blakron/media/index.d.ts +4 -0
  243. package/dist/blakron/media/index.d.ts.map +1 -0
  244. package/dist/blakron/media/index.js +4 -0
  245. package/dist/blakron/media/index.js.map +1 -0
  246. package/dist/blakron/net/HttpMethod.d.ts +6 -0
  247. package/dist/blakron/net/HttpMethod.d.ts.map +1 -0
  248. package/dist/blakron/net/HttpMethod.js +5 -0
  249. package/dist/blakron/net/HttpMethod.js.map +1 -0
  250. package/dist/blakron/net/HttpRequest.d.ts +19 -0
  251. package/dist/blakron/net/HttpRequest.d.ts.map +1 -0
  252. package/dist/blakron/net/HttpRequest.js +63 -0
  253. package/dist/blakron/net/HttpRequest.js.map +1 -0
  254. package/dist/blakron/net/HttpResponseType.d.ts +6 -0
  255. package/dist/blakron/net/HttpResponseType.d.ts.map +1 -0
  256. package/dist/blakron/net/HttpResponseType.js +5 -0
  257. package/dist/blakron/net/HttpResponseType.js.map +1 -0
  258. package/dist/blakron/net/ImageLoader.d.ts +10 -0
  259. package/dist/blakron/net/ImageLoader.d.ts.map +1 -0
  260. package/dist/blakron/net/ImageLoader.js +32 -0
  261. package/dist/blakron/net/ImageLoader.js.map +1 -0
  262. package/dist/blakron/net/index.d.ts +7 -0
  263. package/dist/blakron/net/index.d.ts.map +1 -0
  264. package/dist/blakron/net/index.js +5 -0
  265. package/dist/blakron/net/index.js.map +1 -0
  266. package/dist/blakron/player/BlakronOptions.d.ts +25 -0
  267. package/dist/blakron/player/BlakronOptions.d.ts.map +1 -0
  268. package/dist/blakron/player/BlakronOptions.js +2 -0
  269. package/dist/blakron/player/BlakronOptions.js.map +1 -0
  270. package/dist/blakron/player/CanvasRenderer.d.ts +49 -0
  271. package/dist/blakron/player/CanvasRenderer.d.ts.map +1 -0
  272. package/dist/blakron/player/CanvasRenderer.js +767 -0
  273. package/dist/blakron/player/CanvasRenderer.js.map +1 -0
  274. package/dist/blakron/player/DisplayList.d.ts +32 -0
  275. package/dist/blakron/player/DisplayList.d.ts.map +1 -0
  276. package/dist/blakron/player/DisplayList.js +78 -0
  277. package/dist/blakron/player/DisplayList.js.map +1 -0
  278. package/dist/blakron/player/InstructionSet.d.ts +49 -0
  279. package/dist/blakron/player/InstructionSet.d.ts.map +1 -0
  280. package/dist/blakron/player/InstructionSet.js +45 -0
  281. package/dist/blakron/player/InstructionSet.js.map +1 -0
  282. package/dist/blakron/player/Player.d.ts +45 -0
  283. package/dist/blakron/player/Player.d.ts.map +1 -0
  284. package/dist/blakron/player/Player.js +149 -0
  285. package/dist/blakron/player/Player.js.map +1 -0
  286. package/dist/blakron/player/RenderBuffer.d.ts +35 -0
  287. package/dist/blakron/player/RenderBuffer.d.ts.map +1 -0
  288. package/dist/blakron/player/RenderBuffer.js +81 -0
  289. package/dist/blakron/player/RenderBuffer.js.map +1 -0
  290. package/dist/blakron/player/RenderPipe.d.ts +33 -0
  291. package/dist/blakron/player/RenderPipe.d.ts.map +1 -0
  292. package/dist/blakron/player/RenderPipe.js +2 -0
  293. package/dist/blakron/player/RenderPipe.js.map +1 -0
  294. package/dist/blakron/player/ScreenAdapter.d.ts +29 -0
  295. package/dist/blakron/player/ScreenAdapter.d.ts.map +1 -0
  296. package/dist/blakron/player/ScreenAdapter.js +127 -0
  297. package/dist/blakron/player/ScreenAdapter.js.map +1 -0
  298. package/dist/blakron/player/SystemTicker.d.ts +63 -0
  299. package/dist/blakron/player/SystemTicker.d.ts.map +1 -0
  300. package/dist/blakron/player/SystemTicker.js +207 -0
  301. package/dist/blakron/player/SystemTicker.js.map +1 -0
  302. package/dist/blakron/player/TouchHandler.d.ts +39 -0
  303. package/dist/blakron/player/TouchHandler.d.ts.map +1 -0
  304. package/dist/blakron/player/TouchHandler.js +149 -0
  305. package/dist/blakron/player/TouchHandler.js.map +1 -0
  306. package/dist/blakron/player/createPlayer.d.ts +35 -0
  307. package/dist/blakron/player/createPlayer.d.ts.map +1 -0
  308. package/dist/blakron/player/createPlayer.js +74 -0
  309. package/dist/blakron/player/createPlayer.js.map +1 -0
  310. package/dist/blakron/player/index.d.ts +13 -0
  311. package/dist/blakron/player/index.d.ts.map +1 -0
  312. package/dist/blakron/player/index.js +16 -0
  313. package/dist/blakron/player/index.js.map +1 -0
  314. package/dist/blakron/player/pipes/BitmapPipe.d.ts +35 -0
  315. package/dist/blakron/player/pipes/BitmapPipe.d.ts.map +1 -0
  316. package/dist/blakron/player/pipes/BitmapPipe.js +130 -0
  317. package/dist/blakron/player/pipes/BitmapPipe.js.map +1 -0
  318. package/dist/blakron/player/pipes/FilterPipe.d.ts +68 -0
  319. package/dist/blakron/player/pipes/FilterPipe.d.ts.map +1 -0
  320. package/dist/blakron/player/pipes/FilterPipe.js +169 -0
  321. package/dist/blakron/player/pipes/FilterPipe.js.map +1 -0
  322. package/dist/blakron/player/pipes/GraphicsPipe.d.ts +36 -0
  323. package/dist/blakron/player/pipes/GraphicsPipe.d.ts.map +1 -0
  324. package/dist/blakron/player/pipes/GraphicsPipe.js +126 -0
  325. package/dist/blakron/player/pipes/GraphicsPipe.js.map +1 -0
  326. package/dist/blakron/player/pipes/MaskPipe.d.ts +58 -0
  327. package/dist/blakron/player/pipes/MaskPipe.d.ts.map +1 -0
  328. package/dist/blakron/player/pipes/MaskPipe.js +188 -0
  329. package/dist/blakron/player/pipes/MaskPipe.js.map +1 -0
  330. package/dist/blakron/player/pipes/MeshPipe.d.ts +22 -0
  331. package/dist/blakron/player/pipes/MeshPipe.d.ts.map +1 -0
  332. package/dist/blakron/player/pipes/MeshPipe.js +50 -0
  333. package/dist/blakron/player/pipes/MeshPipe.js.map +1 -0
  334. package/dist/blakron/player/pipes/TextPipe.d.ts +52 -0
  335. package/dist/blakron/player/pipes/TextPipe.d.ts.map +1 -0
  336. package/dist/blakron/player/pipes/TextPipe.js +163 -0
  337. package/dist/blakron/player/pipes/TextPipe.js.map +1 -0
  338. package/dist/blakron/player/webgl/MultiTextureBatcher.d.ts +37 -0
  339. package/dist/blakron/player/webgl/MultiTextureBatcher.d.ts.map +1 -0
  340. package/dist/blakron/player/webgl/MultiTextureBatcher.js +63 -0
  341. package/dist/blakron/player/webgl/MultiTextureBatcher.js.map +1 -0
  342. package/dist/blakron/player/webgl/ShaderLib.d.ts +34 -0
  343. package/dist/blakron/player/webgl/ShaderLib.d.ts.map +1 -0
  344. package/dist/blakron/player/webgl/ShaderLib.js +268 -0
  345. package/dist/blakron/player/webgl/ShaderLib.js.map +1 -0
  346. package/dist/blakron/player/webgl/WebGLDrawCmdManager.d.ts +58 -0
  347. package/dist/blakron/player/webgl/WebGLDrawCmdManager.d.ts.map +1 -0
  348. package/dist/blakron/player/webgl/WebGLDrawCmdManager.js +197 -0
  349. package/dist/blakron/player/webgl/WebGLDrawCmdManager.js.map +1 -0
  350. package/dist/blakron/player/webgl/WebGLProgram.d.ts +14 -0
  351. package/dist/blakron/player/webgl/WebGLProgram.d.ts.map +1 -0
  352. package/dist/blakron/player/webgl/WebGLProgram.js +32 -0
  353. package/dist/blakron/player/webgl/WebGLProgram.js.map +1 -0
  354. package/dist/blakron/player/webgl/WebGLRenderBuffer.d.ts +52 -0
  355. package/dist/blakron/player/webgl/WebGLRenderBuffer.d.ts.map +1 -0
  356. package/dist/blakron/player/webgl/WebGLRenderBuffer.js +227 -0
  357. package/dist/blakron/player/webgl/WebGLRenderBuffer.js.map +1 -0
  358. package/dist/blakron/player/webgl/WebGLRenderContext.d.ts +114 -0
  359. package/dist/blakron/player/webgl/WebGLRenderContext.d.ts.map +1 -0
  360. package/dist/blakron/player/webgl/WebGLRenderContext.js +859 -0
  361. package/dist/blakron/player/webgl/WebGLRenderContext.js.map +1 -0
  362. package/dist/blakron/player/webgl/WebGLRenderTarget.d.ts +19 -0
  363. package/dist/blakron/player/webgl/WebGLRenderTarget.d.ts.map +1 -0
  364. package/dist/blakron/player/webgl/WebGLRenderTarget.js +90 -0
  365. package/dist/blakron/player/webgl/WebGLRenderTarget.js.map +1 -0
  366. package/dist/blakron/player/webgl/WebGLRenderer.d.ts +91 -0
  367. package/dist/blakron/player/webgl/WebGLRenderer.d.ts.map +1 -0
  368. package/dist/blakron/player/webgl/WebGLRenderer.js +721 -0
  369. package/dist/blakron/player/webgl/WebGLRenderer.js.map +1 -0
  370. package/dist/blakron/player/webgl/WebGLUtils.d.ts +11 -0
  371. package/dist/blakron/player/webgl/WebGLUtils.d.ts.map +1 -0
  372. package/dist/blakron/player/webgl/WebGLUtils.js +57 -0
  373. package/dist/blakron/player/webgl/WebGLUtils.js.map +1 -0
  374. package/dist/blakron/player/webgl/WebGLVertexArrayObject.d.ts +39 -0
  375. package/dist/blakron/player/webgl/WebGLVertexArrayObject.d.ts.map +1 -0
  376. package/dist/blakron/player/webgl/WebGLVertexArrayObject.js +367 -0
  377. package/dist/blakron/player/webgl/WebGLVertexArrayObject.js.map +1 -0
  378. package/dist/blakron/player/webgl/index.d.ts +11 -0
  379. package/dist/blakron/player/webgl/index.d.ts.map +1 -0
  380. package/dist/blakron/player/webgl/index.js +11 -0
  381. package/dist/blakron/player/webgl/index.js.map +1 -0
  382. package/dist/blakron/resource/Resource.d.ts +114 -0
  383. package/dist/blakron/resource/Resource.d.ts.map +1 -0
  384. package/dist/blakron/resource/Resource.js +363 -0
  385. package/dist/blakron/resource/Resource.js.map +1 -0
  386. package/dist/blakron/resource/ResourceConfig.d.ts +71 -0
  387. package/dist/blakron/resource/ResourceConfig.d.ts.map +1 -0
  388. package/dist/blakron/resource/ResourceConfig.js +144 -0
  389. package/dist/blakron/resource/ResourceConfig.js.map +1 -0
  390. package/dist/blakron/resource/ResourceEvent.d.ts +29 -0
  391. package/dist/blakron/resource/ResourceEvent.d.ts.map +1 -0
  392. package/dist/blakron/resource/ResourceEvent.js +12 -0
  393. package/dist/blakron/resource/ResourceEvent.js.map +1 -0
  394. package/dist/blakron/resource/ResourceItem.d.ts +24 -0
  395. package/dist/blakron/resource/ResourceItem.d.ts.map +1 -0
  396. package/dist/blakron/resource/ResourceItem.js +29 -0
  397. package/dist/blakron/resource/ResourceItem.js.map +1 -0
  398. package/dist/blakron/resource/ResourceLoader.d.ts +50 -0
  399. package/dist/blakron/resource/ResourceLoader.d.ts.map +1 -0
  400. package/dist/blakron/resource/ResourceLoader.js +138 -0
  401. package/dist/blakron/resource/ResourceLoader.js.map +1 -0
  402. package/dist/blakron/resource/analyzers/AnalyzerBase.d.ts +31 -0
  403. package/dist/blakron/resource/analyzers/AnalyzerBase.d.ts.map +1 -0
  404. package/dist/blakron/resource/analyzers/AnalyzerBase.js +38 -0
  405. package/dist/blakron/resource/analyzers/AnalyzerBase.js.map +1 -0
  406. package/dist/blakron/resource/analyzers/ImageAnalyzer.d.ts +13 -0
  407. package/dist/blakron/resource/analyzers/ImageAnalyzer.d.ts.map +1 -0
  408. package/dist/blakron/resource/analyzers/ImageAnalyzer.js +54 -0
  409. package/dist/blakron/resource/analyzers/ImageAnalyzer.js.map +1 -0
  410. package/dist/blakron/resource/analyzers/JsonAnalyzer.d.ts +12 -0
  411. package/dist/blakron/resource/analyzers/JsonAnalyzer.d.ts.map +1 -0
  412. package/dist/blakron/resource/analyzers/JsonAnalyzer.js +54 -0
  413. package/dist/blakron/resource/analyzers/JsonAnalyzer.js.map +1 -0
  414. package/dist/blakron/resource/analyzers/SheetAnalyzer.d.ts +32 -0
  415. package/dist/blakron/resource/analyzers/SheetAnalyzer.d.ts.map +1 -0
  416. package/dist/blakron/resource/analyzers/SheetAnalyzer.js +182 -0
  417. package/dist/blakron/resource/analyzers/SheetAnalyzer.js.map +1 -0
  418. package/dist/blakron/resource/analyzers/SoundAnalyzer.d.ts +13 -0
  419. package/dist/blakron/resource/analyzers/SoundAnalyzer.d.ts.map +1 -0
  420. package/dist/blakron/resource/analyzers/SoundAnalyzer.js +45 -0
  421. package/dist/blakron/resource/analyzers/SoundAnalyzer.js.map +1 -0
  422. package/dist/blakron/resource/analyzers/TextAnalyzer.d.ts +12 -0
  423. package/dist/blakron/resource/analyzers/TextAnalyzer.d.ts.map +1 -0
  424. package/dist/blakron/resource/analyzers/TextAnalyzer.js +49 -0
  425. package/dist/blakron/resource/analyzers/TextAnalyzer.js.map +1 -0
  426. package/dist/blakron/resource/analyzers/index.d.ts +7 -0
  427. package/dist/blakron/resource/analyzers/index.d.ts.map +1 -0
  428. package/dist/blakron/resource/analyzers/index.js +7 -0
  429. package/dist/blakron/resource/analyzers/index.js.map +1 -0
  430. package/dist/blakron/resource/index.d.ts +15 -0
  431. package/dist/blakron/resource/index.d.ts.map +1 -0
  432. package/dist/blakron/resource/index.js +15 -0
  433. package/dist/blakron/resource/index.js.map +1 -0
  434. package/dist/blakron/system/Capabilities.d.ts +46 -0
  435. package/dist/blakron/system/Capabilities.d.ts.map +1 -0
  436. package/dist/blakron/system/Capabilities.js +100 -0
  437. package/dist/blakron/system/Capabilities.js.map +1 -0
  438. package/dist/blakron/system/index.d.ts +2 -0
  439. package/dist/blakron/system/index.d.ts.map +1 -0
  440. package/dist/blakron/system/index.js +2 -0
  441. package/dist/blakron/system/index.js.map +1 -0
  442. package/dist/blakron/text/BitmapFont.d.ts +31 -0
  443. package/dist/blakron/text/BitmapFont.d.ts.map +1 -0
  444. package/dist/blakron/text/BitmapFont.js +86 -0
  445. package/dist/blakron/text/BitmapFont.js.map +1 -0
  446. package/dist/blakron/text/BitmapText.d.ts +56 -0
  447. package/dist/blakron/text/BitmapText.d.ts.map +1 -0
  448. package/dist/blakron/text/BitmapText.js +230 -0
  449. package/dist/blakron/text/BitmapText.js.map +1 -0
  450. package/dist/blakron/text/HtmlTextParser.d.ts +14 -0
  451. package/dist/blakron/text/HtmlTextParser.d.ts.map +1 -0
  452. package/dist/blakron/text/HtmlTextParser.js +147 -0
  453. package/dist/blakron/text/HtmlTextParser.js.map +1 -0
  454. package/dist/blakron/text/InputController.d.ts +29 -0
  455. package/dist/blakron/text/InputController.d.ts.map +1 -0
  456. package/dist/blakron/text/InputController.js +131 -0
  457. package/dist/blakron/text/InputController.js.map +1 -0
  458. package/dist/blakron/text/StageText.d.ts +53 -0
  459. package/dist/blakron/text/StageText.d.ts.map +1 -0
  460. package/dist/blakron/text/StageText.js +392 -0
  461. package/dist/blakron/text/StageText.js.map +1 -0
  462. package/dist/blakron/text/TextField.d.ts +145 -0
  463. package/dist/blakron/text/TextField.d.ts.map +1 -0
  464. package/dist/blakron/text/TextField.js +716 -0
  465. package/dist/blakron/text/TextField.js.map +1 -0
  466. package/dist/blakron/text/TextMeasurer.d.ts +9 -0
  467. package/dist/blakron/text/TextMeasurer.d.ts.map +1 -0
  468. package/dist/blakron/text/TextMeasurer.js +36 -0
  469. package/dist/blakron/text/TextMeasurer.js.map +1 -0
  470. package/dist/blakron/text/WordWrap.d.ts +15 -0
  471. package/dist/blakron/text/WordWrap.d.ts.map +1 -0
  472. package/dist/blakron/text/WordWrap.js +50 -0
  473. package/dist/blakron/text/WordWrap.js.map +1 -0
  474. package/dist/blakron/text/enums/HorizontalAlign.d.ts +9 -0
  475. package/dist/blakron/text/enums/HorizontalAlign.d.ts.map +1 -0
  476. package/dist/blakron/text/enums/HorizontalAlign.js +8 -0
  477. package/dist/blakron/text/enums/HorizontalAlign.js.map +1 -0
  478. package/dist/blakron/text/enums/TextFieldInputType.d.ts +7 -0
  479. package/dist/blakron/text/enums/TextFieldInputType.d.ts.map +1 -0
  480. package/dist/blakron/text/enums/TextFieldInputType.js +6 -0
  481. package/dist/blakron/text/enums/TextFieldInputType.js.map +1 -0
  482. package/dist/blakron/text/enums/TextFieldType.d.ts +6 -0
  483. package/dist/blakron/text/enums/TextFieldType.d.ts.map +1 -0
  484. package/dist/blakron/text/enums/TextFieldType.js +5 -0
  485. package/dist/blakron/text/enums/TextFieldType.js.map +1 -0
  486. package/dist/blakron/text/enums/VerticalAlign.d.ts +9 -0
  487. package/dist/blakron/text/enums/VerticalAlign.d.ts.map +1 -0
  488. package/dist/blakron/text/enums/VerticalAlign.js +8 -0
  489. package/dist/blakron/text/enums/VerticalAlign.js.map +1 -0
  490. package/dist/blakron/text/enums/index.d.ts +5 -0
  491. package/dist/blakron/text/enums/index.d.ts.map +1 -0
  492. package/dist/blakron/text/enums/index.js +5 -0
  493. package/dist/blakron/text/enums/index.js.map +1 -0
  494. package/dist/blakron/text/index.d.ts +14 -0
  495. package/dist/blakron/text/index.d.ts.map +1 -0
  496. package/dist/blakron/text/index.js +13 -0
  497. package/dist/blakron/text/index.js.map +1 -0
  498. package/dist/blakron/text/types/ITextElement.d.ts +31 -0
  499. package/dist/blakron/text/types/ITextElement.d.ts.map +1 -0
  500. package/dist/blakron/text/types/ITextElement.js +2 -0
  501. package/dist/blakron/text/types/ITextElement.js.map +1 -0
  502. package/dist/blakron/text/types/index.d.ts +2 -0
  503. package/dist/blakron/text/types/index.d.ts.map +1 -0
  504. package/dist/blakron/text/types/index.js +2 -0
  505. package/dist/blakron/text/types/index.js.map +1 -0
  506. package/dist/blakron/utils/Base64Util.d.ts +5 -0
  507. package/dist/blakron/utils/Base64Util.d.ts.map +1 -0
  508. package/dist/blakron/utils/Base64Util.js +45 -0
  509. package/dist/blakron/utils/Base64Util.js.map +1 -0
  510. package/dist/blakron/utils/ByteArray.d.ts +66 -0
  511. package/dist/blakron/utils/ByteArray.d.ts.map +1 -0
  512. package/dist/blakron/utils/ByteArray.js +303 -0
  513. package/dist/blakron/utils/ByteArray.js.map +1 -0
  514. package/dist/blakron/utils/DebugLog.d.ts +9 -0
  515. package/dist/blakron/utils/DebugLog.d.ts.map +1 -0
  516. package/dist/blakron/utils/DebugLog.js +25 -0
  517. package/dist/blakron/utils/DebugLog.js.map +1 -0
  518. package/dist/blakron/utils/FontManager.d.ts +11 -0
  519. package/dist/blakron/utils/FontManager.d.ts.map +1 -0
  520. package/dist/blakron/utils/FontManager.js +39 -0
  521. package/dist/blakron/utils/FontManager.js.map +1 -0
  522. package/dist/blakron/utils/HashObject.d.ts +9 -0
  523. package/dist/blakron/utils/HashObject.d.ts.map +1 -0
  524. package/dist/blakron/utils/HashObject.js +11 -0
  525. package/dist/blakron/utils/HashObject.js.map +1 -0
  526. package/dist/blakron/utils/Logger.d.ts +16 -0
  527. package/dist/blakron/utils/Logger.d.ts.map +1 -0
  528. package/dist/blakron/utils/Logger.js +26 -0
  529. package/dist/blakron/utils/Logger.js.map +1 -0
  530. package/dist/blakron/utils/NumberUtils.d.ts +15 -0
  531. package/dist/blakron/utils/NumberUtils.d.ts.map +1 -0
  532. package/dist/blakron/utils/NumberUtils.js +60 -0
  533. package/dist/blakron/utils/NumberUtils.js.map +1 -0
  534. package/dist/blakron/utils/Timer.d.ts +22 -0
  535. package/dist/blakron/utils/Timer.d.ts.map +1 -0
  536. package/dist/blakron/utils/Timer.js +67 -0
  537. package/dist/blakron/utils/Timer.js.map +1 -0
  538. package/dist/blakron/utils/index.d.ts +11 -0
  539. package/dist/blakron/utils/index.d.ts.map +1 -0
  540. package/dist/blakron/utils/index.js +10 -0
  541. package/dist/blakron/utils/index.js.map +1 -0
  542. package/dist/blakron/utils/toColorString.d.ts +2 -0
  543. package/dist/blakron/utils/toColorString.d.ts.map +1 -0
  544. package/dist/blakron/utils/toColorString.js +5 -0
  545. package/dist/blakron/utils/toColorString.js.map +1 -0
  546. package/dist/index.d.ts +13 -12
  547. package/dist/index.d.ts.map +1 -1
  548. package/dist/index.js +13 -12
  549. package/dist/index.js.map +1 -1
  550. package/package.json +52 -51
@@ -0,0 +1,721 @@
1
+ import { DisplayObjectContainer } from '../../display/DisplayObjectContainer.js';
2
+ import { Matrix } from '../../geom/Matrix.js';
3
+ import { CanvasRenderer } from '../CanvasRenderer.js';
4
+ import { InstructionSet } from '../InstructionSet.js';
5
+ import { BitmapPipe } from '../pipes/BitmapPipe.js';
6
+ import { GraphicsPipe } from '../pipes/GraphicsPipe.js';
7
+ import { MeshPipe } from '../pipes/MeshPipe.js';
8
+ import { FilterPipe } from '../pipes/FilterPipe.js';
9
+ import { MaskPipe } from '../pipes/MaskPipe.js';
10
+ import { TextPipe } from '../pipes/TextPipe.js';
11
+ import { WebGLRenderBuffer } from './WebGLRenderBuffer.js';
12
+ // ── WebGLRenderer ─────────────────────────────────────────────────────────────
13
+ /**
14
+ * Two-phase WebGL renderer inspired by Pixi.js 8's RenderPipe / InstructionSet pattern.
15
+ *
16
+ * Phase A — Build (only when structureDirty):
17
+ * Traverse the DisplayObject tree and produce a flat InstructionSet.
18
+ * Each instruction captures the object reference + transform snapshot.
19
+ *
20
+ * Phase B — Execute (every frame):
21
+ * Walk the InstructionSet and dispatch each instruction to its pipe.
22
+ * No scene-graph traversal happens here.
23
+ *
24
+ * When only data changes (renderDirty but not structureDirty):
25
+ * Call pipe.updateRenderable() for each dirty object, then execute.
26
+ */
27
+ export class WebGLRenderer {
28
+ // ── Pipes ─────────────────────────────────────────────────────────────────
29
+ _canvasRenderer = new CanvasRenderer();
30
+ _bitmapPipe;
31
+ _graphicsPipe;
32
+ _meshPipe;
33
+ _textPipe;
34
+ _filterPipe = new FilterPipe();
35
+ _maskPipe = new MaskPipe();
36
+ // ── Instruction set ───────────────────────────────────────────────────────
37
+ _instructionSet = new InstructionSet();
38
+ _renderGroupSets = new WeakMap();
39
+ _renderGroupSetList = [];
40
+ // ── Nesting (for recursive offscreen renders, e.g. cacheAsBitmap) ────────
41
+ _nestLevel = 0;
42
+ constructor() {
43
+ this._bitmapPipe = new BitmapPipe();
44
+ this._graphicsPipe = new GraphicsPipe(this._canvasRenderer);
45
+ this._meshPipe = new MeshPipe();
46
+ this._textPipe = new TextPipe(this._canvasRenderer);
47
+ }
48
+ // ── Public entry point ────────────────────────────────────────────────────
49
+ // Release pooled instructions back to their respective pipes before a rebuild.
50
+ _releaseInstructions(set) {
51
+ for (let i = 0; i < set.instructionSize; i++) {
52
+ const inst = set.instructions[i];
53
+ switch (inst.renderPipeId) {
54
+ case 'filterPush':
55
+ FilterPipe.releasePush(inst);
56
+ break;
57
+ case 'filterPop':
58
+ FilterPipe.releasePop(inst);
59
+ break;
60
+ case 'maskPush':
61
+ MaskPipe.releasePush(inst);
62
+ break;
63
+ case 'maskPop':
64
+ MaskPipe.releasePop(inst);
65
+ break;
66
+ }
67
+ }
68
+ }
69
+ render(displayObject, buffer, matrix) {
70
+ this._nestLevel++;
71
+ const ctx = buffer.context;
72
+ ctx.pushBuffer(buffer);
73
+ // Set (not multiply) the root transform so it doesn't accumulate across frames.
74
+ buffer.setTransform(matrix.a, matrix.b, matrix.c, matrix.d, 0, 0);
75
+ const set = this._instructionSet;
76
+ // ── Phase A: build instructions if scene structure changed ────────────
77
+ if (set.structureDirty) {
78
+ this._releaseInstructions(set);
79
+ set.reset();
80
+ buffer.globalAlpha = 1;
81
+ buffer.globalTintColor = 0xffffff;
82
+ this._buildInstructions(displayObject, set, buffer, matrix.tx, matrix.ty, true);
83
+ set.structureDirty = false;
84
+ }
85
+ else {
86
+ // ── Partial update: patch GPU data for dirty renderables ──────────
87
+ this._updateDirtyRenderables(set);
88
+ }
89
+ // ── Phase B: execute ──────────────────────────────────────────────────
90
+ this._executeInstructions(set, buffer);
91
+ ctx.flush();
92
+ const drawCalls = buffer.drawCalls;
93
+ buffer.onRenderFinish();
94
+ ctx.popBuffer();
95
+ // Reset to identity — clean slate for next frame.
96
+ buffer.setTransform(1, 0, 0, 1, 0, 0);
97
+ // Root renderDirty is consumed after a full render pass.
98
+ displayObject.renderDirty = false;
99
+ this._nestLevel--;
100
+ if (this._nestLevel === 0) {
101
+ WebGLRenderBuffer.release(WebGLRenderBuffer.create(buffer.context, 0, 0));
102
+ }
103
+ return drawCalls;
104
+ }
105
+ // ── Phase A: build ────────────────────────────────────────────────────────
106
+ /**
107
+ * Recursively traverse the DisplayObject tree and append instructions to `set`.
108
+ * Captures the current transform/alpha/tint state into each instruction.
109
+ */
110
+ _buildInstructions(displayObject, set, buffer, offsetX, offsetY, isStage = false) {
111
+ // cacheAsBitmap — treat as a single opaque leaf; render offscreen lazily.
112
+ const displayList = displayObject.displayList;
113
+ if (displayList && !isStage) {
114
+ // Emit a synthetic BitmapInstruction backed by the DisplayList cache.
115
+ // The execute phase will refresh the cache if dirty.
116
+ const inst = this._makeCacheInstruction(displayObject, offsetX, offsetY, buffer);
117
+ if (inst)
118
+ set.add(inst);
119
+ return;
120
+ }
121
+ // Emit self instruction (Bitmap / Shape / Sprite / Mesh).
122
+ this._buildLeaf(displayObject, set, buffer, offsetX, offsetY);
123
+ const children = displayObject.children;
124
+ if (!children || children.length === 0)
125
+ return;
126
+ for (const child of children) {
127
+ if (child.renderMode === 1 /* RenderMode.NONE */)
128
+ continue;
129
+ // Compute child transform.
130
+ let ox, oy;
131
+ let savedMatrix;
132
+ if (child.useTranslate) {
133
+ const m = child.getMatrix();
134
+ ox = offsetX + child.internalX;
135
+ oy = offsetY + child.internalY;
136
+ savedMatrix = Matrix.create();
137
+ savedMatrix.copyFrom(buffer.globalMatrix);
138
+ buffer.transform(m.a, m.b, m.c, m.d, ox, oy);
139
+ ox = -child.internalAnchorOffsetX;
140
+ oy = -child.internalAnchorOffsetY;
141
+ }
142
+ else {
143
+ ox = offsetX + child.internalX - child.internalAnchorOffsetX;
144
+ oy = offsetY + child.internalY - child.internalAnchorOffsetY;
145
+ }
146
+ const prevAlpha = buffer.globalAlpha;
147
+ if (child.internalAlpha !== 1)
148
+ buffer.globalAlpha *= child.internalAlpha;
149
+ const prevTint = buffer.globalTintColor;
150
+ if (child.tintRGB !== 0xffffff)
151
+ buffer.globalTintColor = child.tintRGB;
152
+ // Emit effect wrappers then recurse.
153
+ // RenderGroup: build the subtree into its own InstructionSet and
154
+ // emit a single renderGroup instruction into the parent set.
155
+ if (child instanceof DisplayObjectContainer && child.isRenderGroup) {
156
+ this._buildRenderGroup(child, set, buffer, ox, oy);
157
+ }
158
+ else {
159
+ switch (child.renderMode) {
160
+ case 2 /* RenderMode.FILTER */:
161
+ this._buildFilter(child, set, buffer, ox, oy);
162
+ break;
163
+ case 3 /* RenderMode.CLIP */:
164
+ this._buildClip(child, set, buffer, ox, oy);
165
+ break;
166
+ case 4 /* RenderMode.SCROLLRECT */:
167
+ this._buildScrollRect(child, set, buffer, ox, oy);
168
+ break;
169
+ default:
170
+ this._buildInstructions(child, set, buffer, ox, oy);
171
+ }
172
+ }
173
+ buffer.globalAlpha = prevAlpha;
174
+ buffer.globalTintColor = prevTint;
175
+ if (savedMatrix) {
176
+ buffer.globalMatrix.copyFrom(savedMatrix);
177
+ Matrix.release(savedMatrix);
178
+ }
179
+ }
180
+ }
181
+ // Emit a leaf instruction for a single DisplayObject (no children).
182
+ _buildLeaf(obj, set, buffer, offsetX, offsetY) {
183
+ const transform = this._snapshotTransform(buffer, offsetX, offsetY);
184
+ switch (obj.renderObjectType) {
185
+ case 2 /* RenderObjectType.MESH */:
186
+ set.addLeaf({
187
+ renderPipeId: 'mesh',
188
+ renderable: obj,
189
+ offsetX,
190
+ offsetY,
191
+ transform,
192
+ });
193
+ break;
194
+ case 1 /* RenderObjectType.BITMAP */:
195
+ set.addLeaf({
196
+ renderPipeId: 'bitmap',
197
+ renderable: obj,
198
+ offsetX,
199
+ offsetY,
200
+ transform,
201
+ });
202
+ break;
203
+ case 3 /* RenderObjectType.SHAPE */:
204
+ set.addLeaf({
205
+ renderPipeId: 'graphics',
206
+ renderable: obj,
207
+ graphics: obj.graphics,
208
+ offsetX,
209
+ offsetY,
210
+ transform,
211
+ });
212
+ break;
213
+ case 5 /* RenderObjectType.TEXT */:
214
+ set.addLeaf({
215
+ renderPipeId: 'text',
216
+ renderable: obj,
217
+ offsetX,
218
+ offsetY,
219
+ transform,
220
+ });
221
+ break;
222
+ case 4 /* RenderObjectType.SPRITE */: {
223
+ const sprite = obj;
224
+ if (sprite.graphics.commands.length > 0) {
225
+ set.addLeaf({
226
+ renderPipeId: 'graphics',
227
+ renderable: obj,
228
+ graphics: sprite.graphics,
229
+ offsetX,
230
+ offsetY,
231
+ transform,
232
+ });
233
+ }
234
+ break;
235
+ }
236
+ }
237
+ }
238
+ _buildFilter(obj, set, buffer, offsetX, offsetY) {
239
+ const filters = obj.internalFilters;
240
+ if (!filters.length) {
241
+ this._buildInstructions(obj, set, buffer, offsetX, offsetY);
242
+ return;
243
+ }
244
+ const transform = this._snapshotTransform(buffer, offsetX, offsetY);
245
+ const push = Object.assign(FilterPipe.makePush(obj, filters, offsetX, offsetY), {
246
+ transform,
247
+ });
248
+ set.add(push);
249
+ this._buildInstructions(obj, set, buffer, offsetX, offsetY);
250
+ set.add(FilterPipe.makePop(obj, push));
251
+ }
252
+ _buildClip(obj, set, buffer, offsetX, offsetY) {
253
+ const transform = this._snapshotTransform(buffer, offsetX, offsetY);
254
+ const push = Object.assign(MaskPipe.makePush(obj, offsetX, offsetY), { transform });
255
+ set.add(push);
256
+ this._buildInstructions(obj, set, buffer, offsetX, offsetY);
257
+ set.add(MaskPipe.makePop(obj, push));
258
+ }
259
+ _buildScrollRect(obj, set, buffer, offsetX, offsetY) {
260
+ const rect = obj.internalScrollRect ?? obj.internalMaskRect;
261
+ if (!rect || rect.isEmpty())
262
+ return;
263
+ let ox = offsetX, oy = offsetY;
264
+ if (obj.internalScrollRect) {
265
+ ox -= rect.x;
266
+ oy -= rect.y;
267
+ }
268
+ const transform = this._snapshotTransform(buffer, offsetX, offsetY);
269
+ const push = Object.assign(MaskPipe.makePush(obj, offsetX, offsetY), { transform });
270
+ // Tag as scrollRect so execute knows which path to take.
271
+ push.isScrollRect = true;
272
+ set.add(push);
273
+ this._buildInstructions(obj, set, buffer, ox, oy);
274
+ set.add(MaskPipe.makePop(obj, push));
275
+ }
276
+ /**
277
+ * Build a RenderGroup subtree into its own InstructionSet and emit a
278
+ * single `renderGroup` instruction into the parent set.
279
+ *
280
+ * The child set is rebuilt only when its own `structureDirty` flag is set,
281
+ * so changes inside the group never force a rebuild of the parent set.
282
+ */
283
+ _buildRenderGroup(obj, parentSet, buffer, offsetX, offsetY) {
284
+ let groupSet = this._renderGroupSets.get(obj);
285
+ if (!groupSet) {
286
+ groupSet = new InstructionSet();
287
+ this._renderGroupSets.set(obj, groupSet);
288
+ this._renderGroupSetList.push(new WeakRef(obj));
289
+ }
290
+ if (groupSet.structureDirty) {
291
+ this._releaseInstructions(groupSet);
292
+ groupSet.reset();
293
+ this._buildInstructions(obj, groupSet, buffer, offsetX, offsetY);
294
+ groupSet.structureDirty = false;
295
+ }
296
+ else {
297
+ this._updateDirtyRenderables(groupSet);
298
+ }
299
+ const transform = this._snapshotTransform(buffer, offsetX, offsetY);
300
+ parentSet.add({
301
+ renderPipeId: 'renderGroup',
302
+ renderable: obj,
303
+ set: groupSet,
304
+ offsetX,
305
+ offsetY,
306
+ transform,
307
+ });
308
+ }
309
+ // Build a synthetic instruction for a cacheAsBitmap object.
310
+ _makeCacheInstruction(obj, offsetX, offsetY, buffer) {
311
+ const displayList = obj.displayList;
312
+ if (!displayList)
313
+ return undefined;
314
+ const transform = this._snapshotTransform(buffer, offsetX, offsetY);
315
+ return {
316
+ renderPipeId: 'displayListCache',
317
+ renderable: obj,
318
+ offsetX,
319
+ offsetY,
320
+ transform,
321
+ };
322
+ }
323
+ // ── Phase A helpers ───────────────────────────────────────────────────────
324
+ _snapshotTransform(buffer, offsetX, offsetY) {
325
+ const m = buffer.globalMatrix;
326
+ return {
327
+ a: m.a,
328
+ b: m.b,
329
+ c: m.c,
330
+ d: m.d,
331
+ tx: m.tx,
332
+ ty: m.ty,
333
+ offsetX,
334
+ offsetY,
335
+ alpha: buffer.globalAlpha,
336
+ tint: buffer.globalTintColor,
337
+ };
338
+ }
339
+ // ── Partial update ────────────────────────────────────────────────────────
340
+ _updateDirtyRenderables(set) {
341
+ for (let i = 0; i < set.dirtyRenderableCount; i++) {
342
+ const obj = set.dirtyRenderables[i];
343
+ // Look up the instruction index for this object.
344
+ const idx = set.renderableIndex.get(obj);
345
+ if (idx === undefined)
346
+ continue;
347
+ const inst = set.instructions[idx];
348
+ if (!inst)
349
+ continue;
350
+ // Recompute the transform snapshot from the object's current world state.
351
+ // We can't use buffer.globalMatrix here (it's the main buffer's current
352
+ // state, not the object's world transform), so we rebuild from scratch.
353
+ this._refreshLeafTransform(obj, inst);
354
+ }
355
+ set.dirtyRenderableCount = 0;
356
+ }
357
+ /**
358
+ * Recompute the transform snapshot for a leaf instruction from the object's
359
+ * current concatenated matrix and cached world alpha/tint.
360
+ */
361
+ _refreshLeafTransform(obj, inst) {
362
+ const cm = obj.getConcatenatedMatrix();
363
+ const t = inst.transform;
364
+ t.a = cm.a;
365
+ t.b = cm.b;
366
+ t.c = cm.c;
367
+ t.d = cm.d;
368
+ t.tx = cm.tx;
369
+ t.ty = cm.ty;
370
+ t.offsetX = 0;
371
+ t.offsetY = 0;
372
+ t.alpha = obj.worldAlpha;
373
+ t.tint = obj.worldTint;
374
+ }
375
+ // ── Phase B: execute ──────────────────────────────────────────────────────
376
+ _executeInstructions(set, buffer) {
377
+ // Stack for offscreen buffers opened by filter/mask push instructions.
378
+ const offscreenStack = [];
379
+ const scissorStack = [];
380
+ // Track the currently active buffer — leaf instructions draw into this.
381
+ let activeBuffer = buffer;
382
+ for (let i = 0; i < set.instructionSize; i++) {
383
+ const inst = set.instructions[i];
384
+ switch (inst.renderPipeId) {
385
+ // ── Leaf nodes ────────────────────────────────────────────────
386
+ case 'bitmap': {
387
+ const leaf = inst;
388
+ this._applyTransform(activeBuffer, leaf.transform);
389
+ this._bitmapPipe.execute(leaf, activeBuffer);
390
+ break;
391
+ }
392
+ case 'mesh': {
393
+ const leaf = inst;
394
+ this._applyTransform(activeBuffer, leaf.transform);
395
+ this._meshPipe.execute(leaf, activeBuffer);
396
+ break;
397
+ }
398
+ case 'graphics': {
399
+ const leaf = inst;
400
+ this._applyTransform(activeBuffer, leaf.transform);
401
+ this._graphicsPipe.execute(leaf, activeBuffer);
402
+ break;
403
+ }
404
+ case 'text': {
405
+ const leaf = inst;
406
+ this._applyTransform(activeBuffer, leaf.transform);
407
+ this._textPipe.execute(leaf, activeBuffer);
408
+ break;
409
+ }
410
+ // ── DisplayList cache ─────────────────────────────────────────
411
+ case 'displayListCache': {
412
+ const cacheInst = inst;
413
+ this._applyTransform(activeBuffer, cacheInst.transform);
414
+ this._executeDisplayListCache(cacheInst.renderable, activeBuffer, cacheInst.offsetX, cacheInst.offsetY);
415
+ break;
416
+ }
417
+ // ── RenderGroup ───────────────────────────────────────────────
418
+ case 'renderGroup': {
419
+ const rgInst = inst;
420
+ this._applyTransform(activeBuffer, rgInst.transform);
421
+ this._executeInstructions(rgInst.set, activeBuffer);
422
+ break;
423
+ }
424
+ // ── Filter push/pop ───────────────────────────────────────────
425
+ case 'filterPush': {
426
+ const push = inst;
427
+ const pushT = push.transform;
428
+ this._applyTransform(activeBuffer, pushT);
429
+ const offscreen = this._filterPipe.executePush(push, activeBuffer);
430
+ offscreenStack.push(offscreen);
431
+ if (offscreen) {
432
+ this._setOffscreenOrigin(offscreen, push.renderable.getOriginalBounds(), pushT);
433
+ activeBuffer = offscreen;
434
+ }
435
+ break;
436
+ }
437
+ case 'filterPop': {
438
+ const pop = inst;
439
+ const offscreen = offscreenStack.pop();
440
+ if (offscreen)
441
+ activeBuffer =
442
+ offscreenStack.length > 0 ? (offscreenStack[offscreenStack.length - 1] ?? buffer) : buffer;
443
+ this._filterPipe.executePop(pop, activeBuffer, offscreen);
444
+ break;
445
+ }
446
+ // ── Mask / clip push/pop ──────────────────────────────────────
447
+ case 'maskPush': {
448
+ const push = inst;
449
+ const pushT = push.transform;
450
+ this._applyTransform(activeBuffer, pushT);
451
+ if (push.isScrollRect) {
452
+ const usedScissor = this._maskPipe.executeScrollRectPush(push, activeBuffer);
453
+ scissorStack.push(usedScissor);
454
+ offscreenStack.push(undefined);
455
+ }
456
+ else {
457
+ const displayBuffer = this._maskPipe.executeClipPush(push, activeBuffer, this);
458
+ offscreenStack.push(displayBuffer);
459
+ if (displayBuffer) {
460
+ this._setOffscreenOrigin(displayBuffer, push.renderable.getOriginalBounds(), pushT);
461
+ activeBuffer = displayBuffer;
462
+ }
463
+ }
464
+ break;
465
+ }
466
+ case 'maskPop': {
467
+ const pop = inst;
468
+ if (pop.push.isScrollRect) {
469
+ const usedScissor = scissorStack.pop() ?? false;
470
+ offscreenStack.pop();
471
+ this._maskPipe.executeScrollRectPop(activeBuffer, usedScissor);
472
+ }
473
+ else {
474
+ const displayBuffer = offscreenStack.pop();
475
+ // Restore the parent buffer before compositing.
476
+ if (displayBuffer)
477
+ activeBuffer =
478
+ offscreenStack.length > 0
479
+ ? (offscreenStack[offscreenStack.length - 1] ?? buffer)
480
+ : buffer;
481
+ this._maskPipe.executeClipPop(pop, activeBuffer, displayBuffer, this);
482
+ }
483
+ break;
484
+ }
485
+ }
486
+ }
487
+ }
488
+ // Restore the buffer's global matrix / alpha / tint from a snapshot.
489
+ _applyTransform(buffer, t) {
490
+ const m = buffer.globalMatrix;
491
+ m.a = t.a;
492
+ m.b = t.b;
493
+ m.c = t.c;
494
+ m.d = t.d;
495
+ m.tx = t.tx + t.offsetX - buffer.offscreenOriginX;
496
+ m.ty = t.ty + t.offsetY - buffer.offscreenOriginY;
497
+ buffer.globalAlpha = t.alpha;
498
+ buffer.globalTintColor = t.tint;
499
+ }
500
+ /**
501
+ * Compute the world-space position that should map to (padX, padY) in the
502
+ * offscreen buffer. Because the buffer includes filter padding, the
503
+ * content's bounds origin must land at (padX, padY) rather than (0,0).
504
+ */
505
+ _setOffscreenOrigin(buf, bounds, t) {
506
+ const padX = buf.filterPadX;
507
+ const padY = buf.filterPadY;
508
+ // World position of bounds origin:
509
+ const worldBX = t.a * bounds.x + t.c * bounds.y + t.tx + t.offsetX;
510
+ const worldBY = t.b * bounds.x + t.d * bounds.y + t.ty + t.offsetY;
511
+ // We want: _applyTransform gives globalMatrix.tx = worldBX - originX = padX
512
+ // So: originX = worldBX - padX
513
+ buf.offscreenOriginX = worldBX - padX;
514
+ buf.offscreenOriginY = worldBY - padY;
515
+ }
516
+ // Execute a cacheAsBitmap DisplayList instruction.
517
+ _executeDisplayListCache(obj, buffer, offsetX, offsetY) {
518
+ const displayList = obj.displayList;
519
+ if (!displayList)
520
+ return;
521
+ if (obj.cacheDirty || obj.renderDirty) {
522
+ if (displayList.updateSurfaceSize()) {
523
+ displayList.renderBuffer.clear();
524
+ this._canvasRenderer.renderToContext(obj, displayList.renderBuffer.context, displayList.offsetX, displayList.offsetY);
525
+ displayList.updateBitmapData();
526
+ }
527
+ obj.cacheDirty = false;
528
+ obj.renderDirty = false;
529
+ // Structure may have changed inside the cached subtree — mark dirty
530
+ // so next frame rebuilds if the cache is invalidated.
531
+ }
532
+ if (!displayList.bitmapData?.source)
533
+ return;
534
+ const bd = displayList.bitmapData;
535
+ const w = displayList.renderBuffer.width;
536
+ const h = displayList.renderBuffer.height;
537
+ // offsetX/Y already in globalMatrix via _applyTransform.
538
+ if (offsetX !== 0 || offsetY !== 0) {
539
+ buffer.globalMatrix.append(1, 0, 0, 1, offsetX, offsetY);
540
+ }
541
+ buffer.context.drawImage(bd, 0, 0, w, h, -displayList.offsetX, -displayList.offsetY, w, h, w, h, false);
542
+ if (offsetX !== 0 || offsetY !== 0) {
543
+ buffer.globalMatrix.append(1, 0, 0, 1, -offsetX, -offsetY);
544
+ }
545
+ }
546
+ // ── Public accessor for MaskPipe (needs to call _drawDisplayObject) ───────
547
+ /**
548
+ * @internal Used by MaskPipe.executeClipPush() to render mask objects
549
+ * into offscreen buffers during the execute phase.
550
+ */
551
+ _drawDisplayObject(obj, buffer, offsetX, offsetY) {
552
+ // For mask rendering we do a direct (non-instruction-set) traversal
553
+ // into the offscreen buffer — this is the same as the old approach.
554
+ return this._directDraw(obj, buffer, offsetX, offsetY);
555
+ }
556
+ // Direct draw (used for offscreen mask/filter buffers).
557
+ _directDraw(obj, buffer, offsetX, offsetY) {
558
+ let drawCalls = 0;
559
+ // Bake offset into globalMatrix instead of buffer.offsetX
560
+ // so that GraphicsPipe / BitmapPipe / MeshPipe see it in the matrix.
561
+ if (offsetX !== 0 || offsetY !== 0) {
562
+ buffer.globalMatrix.append(1, 0, 0, 1, offsetX, offsetY);
563
+ }
564
+ switch (obj.renderObjectType) {
565
+ case 2 /* RenderObjectType.MESH */: {
566
+ const inst = { renderPipeId: 'mesh', renderable: obj, offsetX: 0, offsetY: 0 };
567
+ this._meshPipe.execute(inst, buffer);
568
+ drawCalls++;
569
+ break;
570
+ }
571
+ case 1 /* RenderObjectType.BITMAP */: {
572
+ const inst = {
573
+ renderPipeId: 'bitmap',
574
+ renderable: obj,
575
+ offsetX: 0,
576
+ offsetY: 0,
577
+ };
578
+ this._bitmapPipe.execute(inst, buffer);
579
+ drawCalls++;
580
+ break;
581
+ }
582
+ case 3 /* RenderObjectType.SHAPE */: {
583
+ const inst = {
584
+ renderPipeId: 'graphics',
585
+ renderable: obj,
586
+ graphics: obj.graphics,
587
+ offsetX: 0,
588
+ offsetY: 0,
589
+ };
590
+ this._graphicsPipe.execute(inst, buffer);
591
+ drawCalls++;
592
+ break;
593
+ }
594
+ case 5 /* RenderObjectType.TEXT */: {
595
+ const inst = {
596
+ renderPipeId: 'text',
597
+ renderable: obj,
598
+ offsetX: 0,
599
+ offsetY: 0,
600
+ };
601
+ this._textPipe.execute(inst, buffer);
602
+ drawCalls++;
603
+ break;
604
+ }
605
+ case 4 /* RenderObjectType.SPRITE */: {
606
+ const sprite = obj;
607
+ if (sprite.graphics && sprite.graphics.commands.length > 0) {
608
+ const inst = {
609
+ renderPipeId: 'graphics',
610
+ renderable: obj,
611
+ graphics: sprite.graphics,
612
+ offsetX: 0,
613
+ offsetY: 0,
614
+ };
615
+ this._graphicsPipe.execute(inst, buffer);
616
+ drawCalls++;
617
+ }
618
+ break;
619
+ }
620
+ }
621
+ if (offsetX !== 0 || offsetY !== 0) {
622
+ buffer.globalMatrix.append(1, 0, 0, 1, -offsetX, -offsetY);
623
+ }
624
+ const children = obj.children;
625
+ if (!children)
626
+ return drawCalls;
627
+ for (const child of children) {
628
+ if (child.renderMode === 1 /* RenderMode.NONE */)
629
+ continue;
630
+ let ox, oy;
631
+ let savedMatrix;
632
+ if (child.useTranslate) {
633
+ const m = child.getMatrix();
634
+ ox = offsetX + child.internalX;
635
+ oy = offsetY + child.internalY;
636
+ savedMatrix = Matrix.create();
637
+ savedMatrix.copyFrom(buffer.globalMatrix);
638
+ buffer.transform(m.a, m.b, m.c, m.d, ox, oy);
639
+ ox = -child.internalAnchorOffsetX;
640
+ oy = -child.internalAnchorOffsetY;
641
+ }
642
+ else {
643
+ ox = offsetX + child.internalX - child.internalAnchorOffsetX;
644
+ oy = offsetY + child.internalY - child.internalAnchorOffsetY;
645
+ }
646
+ const prevAlpha = buffer.globalAlpha;
647
+ if (child.internalAlpha !== 1)
648
+ buffer.globalAlpha *= child.internalAlpha;
649
+ const prevTint = buffer.globalTintColor;
650
+ if (child.tintRGB !== 0xffffff)
651
+ buffer.globalTintColor = child.tintRGB;
652
+ drawCalls += this._directDraw(child, buffer, ox, oy);
653
+ buffer.globalAlpha = prevAlpha;
654
+ buffer.globalTintColor = prevTint;
655
+ if (savedMatrix) {
656
+ buffer.globalMatrix.copyFrom(savedMatrix);
657
+ Matrix.release(savedMatrix);
658
+ }
659
+ }
660
+ return drawCalls;
661
+ }
662
+ // ── Structure dirty notification ──────────────────────────────────────────
663
+ /**
664
+ * Call this when the scene graph structure changes (child added/removed,
665
+ * visibility toggled, filter added, etc.) to trigger a full rebuild next frame.
666
+ *
667
+ * If `owner` is provided and is a RenderGroup, only that group's set is
668
+ * marked dirty — the parent set is left untouched.
669
+ */
670
+ markStructureDirty(owner) {
671
+ if (owner?.isRenderGroup) {
672
+ const groupSet = this._renderGroupSets.get(owner);
673
+ if (groupSet) {
674
+ groupSet.structureDirty = true;
675
+ return;
676
+ }
677
+ }
678
+ this._instructionSet.structureDirty = true;
679
+ // When no specific owner is given (e.g. context restored), mark ALL
680
+ // RenderGroup sets dirty so they also rebuild with fresh texture refs.
681
+ if (!owner) {
682
+ for (let i = this._renderGroupSetList.length - 1; i >= 0; i--) {
683
+ const container = this._renderGroupSetList[i].deref();
684
+ if (!container) {
685
+ // GC'd — remove dead entry.
686
+ this._renderGroupSetList.splice(i, 1);
687
+ continue;
688
+ }
689
+ const groupSet = this._renderGroupSets.get(container);
690
+ if (groupSet)
691
+ groupSet.structureDirty = true;
692
+ }
693
+ }
694
+ }
695
+ /**
696
+ * @internal Called by Player when a DisplayObject's data changes but the
697
+ * scene structure is stable. Queues the object for a transform-snapshot
698
+ * update instead of a full rebuild.
699
+ *
700
+ * Routes to the RenderGroup's set if the object lives inside one.
701
+ */
702
+ markRenderableDirty(obj) {
703
+ // Walk up to find the nearest RenderGroup ancestor (if any).
704
+ let p = obj.internalParent;
705
+ while (p) {
706
+ if (p instanceof DisplayObjectContainer && p.isRenderGroup) {
707
+ const groupSet = this._renderGroupSets.get(p);
708
+ if (groupSet) {
709
+ if (!groupSet.structureDirty)
710
+ groupSet.markRenderableDirty(obj);
711
+ return;
712
+ }
713
+ }
714
+ p = p.internalParent;
715
+ }
716
+ // No RenderGroup ancestor — route to the root set.
717
+ if (!this._instructionSet.structureDirty)
718
+ this._instructionSet.markRenderableDirty(obj);
719
+ }
720
+ }
721
+ //# sourceMappingURL=WebGLRenderer.js.map