@blakron/core 0.2.4

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 (498) hide show
  1. package/README.md +123 -0
  2. package/dist/heron/benchmark/BenchmarkRunner.d.ts +60 -0
  3. package/dist/heron/benchmark/BenchmarkRunner.d.ts.map +1 -0
  4. package/dist/heron/benchmark/BenchmarkRunner.js +112 -0
  5. package/dist/heron/benchmark/BenchmarkRunner.js.map +1 -0
  6. package/dist/heron/benchmark/MetricsCollector.d.ts +34 -0
  7. package/dist/heron/benchmark/MetricsCollector.d.ts.map +1 -0
  8. package/dist/heron/benchmark/MetricsCollector.js +123 -0
  9. package/dist/heron/benchmark/MetricsCollector.js.map +1 -0
  10. package/dist/heron/benchmark/PerfPanel.d.ts +24 -0
  11. package/dist/heron/benchmark/PerfPanel.d.ts.map +1 -0
  12. package/dist/heron/benchmark/PerfPanel.js +131 -0
  13. package/dist/heron/benchmark/PerfPanel.js.map +1 -0
  14. package/dist/heron/benchmark/ReportExporter.d.ts +8 -0
  15. package/dist/heron/benchmark/ReportExporter.d.ts.map +1 -0
  16. package/dist/heron/benchmark/ReportExporter.js +54 -0
  17. package/dist/heron/benchmark/ReportExporter.js.map +1 -0
  18. package/dist/heron/benchmark/SceneRegistry.d.ts +16 -0
  19. package/dist/heron/benchmark/SceneRegistry.d.ts.map +1 -0
  20. package/dist/heron/benchmark/SceneRegistry.js +233 -0
  21. package/dist/heron/benchmark/SceneRegistry.js.map +1 -0
  22. package/dist/heron/benchmark/types.d.ts +47 -0
  23. package/dist/heron/benchmark/types.d.ts.map +1 -0
  24. package/dist/heron/benchmark/types.js +2 -0
  25. package/dist/heron/benchmark/types.js.map +1 -0
  26. package/dist/heron/display/Bitmap.d.ts +53 -0
  27. package/dist/heron/display/Bitmap.d.ts.map +1 -0
  28. package/dist/heron/display/Bitmap.js +176 -0
  29. package/dist/heron/display/Bitmap.js.map +1 -0
  30. package/dist/heron/display/DisplayObject.d.ts +206 -0
  31. package/dist/heron/display/DisplayObject.d.ts.map +1 -0
  32. package/dist/heron/display/DisplayObject.js +827 -0
  33. package/dist/heron/display/DisplayObject.js.map +1 -0
  34. package/dist/heron/display/DisplayObjectContainer.d.ts +57 -0
  35. package/dist/heron/display/DisplayObjectContainer.d.ts.map +1 -0
  36. package/dist/heron/display/DisplayObjectContainer.js +348 -0
  37. package/dist/heron/display/DisplayObjectContainer.js.map +1 -0
  38. package/dist/heron/display/Graphics.d.ts +49 -0
  39. package/dist/heron/display/Graphics.d.ts.map +1 -0
  40. package/dist/heron/display/Graphics.js +315 -0
  41. package/dist/heron/display/Graphics.js.map +1 -0
  42. package/dist/heron/display/GraphicsPath.d.ts +112 -0
  43. package/dist/heron/display/GraphicsPath.d.ts.map +1 -0
  44. package/dist/heron/display/GraphicsPath.js +2 -0
  45. package/dist/heron/display/GraphicsPath.js.map +1 -0
  46. package/dist/heron/display/Mesh.d.ts +21 -0
  47. package/dist/heron/display/Mesh.d.ts.map +1 -0
  48. package/dist/heron/display/Mesh.js +56 -0
  49. package/dist/heron/display/Mesh.js.map +1 -0
  50. package/dist/heron/display/Shape.d.ts +12 -0
  51. package/dist/heron/display/Shape.d.ts.map +1 -0
  52. package/dist/heron/display/Shape.js +35 -0
  53. package/dist/heron/display/Shape.js.map +1 -0
  54. package/dist/heron/display/Sprite.d.ts +13 -0
  55. package/dist/heron/display/Sprite.d.ts.map +1 -0
  56. package/dist/heron/display/Sprite.js +37 -0
  57. package/dist/heron/display/Sprite.js.map +1 -0
  58. package/dist/heron/display/Stage.d.ts +45 -0
  59. package/dist/heron/display/Stage.d.ts.map +1 -0
  60. package/dist/heron/display/Stage.js +107 -0
  61. package/dist/heron/display/Stage.js.map +1 -0
  62. package/dist/heron/display/enums/BitmapFillMode.d.ts +7 -0
  63. package/dist/heron/display/enums/BitmapFillMode.d.ts.map +1 -0
  64. package/dist/heron/display/enums/BitmapFillMode.js +6 -0
  65. package/dist/heron/display/enums/BitmapFillMode.js.map +1 -0
  66. package/dist/heron/display/enums/BlendMode.d.ts +24 -0
  67. package/dist/heron/display/enums/BlendMode.d.ts.map +1 -0
  68. package/dist/heron/display/enums/BlendMode.js +31 -0
  69. package/dist/heron/display/enums/BlendMode.js.map +1 -0
  70. package/dist/heron/display/enums/CapsStyle.d.ts +7 -0
  71. package/dist/heron/display/enums/CapsStyle.d.ts.map +1 -0
  72. package/dist/heron/display/enums/CapsStyle.js +6 -0
  73. package/dist/heron/display/enums/CapsStyle.js.map +1 -0
  74. package/dist/heron/display/enums/GradientType.d.ts +6 -0
  75. package/dist/heron/display/enums/GradientType.d.ts.map +1 -0
  76. package/dist/heron/display/enums/GradientType.js +5 -0
  77. package/dist/heron/display/enums/GradientType.js.map +1 -0
  78. package/dist/heron/display/enums/JointStyle.d.ts +7 -0
  79. package/dist/heron/display/enums/JointStyle.d.ts.map +1 -0
  80. package/dist/heron/display/enums/JointStyle.js +6 -0
  81. package/dist/heron/display/enums/JointStyle.js.map +1 -0
  82. package/dist/heron/display/enums/OrientationMode.d.ts +8 -0
  83. package/dist/heron/display/enums/OrientationMode.d.ts.map +1 -0
  84. package/dist/heron/display/enums/OrientationMode.js +7 -0
  85. package/dist/heron/display/enums/OrientationMode.js.map +1 -0
  86. package/dist/heron/display/enums/StageScaleMode.d.ts +12 -0
  87. package/dist/heron/display/enums/StageScaleMode.d.ts.map +1 -0
  88. package/dist/heron/display/enums/StageScaleMode.js +11 -0
  89. package/dist/heron/display/enums/StageScaleMode.js.map +1 -0
  90. package/dist/heron/display/enums/index.d.ts +8 -0
  91. package/dist/heron/display/enums/index.d.ts.map +1 -0
  92. package/dist/heron/display/enums/index.js +8 -0
  93. package/dist/heron/display/enums/index.js.map +1 -0
  94. package/dist/heron/display/index.d.ts +21 -0
  95. package/dist/heron/display/index.d.ts.map +1 -0
  96. package/dist/heron/display/index.js +20 -0
  97. package/dist/heron/display/index.js.map +1 -0
  98. package/dist/heron/display/texture/BitmapData.d.ts +37 -0
  99. package/dist/heron/display/texture/BitmapData.d.ts.map +1 -0
  100. package/dist/heron/display/texture/BitmapData.js +144 -0
  101. package/dist/heron/display/texture/BitmapData.js.map +1 -0
  102. package/dist/heron/display/texture/RenderTexture.d.ts +13 -0
  103. package/dist/heron/display/texture/RenderTexture.d.ts.map +1 -0
  104. package/dist/heron/display/texture/RenderTexture.js +51 -0
  105. package/dist/heron/display/texture/RenderTexture.js.map +1 -0
  106. package/dist/heron/display/texture/SpriteSheet.d.ts +13 -0
  107. package/dist/heron/display/texture/SpriteSheet.d.ts.map +1 -0
  108. package/dist/heron/display/texture/SpriteSheet.js +34 -0
  109. package/dist/heron/display/texture/SpriteSheet.js.map +1 -0
  110. package/dist/heron/display/texture/Texture.d.ts +33 -0
  111. package/dist/heron/display/texture/Texture.d.ts.map +1 -0
  112. package/dist/heron/display/texture/Texture.js +77 -0
  113. package/dist/heron/display/texture/Texture.js.map +1 -0
  114. package/dist/heron/display/texture/index.d.ts +5 -0
  115. package/dist/heron/display/texture/index.d.ts.map +1 -0
  116. package/dist/heron/display/texture/index.js +5 -0
  117. package/dist/heron/display/texture/index.js.map +1 -0
  118. package/dist/heron/events/Event.d.ts +57 -0
  119. package/dist/heron/events/Event.d.ts.map +1 -0
  120. package/dist/heron/events/Event.js +139 -0
  121. package/dist/heron/events/Event.js.map +1 -0
  122. package/dist/heron/events/EventDispatcher.d.ts +23 -0
  123. package/dist/heron/events/EventDispatcher.d.ts.map +1 -0
  124. package/dist/heron/events/EventDispatcher.js +123 -0
  125. package/dist/heron/events/EventDispatcher.js.map +1 -0
  126. package/dist/heron/events/EventPhase.d.ts +6 -0
  127. package/dist/heron/events/EventPhase.d.ts.map +1 -0
  128. package/dist/heron/events/EventPhase.js +2 -0
  129. package/dist/heron/events/EventPhase.js.map +1 -0
  130. package/dist/heron/events/FocusEvent.d.ts +7 -0
  131. package/dist/heron/events/FocusEvent.d.ts.map +1 -0
  132. package/dist/heron/events/FocusEvent.js +11 -0
  133. package/dist/heron/events/FocusEvent.js.map +1 -0
  134. package/dist/heron/events/HTTPStatusEvent.d.ts +10 -0
  135. package/dist/heron/events/HTTPStatusEvent.d.ts.map +1 -0
  136. package/dist/heron/events/HTTPStatusEvent.js +24 -0
  137. package/dist/heron/events/HTTPStatusEvent.js.map +1 -0
  138. package/dist/heron/events/IEventDispatcher.d.ts +11 -0
  139. package/dist/heron/events/IEventDispatcher.d.ts.map +1 -0
  140. package/dist/heron/events/IEventDispatcher.js +2 -0
  141. package/dist/heron/events/IEventDispatcher.js.map +1 -0
  142. package/dist/heron/events/IOErrorEvent.d.ts +8 -0
  143. package/dist/heron/events/IOErrorEvent.d.ts.map +1 -0
  144. package/dist/heron/events/IOErrorEvent.js +17 -0
  145. package/dist/heron/events/IOErrorEvent.js.map +1 -0
  146. package/dist/heron/events/ProgressEvent.d.ts +11 -0
  147. package/dist/heron/events/ProgressEvent.d.ts.map +1 -0
  148. package/dist/heron/events/ProgressEvent.js +25 -0
  149. package/dist/heron/events/ProgressEvent.js.map +1 -0
  150. package/dist/heron/events/StageOrientationEvent.d.ts +8 -0
  151. package/dist/heron/events/StageOrientationEvent.d.ts.map +1 -0
  152. package/dist/heron/events/StageOrientationEvent.js +17 -0
  153. package/dist/heron/events/StageOrientationEvent.js.map +1 -0
  154. package/dist/heron/events/TextEvent.d.ts +9 -0
  155. package/dist/heron/events/TextEvent.d.ts.map +1 -0
  156. package/dist/heron/events/TextEvent.js +21 -0
  157. package/dist/heron/events/TextEvent.js.map +1 -0
  158. package/dist/heron/events/TimerEvent.d.ts +14 -0
  159. package/dist/heron/events/TimerEvent.d.ts.map +1 -0
  160. package/dist/heron/events/TimerEvent.js +27 -0
  161. package/dist/heron/events/TimerEvent.js.map +1 -0
  162. package/dist/heron/events/TouchEvent.d.ts +32 -0
  163. package/dist/heron/events/TouchEvent.d.ts.map +1 -0
  164. package/dist/heron/events/TouchEvent.js +85 -0
  165. package/dist/heron/events/TouchEvent.js.map +1 -0
  166. package/dist/heron/events/index.d.ts +13 -0
  167. package/dist/heron/events/index.d.ts.map +1 -0
  168. package/dist/heron/events/index.js +11 -0
  169. package/dist/heron/events/index.js.map +1 -0
  170. package/dist/heron/external/ExternalInterface.d.ts +18 -0
  171. package/dist/heron/external/ExternalInterface.d.ts.map +1 -0
  172. package/dist/heron/external/ExternalInterface.js +23 -0
  173. package/dist/heron/external/ExternalInterface.js.map +1 -0
  174. package/dist/heron/external/index.d.ts +2 -0
  175. package/dist/heron/external/index.d.ts.map +1 -0
  176. package/dist/heron/external/index.js +2 -0
  177. package/dist/heron/external/index.js.map +1 -0
  178. package/dist/heron/filters/BlurFilter.d.ts +16 -0
  179. package/dist/heron/filters/BlurFilter.d.ts.map +1 -0
  180. package/dist/heron/filters/BlurFilter.js +56 -0
  181. package/dist/heron/filters/BlurFilter.js.map +1 -0
  182. package/dist/heron/filters/ColorMatrixFilter.d.ts +10 -0
  183. package/dist/heron/filters/ColorMatrixFilter.d.ts.map +1 -0
  184. package/dist/heron/filters/ColorMatrixFilter.js +51 -0
  185. package/dist/heron/filters/ColorMatrixFilter.js.map +1 -0
  186. package/dist/heron/filters/CustomFilter.d.ts +12 -0
  187. package/dist/heron/filters/CustomFilter.d.ts.map +1 -0
  188. package/dist/heron/filters/CustomFilter.js +43 -0
  189. package/dist/heron/filters/CustomFilter.js.map +1 -0
  190. package/dist/heron/filters/DropShadowFilter.d.ts +16 -0
  191. package/dist/heron/filters/DropShadowFilter.d.ts.map +1 -0
  192. package/dist/heron/filters/DropShadowFilter.js +76 -0
  193. package/dist/heron/filters/DropShadowFilter.js.map +1 -0
  194. package/dist/heron/filters/Filter.d.ts +20 -0
  195. package/dist/heron/filters/Filter.d.ts.map +1 -0
  196. package/dist/heron/filters/Filter.js +27 -0
  197. package/dist/heron/filters/Filter.js.map +1 -0
  198. package/dist/heron/filters/GlowFilter.d.ts +34 -0
  199. package/dist/heron/filters/GlowFilter.d.ts.map +1 -0
  200. package/dist/heron/filters/GlowFilter.js +131 -0
  201. package/dist/heron/filters/GlowFilter.js.map +1 -0
  202. package/dist/heron/filters/index.d.ts +7 -0
  203. package/dist/heron/filters/index.d.ts.map +1 -0
  204. package/dist/heron/filters/index.js +7 -0
  205. package/dist/heron/filters/index.js.map +1 -0
  206. package/dist/heron/geom/Matrix.d.ts +51 -0
  207. package/dist/heron/geom/Matrix.d.ts.map +1 -0
  208. package/dist/heron/geom/Matrix.js +312 -0
  209. package/dist/heron/geom/Matrix.js.map +1 -0
  210. package/dist/heron/geom/Point.d.ts +24 -0
  211. package/dist/heron/geom/Point.d.ts.map +1 -0
  212. package/dist/heron/geom/Point.js +75 -0
  213. package/dist/heron/geom/Point.js.map +1 -0
  214. package/dist/heron/geom/Rectangle.d.ts +48 -0
  215. package/dist/heron/geom/Rectangle.d.ts.map +1 -0
  216. package/dist/heron/geom/Rectangle.js +176 -0
  217. package/dist/heron/geom/Rectangle.js.map +1 -0
  218. package/dist/heron/geom/index.d.ts +4 -0
  219. package/dist/heron/geom/index.d.ts.map +1 -0
  220. package/dist/heron/geom/index.js +4 -0
  221. package/dist/heron/geom/index.js.map +1 -0
  222. package/dist/heron/localStorage/index.d.ts +2 -0
  223. package/dist/heron/localStorage/index.d.ts.map +1 -0
  224. package/dist/heron/localStorage/index.js +2 -0
  225. package/dist/heron/localStorage/index.js.map +1 -0
  226. package/dist/heron/localStorage/localStorage.d.ts +5 -0
  227. package/dist/heron/localStorage/localStorage.d.ts.map +1 -0
  228. package/dist/heron/localStorage/localStorage.js +19 -0
  229. package/dist/heron/localStorage/localStorage.js.map +1 -0
  230. package/dist/heron/media/Sound.d.ts +26 -0
  231. package/dist/heron/media/Sound.d.ts.map +1 -0
  232. package/dist/heron/media/Sound.js +145 -0
  233. package/dist/heron/media/Sound.js.map +1 -0
  234. package/dist/heron/media/SoundChannel.d.ts +28 -0
  235. package/dist/heron/media/SoundChannel.d.ts.map +1 -0
  236. package/dist/heron/media/SoundChannel.js +117 -0
  237. package/dist/heron/media/SoundChannel.js.map +1 -0
  238. package/dist/heron/media/Video.d.ts +50 -0
  239. package/dist/heron/media/Video.d.ts.map +1 -0
  240. package/dist/heron/media/Video.js +249 -0
  241. package/dist/heron/media/Video.js.map +1 -0
  242. package/dist/heron/media/index.d.ts +4 -0
  243. package/dist/heron/media/index.d.ts.map +1 -0
  244. package/dist/heron/media/index.js +4 -0
  245. package/dist/heron/media/index.js.map +1 -0
  246. package/dist/heron/net/HttpMethod.d.ts +6 -0
  247. package/dist/heron/net/HttpMethod.d.ts.map +1 -0
  248. package/dist/heron/net/HttpMethod.js +5 -0
  249. package/dist/heron/net/HttpMethod.js.map +1 -0
  250. package/dist/heron/net/HttpRequest.d.ts +19 -0
  251. package/dist/heron/net/HttpRequest.d.ts.map +1 -0
  252. package/dist/heron/net/HttpRequest.js +63 -0
  253. package/dist/heron/net/HttpRequest.js.map +1 -0
  254. package/dist/heron/net/HttpResponseType.d.ts +6 -0
  255. package/dist/heron/net/HttpResponseType.d.ts.map +1 -0
  256. package/dist/heron/net/HttpResponseType.js +5 -0
  257. package/dist/heron/net/HttpResponseType.js.map +1 -0
  258. package/dist/heron/net/ImageLoader.d.ts +10 -0
  259. package/dist/heron/net/ImageLoader.d.ts.map +1 -0
  260. package/dist/heron/net/ImageLoader.js +32 -0
  261. package/dist/heron/net/ImageLoader.js.map +1 -0
  262. package/dist/heron/net/index.d.ts +7 -0
  263. package/dist/heron/net/index.d.ts.map +1 -0
  264. package/dist/heron/net/index.js +5 -0
  265. package/dist/heron/net/index.js.map +1 -0
  266. package/dist/heron/player/CanvasRenderer.d.ts +49 -0
  267. package/dist/heron/player/CanvasRenderer.d.ts.map +1 -0
  268. package/dist/heron/player/CanvasRenderer.js +767 -0
  269. package/dist/heron/player/CanvasRenderer.js.map +1 -0
  270. package/dist/heron/player/DisplayList.d.ts +32 -0
  271. package/dist/heron/player/DisplayList.d.ts.map +1 -0
  272. package/dist/heron/player/DisplayList.js +78 -0
  273. package/dist/heron/player/DisplayList.js.map +1 -0
  274. package/dist/heron/player/HeronOptions.d.ts +25 -0
  275. package/dist/heron/player/HeronOptions.d.ts.map +1 -0
  276. package/dist/heron/player/HeronOptions.js +2 -0
  277. package/dist/heron/player/HeronOptions.js.map +1 -0
  278. package/dist/heron/player/InstructionSet.d.ts +49 -0
  279. package/dist/heron/player/InstructionSet.d.ts.map +1 -0
  280. package/dist/heron/player/InstructionSet.js +45 -0
  281. package/dist/heron/player/InstructionSet.js.map +1 -0
  282. package/dist/heron/player/Player.d.ts +45 -0
  283. package/dist/heron/player/Player.d.ts.map +1 -0
  284. package/dist/heron/player/Player.js +149 -0
  285. package/dist/heron/player/Player.js.map +1 -0
  286. package/dist/heron/player/RenderBuffer.d.ts +35 -0
  287. package/dist/heron/player/RenderBuffer.d.ts.map +1 -0
  288. package/dist/heron/player/RenderBuffer.js +81 -0
  289. package/dist/heron/player/RenderBuffer.js.map +1 -0
  290. package/dist/heron/player/RenderPipe.d.ts +33 -0
  291. package/dist/heron/player/RenderPipe.d.ts.map +1 -0
  292. package/dist/heron/player/RenderPipe.js +2 -0
  293. package/dist/heron/player/RenderPipe.js.map +1 -0
  294. package/dist/heron/player/ScreenAdapter.d.ts +29 -0
  295. package/dist/heron/player/ScreenAdapter.d.ts.map +1 -0
  296. package/dist/heron/player/ScreenAdapter.js +127 -0
  297. package/dist/heron/player/ScreenAdapter.js.map +1 -0
  298. package/dist/heron/player/SystemTicker.d.ts +63 -0
  299. package/dist/heron/player/SystemTicker.d.ts.map +1 -0
  300. package/dist/heron/player/SystemTicker.js +207 -0
  301. package/dist/heron/player/SystemTicker.js.map +1 -0
  302. package/dist/heron/player/TouchHandler.d.ts +39 -0
  303. package/dist/heron/player/TouchHandler.d.ts.map +1 -0
  304. package/dist/heron/player/TouchHandler.js +149 -0
  305. package/dist/heron/player/TouchHandler.js.map +1 -0
  306. package/dist/heron/player/createPlayer.d.ts +35 -0
  307. package/dist/heron/player/createPlayer.d.ts.map +1 -0
  308. package/dist/heron/player/createPlayer.js +74 -0
  309. package/dist/heron/player/createPlayer.js.map +1 -0
  310. package/dist/heron/player/index.d.ts +13 -0
  311. package/dist/heron/player/index.d.ts.map +1 -0
  312. package/dist/heron/player/index.js +16 -0
  313. package/dist/heron/player/index.js.map +1 -0
  314. package/dist/heron/player/pipes/BitmapPipe.d.ts +35 -0
  315. package/dist/heron/player/pipes/BitmapPipe.d.ts.map +1 -0
  316. package/dist/heron/player/pipes/BitmapPipe.js +130 -0
  317. package/dist/heron/player/pipes/BitmapPipe.js.map +1 -0
  318. package/dist/heron/player/pipes/FilterPipe.d.ts +68 -0
  319. package/dist/heron/player/pipes/FilterPipe.d.ts.map +1 -0
  320. package/dist/heron/player/pipes/FilterPipe.js +157 -0
  321. package/dist/heron/player/pipes/FilterPipe.js.map +1 -0
  322. package/dist/heron/player/pipes/GraphicsPipe.d.ts +36 -0
  323. package/dist/heron/player/pipes/GraphicsPipe.d.ts.map +1 -0
  324. package/dist/heron/player/pipes/GraphicsPipe.js +126 -0
  325. package/dist/heron/player/pipes/GraphicsPipe.js.map +1 -0
  326. package/dist/heron/player/pipes/MaskPipe.d.ts +58 -0
  327. package/dist/heron/player/pipes/MaskPipe.d.ts.map +1 -0
  328. package/dist/heron/player/pipes/MaskPipe.js +185 -0
  329. package/dist/heron/player/pipes/MaskPipe.js.map +1 -0
  330. package/dist/heron/player/pipes/MeshPipe.d.ts +22 -0
  331. package/dist/heron/player/pipes/MeshPipe.d.ts.map +1 -0
  332. package/dist/heron/player/pipes/MeshPipe.js +50 -0
  333. package/dist/heron/player/pipes/MeshPipe.js.map +1 -0
  334. package/dist/heron/player/pipes/TextPipe.d.ts +52 -0
  335. package/dist/heron/player/pipes/TextPipe.d.ts.map +1 -0
  336. package/dist/heron/player/pipes/TextPipe.js +163 -0
  337. package/dist/heron/player/pipes/TextPipe.js.map +1 -0
  338. package/dist/heron/player/webgl/MultiTextureBatcher.d.ts +37 -0
  339. package/dist/heron/player/webgl/MultiTextureBatcher.d.ts.map +1 -0
  340. package/dist/heron/player/webgl/MultiTextureBatcher.js +63 -0
  341. package/dist/heron/player/webgl/MultiTextureBatcher.js.map +1 -0
  342. package/dist/heron/player/webgl/ShaderLib.d.ts +34 -0
  343. package/dist/heron/player/webgl/ShaderLib.d.ts.map +1 -0
  344. package/dist/heron/player/webgl/ShaderLib.js +268 -0
  345. package/dist/heron/player/webgl/ShaderLib.js.map +1 -0
  346. package/dist/heron/player/webgl/WebGLDrawCmdManager.d.ts +58 -0
  347. package/dist/heron/player/webgl/WebGLDrawCmdManager.d.ts.map +1 -0
  348. package/dist/heron/player/webgl/WebGLDrawCmdManager.js +197 -0
  349. package/dist/heron/player/webgl/WebGLDrawCmdManager.js.map +1 -0
  350. package/dist/heron/player/webgl/WebGLProgram.d.ts +14 -0
  351. package/dist/heron/player/webgl/WebGLProgram.d.ts.map +1 -0
  352. package/dist/heron/player/webgl/WebGLProgram.js +32 -0
  353. package/dist/heron/player/webgl/WebGLProgram.js.map +1 -0
  354. package/dist/heron/player/webgl/WebGLRenderBuffer.d.ts +52 -0
  355. package/dist/heron/player/webgl/WebGLRenderBuffer.d.ts.map +1 -0
  356. package/dist/heron/player/webgl/WebGLRenderBuffer.js +227 -0
  357. package/dist/heron/player/webgl/WebGLRenderBuffer.js.map +1 -0
  358. package/dist/heron/player/webgl/WebGLRenderContext.d.ts +114 -0
  359. package/dist/heron/player/webgl/WebGLRenderContext.d.ts.map +1 -0
  360. package/dist/heron/player/webgl/WebGLRenderContext.js +852 -0
  361. package/dist/heron/player/webgl/WebGLRenderContext.js.map +1 -0
  362. package/dist/heron/player/webgl/WebGLRenderTarget.d.ts +19 -0
  363. package/dist/heron/player/webgl/WebGLRenderTarget.d.ts.map +1 -0
  364. package/dist/heron/player/webgl/WebGLRenderTarget.js +90 -0
  365. package/dist/heron/player/webgl/WebGLRenderTarget.js.map +1 -0
  366. package/dist/heron/player/webgl/WebGLRenderer.d.ts +91 -0
  367. package/dist/heron/player/webgl/WebGLRenderer.d.ts.map +1 -0
  368. package/dist/heron/player/webgl/WebGLRenderer.js +721 -0
  369. package/dist/heron/player/webgl/WebGLRenderer.js.map +1 -0
  370. package/dist/heron/player/webgl/WebGLUtils.d.ts +11 -0
  371. package/dist/heron/player/webgl/WebGLUtils.d.ts.map +1 -0
  372. package/dist/heron/player/webgl/WebGLUtils.js +57 -0
  373. package/dist/heron/player/webgl/WebGLUtils.js.map +1 -0
  374. package/dist/heron/player/webgl/WebGLVertexArrayObject.d.ts +39 -0
  375. package/dist/heron/player/webgl/WebGLVertexArrayObject.d.ts.map +1 -0
  376. package/dist/heron/player/webgl/WebGLVertexArrayObject.js +367 -0
  377. package/dist/heron/player/webgl/WebGLVertexArrayObject.js.map +1 -0
  378. package/dist/heron/player/webgl/index.d.ts +11 -0
  379. package/dist/heron/player/webgl/index.d.ts.map +1 -0
  380. package/dist/heron/player/webgl/index.js +11 -0
  381. package/dist/heron/player/webgl/index.js.map +1 -0
  382. package/dist/heron/system/Capabilities.d.ts +46 -0
  383. package/dist/heron/system/Capabilities.d.ts.map +1 -0
  384. package/dist/heron/system/Capabilities.js +100 -0
  385. package/dist/heron/system/Capabilities.js.map +1 -0
  386. package/dist/heron/system/index.d.ts +2 -0
  387. package/dist/heron/system/index.d.ts.map +1 -0
  388. package/dist/heron/system/index.js +2 -0
  389. package/dist/heron/system/index.js.map +1 -0
  390. package/dist/heron/text/BitmapFont.d.ts +31 -0
  391. package/dist/heron/text/BitmapFont.d.ts.map +1 -0
  392. package/dist/heron/text/BitmapFont.js +86 -0
  393. package/dist/heron/text/BitmapFont.js.map +1 -0
  394. package/dist/heron/text/BitmapText.d.ts +56 -0
  395. package/dist/heron/text/BitmapText.d.ts.map +1 -0
  396. package/dist/heron/text/BitmapText.js +230 -0
  397. package/dist/heron/text/BitmapText.js.map +1 -0
  398. package/dist/heron/text/HtmlTextParser.d.ts +14 -0
  399. package/dist/heron/text/HtmlTextParser.d.ts.map +1 -0
  400. package/dist/heron/text/HtmlTextParser.js +147 -0
  401. package/dist/heron/text/HtmlTextParser.js.map +1 -0
  402. package/dist/heron/text/InputController.d.ts +29 -0
  403. package/dist/heron/text/InputController.d.ts.map +1 -0
  404. package/dist/heron/text/InputController.js +131 -0
  405. package/dist/heron/text/InputController.js.map +1 -0
  406. package/dist/heron/text/StageText.d.ts +53 -0
  407. package/dist/heron/text/StageText.d.ts.map +1 -0
  408. package/dist/heron/text/StageText.js +392 -0
  409. package/dist/heron/text/StageText.js.map +1 -0
  410. package/dist/heron/text/TextField.d.ts +145 -0
  411. package/dist/heron/text/TextField.d.ts.map +1 -0
  412. package/dist/heron/text/TextField.js +716 -0
  413. package/dist/heron/text/TextField.js.map +1 -0
  414. package/dist/heron/text/TextMeasurer.d.ts +9 -0
  415. package/dist/heron/text/TextMeasurer.d.ts.map +1 -0
  416. package/dist/heron/text/TextMeasurer.js +36 -0
  417. package/dist/heron/text/TextMeasurer.js.map +1 -0
  418. package/dist/heron/text/WordWrap.d.ts +15 -0
  419. package/dist/heron/text/WordWrap.d.ts.map +1 -0
  420. package/dist/heron/text/WordWrap.js +50 -0
  421. package/dist/heron/text/WordWrap.js.map +1 -0
  422. package/dist/heron/text/enums/HorizontalAlign.d.ts +9 -0
  423. package/dist/heron/text/enums/HorizontalAlign.d.ts.map +1 -0
  424. package/dist/heron/text/enums/HorizontalAlign.js +8 -0
  425. package/dist/heron/text/enums/HorizontalAlign.js.map +1 -0
  426. package/dist/heron/text/enums/TextFieldInputType.d.ts +7 -0
  427. package/dist/heron/text/enums/TextFieldInputType.d.ts.map +1 -0
  428. package/dist/heron/text/enums/TextFieldInputType.js +6 -0
  429. package/dist/heron/text/enums/TextFieldInputType.js.map +1 -0
  430. package/dist/heron/text/enums/TextFieldType.d.ts +6 -0
  431. package/dist/heron/text/enums/TextFieldType.d.ts.map +1 -0
  432. package/dist/heron/text/enums/TextFieldType.js +5 -0
  433. package/dist/heron/text/enums/TextFieldType.js.map +1 -0
  434. package/dist/heron/text/enums/VerticalAlign.d.ts +9 -0
  435. package/dist/heron/text/enums/VerticalAlign.d.ts.map +1 -0
  436. package/dist/heron/text/enums/VerticalAlign.js +8 -0
  437. package/dist/heron/text/enums/VerticalAlign.js.map +1 -0
  438. package/dist/heron/text/enums/index.d.ts +5 -0
  439. package/dist/heron/text/enums/index.d.ts.map +1 -0
  440. package/dist/heron/text/enums/index.js +5 -0
  441. package/dist/heron/text/enums/index.js.map +1 -0
  442. package/dist/heron/text/index.d.ts +14 -0
  443. package/dist/heron/text/index.d.ts.map +1 -0
  444. package/dist/heron/text/index.js +13 -0
  445. package/dist/heron/text/index.js.map +1 -0
  446. package/dist/heron/text/types/ITextElement.d.ts +31 -0
  447. package/dist/heron/text/types/ITextElement.d.ts.map +1 -0
  448. package/dist/heron/text/types/ITextElement.js +2 -0
  449. package/dist/heron/text/types/ITextElement.js.map +1 -0
  450. package/dist/heron/text/types/index.d.ts +2 -0
  451. package/dist/heron/text/types/index.d.ts.map +1 -0
  452. package/dist/heron/text/types/index.js +2 -0
  453. package/dist/heron/text/types/index.js.map +1 -0
  454. package/dist/heron/utils/Base64Util.d.ts +5 -0
  455. package/dist/heron/utils/Base64Util.d.ts.map +1 -0
  456. package/dist/heron/utils/Base64Util.js +45 -0
  457. package/dist/heron/utils/Base64Util.js.map +1 -0
  458. package/dist/heron/utils/ByteArray.d.ts +66 -0
  459. package/dist/heron/utils/ByteArray.d.ts.map +1 -0
  460. package/dist/heron/utils/ByteArray.js +303 -0
  461. package/dist/heron/utils/ByteArray.js.map +1 -0
  462. package/dist/heron/utils/DebugLog.d.ts +9 -0
  463. package/dist/heron/utils/DebugLog.d.ts.map +1 -0
  464. package/dist/heron/utils/DebugLog.js +25 -0
  465. package/dist/heron/utils/DebugLog.js.map +1 -0
  466. package/dist/heron/utils/FontManager.d.ts +11 -0
  467. package/dist/heron/utils/FontManager.d.ts.map +1 -0
  468. package/dist/heron/utils/FontManager.js +39 -0
  469. package/dist/heron/utils/FontManager.js.map +1 -0
  470. package/dist/heron/utils/HashObject.d.ts +9 -0
  471. package/dist/heron/utils/HashObject.d.ts.map +1 -0
  472. package/dist/heron/utils/HashObject.js +11 -0
  473. package/dist/heron/utils/HashObject.js.map +1 -0
  474. package/dist/heron/utils/Logger.d.ts +16 -0
  475. package/dist/heron/utils/Logger.d.ts.map +1 -0
  476. package/dist/heron/utils/Logger.js +26 -0
  477. package/dist/heron/utils/Logger.js.map +1 -0
  478. package/dist/heron/utils/NumberUtils.d.ts +15 -0
  479. package/dist/heron/utils/NumberUtils.d.ts.map +1 -0
  480. package/dist/heron/utils/NumberUtils.js +60 -0
  481. package/dist/heron/utils/NumberUtils.js.map +1 -0
  482. package/dist/heron/utils/Timer.d.ts +22 -0
  483. package/dist/heron/utils/Timer.d.ts.map +1 -0
  484. package/dist/heron/utils/Timer.js +67 -0
  485. package/dist/heron/utils/Timer.js.map +1 -0
  486. package/dist/heron/utils/index.d.ts +11 -0
  487. package/dist/heron/utils/index.d.ts.map +1 -0
  488. package/dist/heron/utils/index.js +10 -0
  489. package/dist/heron/utils/index.js.map +1 -0
  490. package/dist/heron/utils/toColorString.d.ts +2 -0
  491. package/dist/heron/utils/toColorString.d.ts.map +1 -0
  492. package/dist/heron/utils/toColorString.js +5 -0
  493. package/dist/heron/utils/toColorString.js.map +1 -0
  494. package/dist/index.d.ts +13 -0
  495. package/dist/index.d.ts.map +1 -0
  496. package/dist/index.js +13 -0
  497. package/dist/index.js.map +1 -0
  498. package/package.json +52 -0
@@ -0,0 +1,827 @@
1
+ import { EventDispatcher } from '../events/EventDispatcher.js';
2
+ import { Event } from '../events/Event.js';
3
+ import { Matrix, sharedMatrix } from '../geom/Matrix.js';
4
+ import { Rectangle, sharedRectangle } from '../geom/Rectangle.js';
5
+ import { DisplayList } from '../player/DisplayList.js';
6
+ import { blendModeToNumber, numberToBlendMode } from './enums/BlendMode.js';
7
+ function clampRotation(value) {
8
+ value %= 360;
9
+ if (value > 180) {
10
+ value -= 360;
11
+ }
12
+ else if (value < -180) {
13
+ value += 360;
14
+ }
15
+ return value;
16
+ }
17
+ export class DisplayObject extends EventDispatcher {
18
+ // ── Static fields ─────────────────────────────────────────────────────────
19
+ static defaultTouchEnabled = false;
20
+ static enterFrameCallBackList = [];
21
+ static renderCallBackList = [];
22
+ /**
23
+ * @internal
24
+ * Injected by Player at startup. Called when renderMode changes (visible,
25
+ * filters, mask, blendMode) so the WebGLRenderer can mark its InstructionSet dirty.
26
+ */
27
+ static _onStructureChange = undefined;
28
+ /**
29
+ * @internal
30
+ * Injected by Player at startup. Called when a DisplayObject's visual data
31
+ * changes (position, texture, alpha, tint) but the scene structure is unchanged.
32
+ * The renderer uses this to update the transform snapshot in the InstructionSet
33
+ * without doing a full rebuild.
34
+ */
35
+ static _onRenderableDirty = undefined;
36
+ /**
37
+ * @internal Register a structure-change listener. Returns an unregister function.
38
+ * Using a registration pattern instead of a single static field supports
39
+ * multiple Player instances on the same page.
40
+ */
41
+ static addStructureChangeListener(fn) {
42
+ const prev = DisplayObject._onStructureChange;
43
+ if (!prev) {
44
+ DisplayObject._onStructureChange = fn;
45
+ }
46
+ else {
47
+ DisplayObject._onStructureChange = () => {
48
+ prev();
49
+ fn();
50
+ };
51
+ }
52
+ return () => {
53
+ // Simple removal: if only one listener, clear; otherwise rebuild chain.
54
+ // For the common single-player case this is zero overhead.
55
+ if (DisplayObject._onStructureChange === fn) {
56
+ DisplayObject._onStructureChange = undefined;
57
+ }
58
+ };
59
+ }
60
+ /**
61
+ * @internal Register a renderable-dirty listener. Returns an unregister function.
62
+ */
63
+ static addRenderableDirtyListener(fn) {
64
+ const prev = DisplayObject._onRenderableDirty;
65
+ if (!prev) {
66
+ DisplayObject._onRenderableDirty = fn;
67
+ }
68
+ else {
69
+ DisplayObject._onRenderableDirty = obj => {
70
+ prev(obj);
71
+ fn(obj);
72
+ };
73
+ }
74
+ return () => {
75
+ if (DisplayObject._onRenderableDirty === fn) {
76
+ DisplayObject._onRenderableDirty = undefined;
77
+ }
78
+ };
79
+ }
80
+ // ── Instance fields ───────────────────────────────────────────────────────
81
+ // 场景图
82
+ hasAddToStage = false;
83
+ children;
84
+ internalParent;
85
+ internalStage;
86
+ nestLevel = 0;
87
+ // 变换
88
+ internalX = 0;
89
+ internalY = 0;
90
+ internalAnchorOffsetX = 0;
91
+ internalAnchorOffsetY = 0;
92
+ explicitWidth = NaN;
93
+ explicitHeight = NaN;
94
+ useTranslate = false;
95
+ // 外观
96
+ internalVisible = true;
97
+ internalAlpha = 1;
98
+ internalBlendMode = 0;
99
+ internalFilters = [];
100
+ internalCacheAsBitmap = false;
101
+ internalTouchEnabled = DisplayObject.defaultTouchEnabled;
102
+ // 遮罩
103
+ internalMask;
104
+ internalMaskRect;
105
+ internalScrollRect;
106
+ maskedObject;
107
+ // 渲染状态
108
+ renderMode;
109
+ renderObjectType = 0 /* RenderObjectType.NONE */;
110
+ renderDirty = false;
111
+ cacheDirty = false;
112
+ displayList;
113
+ // 世界缓存(markDirty 更新,O(1) 读取)
114
+ worldAlpha = 1;
115
+ worldTint = 0xffffff;
116
+ tintRGB = 0;
117
+ // 排序
118
+ sortDirty = false;
119
+ lastSortedIndex = 0;
120
+ // bounds 缓存
121
+ _boundsDirty = true;
122
+ _cachedBounds = new Rectangle();
123
+ // 私有
124
+ _name = '';
125
+ _matrix = new Matrix();
126
+ _matrixDirty = false;
127
+ _concatenatedMatrix;
128
+ _invertedConcatenatedMatrix;
129
+ _scaleX = 1;
130
+ _scaleY = 1;
131
+ _rotation = 0;
132
+ _skewX = 0;
133
+ _skewXdeg = 0;
134
+ _skewY = 0;
135
+ _skewYdeg = 0;
136
+ _tint = 0xffffff;
137
+ _zIndex = 0;
138
+ _sortableChildren = false;
139
+ _graphics;
140
+ // ── Constructor ───────────────────────────────────────────────────────────
141
+ constructor() {
142
+ super();
143
+ this.tint = 0xffffff;
144
+ }
145
+ // ── Getters / Setters ─────────────────────────────────────────────────────
146
+ get graphics() {
147
+ return this._graphics;
148
+ }
149
+ get name() {
150
+ return this._name;
151
+ }
152
+ set name(value) {
153
+ this._name = value;
154
+ }
155
+ get parent() {
156
+ return this.internalParent;
157
+ }
158
+ get stage() {
159
+ return this.internalStage;
160
+ }
161
+ get matrix() {
162
+ return this.getMatrix().clone();
163
+ }
164
+ set matrix(value) {
165
+ this.setMatrix(value);
166
+ }
167
+ get x() {
168
+ return this.internalX;
169
+ }
170
+ set x(value) {
171
+ this.setX(value);
172
+ }
173
+ get y() {
174
+ return this.internalY;
175
+ }
176
+ set y(value) {
177
+ this.setY(value);
178
+ }
179
+ get scaleX() {
180
+ return this._scaleX;
181
+ }
182
+ set scaleX(value) {
183
+ this.setScaleX(value);
184
+ }
185
+ get scaleY() {
186
+ return this._scaleY;
187
+ }
188
+ set scaleY(value) {
189
+ this.setScaleY(value);
190
+ }
191
+ get rotation() {
192
+ return this._rotation;
193
+ }
194
+ set rotation(value) {
195
+ this.setRotation(value);
196
+ }
197
+ get skewX() {
198
+ return this._skewXdeg;
199
+ }
200
+ set skewX(value) {
201
+ this.setSkewX(value);
202
+ }
203
+ get skewY() {
204
+ return this._skewYdeg;
205
+ }
206
+ set skewY(value) {
207
+ this.setSkewY(value);
208
+ }
209
+ get width() {
210
+ return isNaN(this.explicitWidth) ? this.getOriginalBounds().width : this.explicitWidth;
211
+ }
212
+ set width(value) {
213
+ this.explicitWidth = isNaN(value) ? NaN : value;
214
+ }
215
+ get height() {
216
+ return isNaN(this.explicitHeight) ? this.getOriginalBounds().height : this.explicitHeight;
217
+ }
218
+ set height(value) {
219
+ this.explicitHeight = isNaN(value) ? NaN : value;
220
+ }
221
+ get measuredWidth() {
222
+ return this.getOriginalBounds().width;
223
+ }
224
+ get measuredHeight() {
225
+ return this.getOriginalBounds().height;
226
+ }
227
+ get anchorOffsetX() {
228
+ return this.internalAnchorOffsetX;
229
+ }
230
+ set anchorOffsetX(value) {
231
+ this.setAnchorOffsetX(value);
232
+ }
233
+ get anchorOffsetY() {
234
+ return this.internalAnchorOffsetY;
235
+ }
236
+ set anchorOffsetY(value) {
237
+ this.setAnchorOffsetY(value);
238
+ }
239
+ get visible() {
240
+ return this.internalVisible;
241
+ }
242
+ set visible(value) {
243
+ this.setVisible(value);
244
+ }
245
+ get cacheAsBitmap() {
246
+ return this.internalCacheAsBitmap;
247
+ }
248
+ set cacheAsBitmap(value) {
249
+ this.internalCacheAsBitmap = value;
250
+ this.setHasDisplayList(value);
251
+ }
252
+ get filters() {
253
+ return this.internalFilters;
254
+ }
255
+ set filters(value) {
256
+ this.internalFilters = value ? [...value] : [];
257
+ this.updateRenderMode();
258
+ this.markDirty();
259
+ }
260
+ get alpha() {
261
+ return this.internalAlpha;
262
+ }
263
+ set alpha(value) {
264
+ this.setAlpha(value);
265
+ }
266
+ get touchEnabled() {
267
+ return this.internalTouchEnabled;
268
+ }
269
+ set touchEnabled(value) {
270
+ this.internalTouchEnabled = !!value;
271
+ }
272
+ get scrollRect() {
273
+ return this.internalScrollRect;
274
+ }
275
+ set scrollRect(value) {
276
+ this.setScrollRect(value);
277
+ }
278
+ get blendMode() {
279
+ return numberToBlendMode(this.internalBlendMode);
280
+ }
281
+ set blendMode(value) {
282
+ const mode = blendModeToNumber(value);
283
+ if (this.internalBlendMode === mode) {
284
+ return;
285
+ }
286
+ this.internalBlendMode = mode;
287
+ this.updateRenderMode();
288
+ this.markDirty();
289
+ }
290
+ get mask() {
291
+ return this.internalMask ?? this.internalMaskRect;
292
+ }
293
+ set mask(value) {
294
+ this.setMask(value);
295
+ }
296
+ get tint() {
297
+ return this._tint;
298
+ }
299
+ set tint(value) {
300
+ this._tint = typeof value === 'number' && value >= 0 && value <= 0xffffff ? value : 0xffffff;
301
+ this.tintRGB = (this._tint >> 16) + (this._tint & 0xff00) + ((this._tint & 0xff) << 16);
302
+ this.markDirty();
303
+ }
304
+ get zIndex() {
305
+ return this._zIndex;
306
+ }
307
+ set zIndex(value) {
308
+ this._zIndex = value;
309
+ if (this.parent) {
310
+ this.parent.sortDirty = true;
311
+ }
312
+ }
313
+ get sortableChildren() {
314
+ return this._sortableChildren;
315
+ }
316
+ set sortableChildren(value) {
317
+ this._sortableChildren = value;
318
+ }
319
+ // ── Public methods ────────────────────────────────────────────────────────
320
+ getBounds(resultRect, calculateAnchor = true) {
321
+ resultRect = this.getTransformedBoundsInternal(this, resultRect);
322
+ if (calculateAnchor) {
323
+ if (this.internalAnchorOffsetX !== 0) {
324
+ resultRect.x -= this.internalAnchorOffsetX;
325
+ }
326
+ if (this.internalAnchorOffsetY !== 0) {
327
+ resultRect.y -= this.internalAnchorOffsetY;
328
+ }
329
+ }
330
+ return resultRect;
331
+ }
332
+ getTransformedBounds(targetCoordinateSpace, resultRect) {
333
+ return this.getTransformedBoundsInternal(targetCoordinateSpace ?? this, resultRect);
334
+ }
335
+ globalToLocal(stageX = 0, stageY = 0, resultPoint) {
336
+ return this.getInvertedConcatenatedMatrix().transformPoint(stageX, stageY, resultPoint);
337
+ }
338
+ localToGlobal(localX = 0, localY = 0, resultPoint) {
339
+ return this.getConcatenatedMatrix().transformPoint(localX, localY, resultPoint);
340
+ }
341
+ hitTestPoint(x, y, shapeFlag) {
342
+ if (this._scaleX === 0 || this._scaleY === 0) {
343
+ return false;
344
+ }
345
+ const m = this.getInvertedConcatenatedMatrix();
346
+ const bounds = this.getBounds(undefined, false);
347
+ const localX = m.a * x + m.c * y + m.tx;
348
+ const localY = m.b * x + m.d * y + m.ty;
349
+ if (!bounds.contains(localX, localY)) {
350
+ return false;
351
+ }
352
+ const rect = this.internalScrollRect ?? this.internalMaskRect;
353
+ if (rect && !rect.contains(localX, localY)) {
354
+ return false;
355
+ }
356
+ if (!shapeFlag) {
357
+ return true;
358
+ }
359
+ // Pixel-perfect: delegate to hitTest which Shape/Sprite override
360
+ return this.hitTest(x, y) !== undefined;
361
+ }
362
+ sortChildren() {
363
+ this.sortDirty = false;
364
+ }
365
+ dispatchEvent(event) {
366
+ if (!event.bubbles) {
367
+ return super.dispatchEvent(event);
368
+ }
369
+ const list = this.getPropagationList(this);
370
+ const targetIndex = list.length * 0.5;
371
+ event.setDispatchContext(this, 2 /* EventPhase.AT_TARGET */);
372
+ this.dispatchPropagationEvent(event, list, targetIndex);
373
+ return !event.isDefaultPrevented();
374
+ }
375
+ willTrigger(type) {
376
+ let node = this;
377
+ while (node) {
378
+ if (node.hasEventListener(type)) {
379
+ return true;
380
+ }
381
+ node = node.internalParent;
382
+ }
383
+ return false;
384
+ }
385
+ addEventListener(type, listener, useCapture, priority) {
386
+ super.addEventListener(type, listener, useCapture, priority);
387
+ if (type === Event.ENTER_FRAME || type === Event.RENDER) {
388
+ const list = type === Event.ENTER_FRAME ? DisplayObject.enterFrameCallBackList : DisplayObject.renderCallBackList;
389
+ if (!list.includes(this)) {
390
+ list.push(this);
391
+ }
392
+ }
393
+ }
394
+ removeEventListener(type, listener, useCapture) {
395
+ super.removeEventListener(type, listener, useCapture);
396
+ if ((type === Event.ENTER_FRAME || type === Event.RENDER) && !this.hasEventListener(type)) {
397
+ const list = type === Event.ENTER_FRAME ? DisplayObject.enterFrameCallBackList : DisplayObject.renderCallBackList;
398
+ const index = list.indexOf(this);
399
+ if (index !== -1) {
400
+ list.splice(index, 1);
401
+ }
402
+ }
403
+ }
404
+ // ── Internal methods (used by subclasses and framework) ───────────────────
405
+ setParent(parent) {
406
+ this.internalParent = parent;
407
+ }
408
+ onAddToStage(stage, nestLevel) {
409
+ this.internalStage = stage;
410
+ this.nestLevel = nestLevel;
411
+ this.hasAddToStage = true;
412
+ }
413
+ onRemoveFromStage() {
414
+ this.nestLevel = 0;
415
+ this.internalStage = undefined;
416
+ }
417
+ getMatrix() {
418
+ if (this._matrixDirty) {
419
+ this._matrixDirty = false;
420
+ this._matrix.updateScaleAndRotation(this._scaleX, this._scaleY, this._skewX, this._skewY);
421
+ }
422
+ this._matrix.tx = this.internalX;
423
+ this._matrix.ty = this.internalY;
424
+ return this._matrix;
425
+ }
426
+ setMatrix(matrix, needUpdateProperties = true) {
427
+ const m = this._matrix;
428
+ m.a = matrix.a;
429
+ m.b = matrix.b;
430
+ m.c = matrix.c;
431
+ m.d = matrix.d;
432
+ this.internalX = matrix.tx;
433
+ this.internalY = matrix.ty;
434
+ this._matrixDirty = false;
435
+ this.useTranslate = !(m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1);
436
+ if (needUpdateProperties) {
437
+ this._scaleX = m.getScaleX();
438
+ this._scaleY = m.getScaleY();
439
+ this._skewX = matrix.getSkewX();
440
+ this._skewY = matrix.getSkewY();
441
+ this._skewXdeg = clampRotation((this._skewX * 180) / Math.PI);
442
+ this._skewYdeg = clampRotation((this._skewY * 180) / Math.PI);
443
+ this._rotation = clampRotation((this._skewY * 180) / Math.PI);
444
+ }
445
+ this.markDirty();
446
+ }
447
+ getConcatenatedMatrix() {
448
+ if (!this._concatenatedMatrix) {
449
+ this._concatenatedMatrix = new Matrix();
450
+ }
451
+ const matrix = this._concatenatedMatrix;
452
+ if (this.internalParent) {
453
+ this.internalParent.getConcatenatedMatrix().preMultiplyInto(this.getMatrix(), matrix);
454
+ }
455
+ else {
456
+ matrix.copyFrom(this.getMatrix());
457
+ }
458
+ const ox = this.internalAnchorOffsetX;
459
+ const oy = this.internalAnchorOffsetY;
460
+ const rect = this.internalScrollRect;
461
+ if (rect) {
462
+ matrix.preMultiplyInto(sharedMatrix.setTo(1, 0, 0, 1, -rect.x - ox, -rect.y - oy), matrix);
463
+ }
464
+ else if (ox !== 0 || oy !== 0) {
465
+ matrix.preMultiplyInto(sharedMatrix.setTo(1, 0, 0, 1, -ox, -oy), matrix);
466
+ }
467
+ return matrix;
468
+ }
469
+ getInvertedConcatenatedMatrix() {
470
+ if (!this._invertedConcatenatedMatrix) {
471
+ this._invertedConcatenatedMatrix = new Matrix();
472
+ }
473
+ this.getConcatenatedMatrix().invertInto(this._invertedConcatenatedMatrix);
474
+ return this._invertedConcatenatedMatrix;
475
+ }
476
+ setX(value) {
477
+ if (this.internalX === value) {
478
+ return false;
479
+ }
480
+ this.internalX = value;
481
+ this.markDirty();
482
+ return true;
483
+ }
484
+ setY(value) {
485
+ if (this.internalY === value) {
486
+ return false;
487
+ }
488
+ this.internalY = value;
489
+ this.markDirty();
490
+ return true;
491
+ }
492
+ setScaleX(value) {
493
+ if (this._scaleX === value) {
494
+ return;
495
+ }
496
+ this._scaleX = value;
497
+ this._matrixDirty = true;
498
+ this.updateUseTransform();
499
+ this.markDirty();
500
+ }
501
+ setScaleY(value) {
502
+ if (this._scaleY === value) {
503
+ return;
504
+ }
505
+ this._scaleY = value;
506
+ this._matrixDirty = true;
507
+ this.updateUseTransform();
508
+ this.markDirty();
509
+ }
510
+ setRotation(value) {
511
+ value = clampRotation(value);
512
+ if (value === this._rotation) {
513
+ return;
514
+ }
515
+ const delta = ((value - this._rotation) / 180) * Math.PI;
516
+ this._skewX += delta;
517
+ this._skewY += delta;
518
+ this._rotation = value;
519
+ this._matrixDirty = true;
520
+ this.updateUseTransform();
521
+ this.markDirty();
522
+ }
523
+ setSkewX(value) {
524
+ if (value === this._skewXdeg) {
525
+ return;
526
+ }
527
+ this._skewXdeg = value;
528
+ this._skewX = (clampRotation(value) / 180) * Math.PI;
529
+ this._matrixDirty = true;
530
+ this.updateUseTransform();
531
+ this.markDirty();
532
+ }
533
+ setSkewY(value) {
534
+ if (value === this._skewYdeg) {
535
+ return;
536
+ }
537
+ this._skewYdeg = value;
538
+ this._skewY = ((clampRotation(value) + this._rotation) / 180) * Math.PI;
539
+ this._matrixDirty = true;
540
+ this.updateUseTransform();
541
+ this.markDirty();
542
+ }
543
+ setAnchorOffsetX(value) {
544
+ if (this.internalAnchorOffsetX === value) {
545
+ return;
546
+ }
547
+ this.internalAnchorOffsetX = value;
548
+ this.markDirty();
549
+ }
550
+ setAnchorOffsetY(value) {
551
+ if (this.internalAnchorOffsetY === value) {
552
+ return;
553
+ }
554
+ this.internalAnchorOffsetY = value;
555
+ this.markDirty();
556
+ }
557
+ setVisible(value) {
558
+ if (this.internalVisible === value) {
559
+ return;
560
+ }
561
+ this.internalVisible = value;
562
+ this.updateRenderMode();
563
+ this.markDirty();
564
+ }
565
+ setAlpha(value) {
566
+ if (this.internalAlpha === value) {
567
+ return;
568
+ }
569
+ this.internalAlpha = value;
570
+ this.updateRenderMode();
571
+ this.markDirty();
572
+ }
573
+ setScrollRect(value) {
574
+ if (!value && !this.internalScrollRect) {
575
+ return;
576
+ }
577
+ if (value) {
578
+ if (!this.internalScrollRect) {
579
+ this.internalScrollRect = new Rectangle();
580
+ }
581
+ this.internalScrollRect.copyFrom(value);
582
+ }
583
+ else {
584
+ this.internalScrollRect = undefined;
585
+ }
586
+ this.updateRenderMode();
587
+ this.markDirty();
588
+ }
589
+ setHasDisplayList(value) {
590
+ const hasDisplayList = !!this.displayList;
591
+ if (hasDisplayList === value) {
592
+ return;
593
+ }
594
+ if (value) {
595
+ const dl = DisplayList.create(this);
596
+ if (dl) {
597
+ this.displayList = dl;
598
+ this.cacheDirty = true;
599
+ }
600
+ }
601
+ else {
602
+ if (this.displayList) {
603
+ DisplayList.release(this.displayList);
604
+ this.displayList = undefined;
605
+ }
606
+ }
607
+ // cacheAsBitmap toggle changes the instruction set structure:
608
+ // the subtree either collapses to a single displayListCache instruction
609
+ // or expands back to individual leaf instructions.
610
+ DisplayObject._onStructureChange?.();
611
+ this.markDirty();
612
+ }
613
+ cacheDirtyUp() {
614
+ const p = this.internalParent;
615
+ if (p && !p.cacheDirty) {
616
+ p.cacheDirty = true;
617
+ p._boundsDirty = true;
618
+ p.cacheDirtyUp();
619
+ }
620
+ }
621
+ renderDirtyUp() {
622
+ const p = this.internalParent;
623
+ if (p && !p.renderDirty) {
624
+ p.renderDirty = true;
625
+ p.renderDirtyUp();
626
+ }
627
+ }
628
+ updateUseTransform() {
629
+ this.useTranslate = !(this._scaleX === 1 && this._scaleY === 1 && this._skewX === 0 && this._skewY === 0);
630
+ }
631
+ updateRenderMode() {
632
+ if (!this.internalVisible || this.internalAlpha <= 0 || this.maskedObject) {
633
+ this.renderMode = 1 /* RenderMode.NONE */;
634
+ }
635
+ else if (this.internalFilters.length > 0) {
636
+ this.renderMode = 2 /* RenderMode.FILTER */;
637
+ }
638
+ else if (this.internalBlendMode !== 0 || (this.internalMask && this.internalMask.internalStage)) {
639
+ this.renderMode = 3 /* RenderMode.CLIP */;
640
+ }
641
+ else if (this.internalScrollRect || this.internalMaskRect) {
642
+ this.renderMode = 4 /* RenderMode.SCROLLRECT */;
643
+ }
644
+ else {
645
+ this.renderMode = undefined;
646
+ }
647
+ // RenderMode change means the instruction set structure is stale.
648
+ DisplayObject._onStructureChange?.();
649
+ }
650
+ getOriginalBounds() {
651
+ if (!this._boundsDirty) {
652
+ return this._cachedBounds;
653
+ }
654
+ const bounds = this.getContentBounds();
655
+ this.measureChildBounds(bounds);
656
+ this._cachedBounds.copyFrom(bounds);
657
+ this._boundsDirty = false;
658
+ return this._cachedBounds;
659
+ }
660
+ measureChildBounds(_bounds) { }
661
+ getContentBounds() {
662
+ const bounds = sharedRectangle;
663
+ bounds.setEmpty();
664
+ this.measureContentBounds(bounds);
665
+ return bounds;
666
+ }
667
+ measureContentBounds(_bounds) { }
668
+ getTransformedBoundsInternal(targetCoordinateSpace, resultRect) {
669
+ const bounds = this.getOriginalBounds();
670
+ if (!resultRect) {
671
+ resultRect = new Rectangle();
672
+ }
673
+ resultRect.copyFrom(bounds);
674
+ if (targetCoordinateSpace === this) {
675
+ return resultRect;
676
+ }
677
+ const m = sharedMatrix;
678
+ targetCoordinateSpace.getInvertedConcatenatedMatrix().preMultiplyInto(this.getConcatenatedMatrix(), m);
679
+ m.transformBounds(resultRect);
680
+ return resultRect;
681
+ }
682
+ getConcatenatedMatrixAt(root, matrix) {
683
+ const invertMatrix = root.getInvertedConcatenatedMatrix();
684
+ if ((invertMatrix.a === 0 || invertMatrix.d === 0) && (invertMatrix.b === 0 || invertMatrix.c === 0)) {
685
+ let target = this;
686
+ const rootLevel = root.nestLevel;
687
+ matrix.identity();
688
+ while (target.nestLevel > rootLevel) {
689
+ const rect = target.internalScrollRect;
690
+ if (rect)
691
+ matrix.concat(sharedMatrix.setTo(1, 0, 0, 1, -rect.x, -rect.y));
692
+ matrix.concat(target.getMatrix());
693
+ target = target.internalParent;
694
+ }
695
+ }
696
+ else {
697
+ invertMatrix.preMultiplyInto(matrix, matrix);
698
+ }
699
+ }
700
+ hitTest(stageX, stageY) {
701
+ if (!this.internalVisible || this._scaleX === 0 || this._scaleY === 0) {
702
+ return undefined;
703
+ }
704
+ const m = this.getInvertedConcatenatedMatrix();
705
+ if (m.a === 0 && m.b === 0 && m.c === 0 && m.d === 0) {
706
+ return undefined;
707
+ }
708
+ const bounds = this.getContentBounds();
709
+ const localX = m.a * stageX + m.c * stageY + m.tx;
710
+ const localY = m.b * stageX + m.d * stageY + m.ty;
711
+ if (bounds.contains(localX, localY)) {
712
+ if (!this.children) {
713
+ const rect = this.internalScrollRect ?? this.internalMaskRect;
714
+ if (rect && !rect.contains(localX, localY)) {
715
+ return undefined;
716
+ }
717
+ if (this.internalMask && !this.internalMask.hitTest(stageX, stageY)) {
718
+ return undefined;
719
+ }
720
+ }
721
+ return this;
722
+ }
723
+ return undefined;
724
+ }
725
+ updateRenderNode() { }
726
+ getPropagationList(target) {
727
+ const list = [];
728
+ let current = target;
729
+ while (current) {
730
+ list.push(current);
731
+ current = current.internalParent;
732
+ }
733
+ return [...[...list].reverse(), ...list];
734
+ }
735
+ dispatchPropagationEvent(event, list, targetIndex) {
736
+ for (let i = 0; i < list.length; i++) {
737
+ const currentTarget = list[i];
738
+ let phase;
739
+ if (i < targetIndex - 1) {
740
+ phase = 1 /* EventPhase.CAPTURING_PHASE */;
741
+ }
742
+ else if (i > targetIndex) {
743
+ phase = 3 /* EventPhase.BUBBLING_PHASE */;
744
+ }
745
+ else {
746
+ phase = 2 /* EventPhase.AT_TARGET */;
747
+ }
748
+ event.setCurrentTarget(currentTarget);
749
+ event.setDispatchContext(currentTarget, phase);
750
+ currentTarget.notifyListener(event, i < targetIndex);
751
+ if (event.isPropagationStopped || event.isPropagationImmediateStopped) {
752
+ return;
753
+ }
754
+ }
755
+ }
756
+ // ── Private methods ───────────────────────────────────────────────────────
757
+ setMask(value) {
758
+ if (value === this) {
759
+ return;
760
+ }
761
+ if (value instanceof DisplayObject) {
762
+ if (value === this.internalMask) {
763
+ return;
764
+ }
765
+ if (value.maskedObject) {
766
+ value.maskedObject.mask = undefined;
767
+ }
768
+ value.maskedObject = this;
769
+ this.internalMask = value;
770
+ this.internalMaskRect = undefined;
771
+ }
772
+ else if (value instanceof Rectangle) {
773
+ if (!this.internalMaskRect) {
774
+ this.internalMaskRect = new Rectangle();
775
+ }
776
+ this.internalMaskRect.copyFrom(value);
777
+ if (this.internalMask) {
778
+ this.internalMask.maskedObject = undefined;
779
+ this.internalMask = undefined;
780
+ }
781
+ }
782
+ else {
783
+ if (this.internalMask) {
784
+ this.internalMask.maskedObject = undefined;
785
+ this.internalMask = undefined;
786
+ }
787
+ this.internalMaskRect = undefined;
788
+ }
789
+ this.updateRenderMode();
790
+ this.markDirty();
791
+ }
792
+ markDirty() {
793
+ this.renderDirty = true;
794
+ this._boundsDirty = true;
795
+ // Update cached world alpha and tint so _refreshLeafTransform can read
796
+ // them in O(1) without walking the parent chain.
797
+ let alpha = this.internalAlpha;
798
+ let tint = this.tintRGB;
799
+ let p = this.internalParent;
800
+ while (p) {
801
+ alpha *= p.internalAlpha;
802
+ if (p.tintRGB !== 0xffffff) {
803
+ tint = p.tintRGB;
804
+ }
805
+ p = p.internalParent;
806
+ }
807
+ this.worldAlpha = alpha;
808
+ this.worldTint = tint;
809
+ // Notify the renderer that this object's data changed.
810
+ DisplayObject._onRenderableDirty?.(this);
811
+ const parent = this.internalParent;
812
+ if (parent && !parent.cacheDirty) {
813
+ parent.cacheDirty = true;
814
+ parent.cacheDirtyUp();
815
+ }
816
+ if (parent && !parent.renderDirty) {
817
+ parent.renderDirty = true;
818
+ parent.renderDirtyUp();
819
+ }
820
+ const masked = this.maskedObject;
821
+ if (masked && !masked.cacheDirty) {
822
+ masked.cacheDirty = true;
823
+ masked.cacheDirtyUp();
824
+ }
825
+ }
826
+ }
827
+ //# sourceMappingURL=DisplayObject.js.map