excalibur 0.25.2 → 0.25.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 (446) hide show
  1. package/CHANGELOG.md +7 -2
  2. package/build/dist/Actions/Action/Blink.js +51 -0
  3. package/build/dist/Actions/Action/Blink.js.map +1 -0
  4. package/build/dist/Actions/Action/CallMethod.js +21 -0
  5. package/build/dist/Actions/Action/CallMethod.js.map +1 -0
  6. package/build/dist/Actions/Action/Delay.js +25 -0
  7. package/build/dist/Actions/Action/Delay.js.map +1 -0
  8. package/build/dist/Actions/Action/Die.js +22 -0
  9. package/build/dist/Actions/Action/Die.js.map +1 -0
  10. package/build/dist/Actions/Action/EaseTo.js +69 -0
  11. package/build/dist/Actions/Action/EaseTo.js.map +1 -0
  12. package/build/dist/Actions/Action/Fade.js +46 -0
  13. package/build/dist/Actions/Action/Fade.js.map +1 -0
  14. package/build/dist/Actions/Action/Follow.js +55 -0
  15. package/build/dist/Actions/Action/Follow.js.map +1 -0
  16. package/build/dist/Actions/Action/Meet.js +52 -0
  17. package/build/dist/Actions/Action/Meet.js.map +1 -0
  18. package/build/dist/Actions/Action/MoveBy.js +47 -0
  19. package/build/dist/Actions/Action/MoveBy.js.map +1 -0
  20. package/build/dist/Actions/Action/MoveTo.js +40 -0
  21. package/build/dist/Actions/Action/MoveTo.js.map +1 -0
  22. package/build/dist/Actions/Action/Repeat.js +31 -0
  23. package/build/dist/Actions/Action/Repeat.js.map +1 -0
  24. package/build/dist/Actions/Action/RepeatForever.js +37 -0
  25. package/build/dist/Actions/Action/RepeatForever.js.map +1 -0
  26. package/build/dist/Actions/Action/RotateBy.js +91 -0
  27. package/build/dist/Actions/Action/RotateBy.js.map +1 -0
  28. package/build/dist/Actions/Action/RotateTo.js +90 -0
  29. package/build/dist/Actions/Action/RotateTo.js.map +1 -0
  30. package/build/dist/Actions/Action/ScaleBy.js +45 -0
  31. package/build/dist/Actions/Action/ScaleBy.js.map +1 -0
  32. package/build/dist/Actions/Action/ScaleTo.js +56 -0
  33. package/build/dist/Actions/Action/ScaleTo.js.map +1 -0
  34. package/build/dist/Actions/Action.js +2 -0
  35. package/build/dist/Actions/Action.js.map +1 -0
  36. package/build/dist/Actions/ActionContext.js +305 -0
  37. package/build/dist/Actions/ActionContext.js.map +1 -0
  38. package/build/dist/Actions/ActionQueue.js +87 -0
  39. package/build/dist/Actions/ActionQueue.js.map +1 -0
  40. package/build/dist/Actions/Actionable.js +2 -0
  41. package/build/dist/Actions/Actionable.js.map +1 -0
  42. package/build/dist/Actions/ActionsComponent.js +198 -0
  43. package/build/dist/Actions/ActionsComponent.js.map +1 -0
  44. package/build/dist/Actions/ActionsSystem.js +18 -0
  45. package/build/dist/Actions/ActionsSystem.js.map +1 -0
  46. package/build/dist/Actions/Index.js +22 -0
  47. package/build/dist/Actions/Index.js.map +1 -0
  48. package/build/dist/Actions/RotationType.js +27 -0
  49. package/build/dist/Actions/RotationType.js.map +1 -0
  50. package/build/dist/Actor.js +831 -0
  51. package/build/dist/Actor.js.map +1 -0
  52. package/build/dist/Camera.js +663 -0
  53. package/build/dist/Camera.js.map +1 -0
  54. package/build/dist/Class.js +48 -0
  55. package/build/dist/Class.js.map +1 -0
  56. package/build/dist/Collision/BodyComponent.js +351 -0
  57. package/build/dist/Collision/BodyComponent.js.map +1 -0
  58. package/build/dist/Collision/BoundingBox.js +361 -0
  59. package/build/dist/Collision/BoundingBox.js.map +1 -0
  60. package/build/dist/Collision/ColliderComponent.js +198 -0
  61. package/build/dist/Collision/ColliderComponent.js.map +1 -0
  62. package/build/dist/Collision/Colliders/CircleCollider.js +264 -0
  63. package/build/dist/Collision/Colliders/CircleCollider.js.map +1 -0
  64. package/build/dist/Collision/Colliders/ClosestLineJumpTable.js +211 -0
  65. package/build/dist/Collision/Colliders/ClosestLineJumpTable.js.map +1 -0
  66. package/build/dist/Collision/Colliders/Collider.js +26 -0
  67. package/build/dist/Collision/Colliders/Collider.js.map +1 -0
  68. package/build/dist/Collision/Colliders/CollisionJumpTable.js +301 -0
  69. package/build/dist/Collision/Colliders/CollisionJumpTable.js.map +1 -0
  70. package/build/dist/Collision/Colliders/CompositeCollider.js +232 -0
  71. package/build/dist/Collision/Colliders/CompositeCollider.js.map +1 -0
  72. package/build/dist/Collision/Colliders/EdgeCollider.js +253 -0
  73. package/build/dist/Collision/Colliders/EdgeCollider.js.map +1 -0
  74. package/build/dist/Collision/Colliders/PolygonCollider.js +389 -0
  75. package/build/dist/Collision/Colliders/PolygonCollider.js.map +1 -0
  76. package/build/dist/Collision/Colliders/SeparatingAxis.js +67 -0
  77. package/build/dist/Collision/Colliders/SeparatingAxis.js.map +1 -0
  78. package/build/dist/Collision/Colliders/Shape.js +102 -0
  79. package/build/dist/Collision/Colliders/Shape.js.map +1 -0
  80. package/build/dist/Collision/CollisionSystem.js +116 -0
  81. package/build/dist/Collision/CollisionSystem.js.map +1 -0
  82. package/build/dist/Collision/CollisionType.js +33 -0
  83. package/build/dist/Collision/CollisionType.js.map +1 -0
  84. package/build/dist/Collision/Detection/CollisionContact.js +46 -0
  85. package/build/dist/Collision/Detection/CollisionContact.js.map +1 -0
  86. package/build/dist/Collision/Detection/CollisionProcessor.js +2 -0
  87. package/build/dist/Collision/Detection/CollisionProcessor.js.map +1 -0
  88. package/build/dist/Collision/Detection/DynamicTree.js +442 -0
  89. package/build/dist/Collision/Detection/DynamicTree.js.map +1 -0
  90. package/build/dist/Collision/Detection/DynamicTreeCollisionProcessor.js +211 -0
  91. package/build/dist/Collision/Detection/DynamicTreeCollisionProcessor.js.map +1 -0
  92. package/build/dist/Collision/Detection/Pair.js +92 -0
  93. package/build/dist/Collision/Detection/Pair.js.map +1 -0
  94. package/build/dist/Collision/Group/CollisionGroup.js +114 -0
  95. package/build/dist/Collision/Group/CollisionGroup.js.map +1 -0
  96. package/build/dist/Collision/Group/CollisionGroupManager.js +52 -0
  97. package/build/dist/Collision/Group/CollisionGroupManager.js.map +1 -0
  98. package/build/dist/Collision/Index.js +29 -0
  99. package/build/dist/Collision/Index.js.map +1 -0
  100. package/build/dist/Collision/Integrator.js +11 -0
  101. package/build/dist/Collision/Integrator.js.map +1 -0
  102. package/build/dist/Collision/MotionSystem.js +42 -0
  103. package/build/dist/Collision/MotionSystem.js.map +1 -0
  104. package/build/dist/Collision/Physics.js +163 -0
  105. package/build/dist/Collision/Physics.js.map +1 -0
  106. package/build/dist/Collision/Side.js +51 -0
  107. package/build/dist/Collision/Side.js.map +1 -0
  108. package/build/dist/Collision/Solver/ArcadeSolver.js +101 -0
  109. package/build/dist/Collision/Solver/ArcadeSolver.js.map +1 -0
  110. package/build/dist/Collision/Solver/ContactConstraintPoint.js +83 -0
  111. package/build/dist/Collision/Solver/ContactConstraintPoint.js.map +1 -0
  112. package/build/dist/Collision/Solver/RealisticSolver.js +248 -0
  113. package/build/dist/Collision/Solver/RealisticSolver.js.map +1 -0
  114. package/build/dist/Collision/Solver/Solver.js +37 -0
  115. package/build/dist/Collision/Solver/Solver.js.map +1 -0
  116. package/build/dist/Color.js +461 -0
  117. package/build/dist/Color.js.map +1 -0
  118. package/build/dist/Configurable.js +32 -0
  119. package/build/dist/Configurable.js.map +1 -0
  120. package/build/dist/Debug/Debug.js +375 -0
  121. package/build/dist/Debug/Debug.js.map +1 -0
  122. package/build/dist/Debug/DebugFlags.js +40 -0
  123. package/build/dist/Debug/DebugFlags.js.map +1 -0
  124. package/build/dist/Debug/DebugSystem.js +251 -0
  125. package/build/dist/Debug/DebugSystem.js.map +1 -0
  126. package/build/dist/Debug/index.js +4 -0
  127. package/build/dist/Debug/index.js.map +1 -0
  128. package/build/dist/Deprecated.js +2 -0
  129. package/build/dist/Deprecated.js.map +1 -0
  130. package/build/dist/Drawing/Animation.js +294 -0
  131. package/build/dist/Drawing/Animation.js.map +1 -0
  132. package/build/dist/Drawing/CanvasDrawComponent.js +16 -0
  133. package/build/dist/Drawing/CanvasDrawComponent.js.map +1 -0
  134. package/build/dist/Drawing/CanvasDrawingSystem.js +95 -0
  135. package/build/dist/Drawing/CanvasDrawingSystem.js.map +1 -0
  136. package/build/dist/Drawing/Index.js +10 -0
  137. package/build/dist/Drawing/Index.js.map +1 -0
  138. package/build/dist/Drawing/Polygon.js +139 -0
  139. package/build/dist/Drawing/Polygon.js.map +1 -0
  140. package/build/dist/Drawing/Sprite.js +355 -0
  141. package/build/dist/Drawing/Sprite.js.map +1 -0
  142. package/build/dist/Drawing/SpriteEffects.js +246 -0
  143. package/build/dist/Drawing/SpriteEffects.js.map +1 -0
  144. package/build/dist/Drawing/SpriteSheet.js +413 -0
  145. package/build/dist/Drawing/SpriteSheet.js.map +1 -0
  146. package/build/dist/Drawing/Texture.js +69 -0
  147. package/build/dist/Drawing/Texture.js.map +1 -0
  148. package/build/dist/Engine.d.ts +4 -1
  149. package/build/dist/Engine.js +985 -0
  150. package/build/dist/Engine.js.map +1 -0
  151. package/build/dist/EntityComponentSystem/Component.js +65 -0
  152. package/build/dist/EntityComponentSystem/Component.js.map +1 -0
  153. package/build/dist/EntityComponentSystem/Components/MotionComponent.js +33 -0
  154. package/build/dist/EntityComponentSystem/Components/MotionComponent.js.map +1 -0
  155. package/build/dist/EntityComponentSystem/Components/TransformComponent.js +249 -0
  156. package/build/dist/EntityComponentSystem/Components/TransformComponent.js.map +1 -0
  157. package/build/dist/EntityComponentSystem/Entity.js +452 -0
  158. package/build/dist/EntityComponentSystem/Entity.js.map +1 -0
  159. package/build/dist/EntityComponentSystem/EntityManager.js +128 -0
  160. package/build/dist/EntityComponentSystem/EntityManager.js.map +1 -0
  161. package/build/dist/EntityComponentSystem/Query.js +91 -0
  162. package/build/dist/EntityComponentSystem/Query.js.map +1 -0
  163. package/build/dist/EntityComponentSystem/QueryManager.js +90 -0
  164. package/build/dist/EntityComponentSystem/QueryManager.js.map +1 -0
  165. package/build/dist/EntityComponentSystem/System.js +76 -0
  166. package/build/dist/EntityComponentSystem/System.js.map +1 -0
  167. package/build/dist/EntityComponentSystem/SystemManager.js +102 -0
  168. package/build/dist/EntityComponentSystem/SystemManager.js.map +1 -0
  169. package/build/dist/EntityComponentSystem/Util.js +5 -0
  170. package/build/dist/EntityComponentSystem/Util.js.map +1 -0
  171. package/build/dist/EntityComponentSystem/World.js +55 -0
  172. package/build/dist/EntityComponentSystem/World.js.map +1 -0
  173. package/build/dist/EntityComponentSystem/index.js +11 -0
  174. package/build/dist/EntityComponentSystem/index.js.map +1 -0
  175. package/build/dist/EventDispatcher.js +114 -0
  176. package/build/dist/EventDispatcher.js.map +1 -0
  177. package/build/dist/Events/ExEvent.js +12 -0
  178. package/build/dist/Events/ExEvent.js.map +1 -0
  179. package/build/dist/Events/MediaEvents.js +75 -0
  180. package/build/dist/Events/MediaEvents.js.map +1 -0
  181. package/build/dist/Events/PointerEvents.js +52 -0
  182. package/build/dist/Events/PointerEvents.js.map +1 -0
  183. package/build/dist/Events.js +497 -0
  184. package/build/dist/Events.js.map +1 -0
  185. package/build/dist/Flags.js +90 -0
  186. package/build/dist/Flags.js.map +1 -0
  187. package/build/dist/Graphics/Animation.js +310 -0
  188. package/build/dist/Graphics/Animation.js.map +1 -0
  189. package/build/dist/Graphics/Canvas.js +38 -0
  190. package/build/dist/Graphics/Canvas.js.map +1 -0
  191. package/build/dist/Graphics/Circle.js +47 -0
  192. package/build/dist/Graphics/Circle.js.map +1 -0
  193. package/build/dist/Graphics/Context/ExcaliburGraphicsContext.js +2 -0
  194. package/build/dist/Graphics/Context/ExcaliburGraphicsContext.js.map +1 -0
  195. package/build/dist/Graphics/Context/ExcaliburGraphicsContext2DCanvas.js +207 -0
  196. package/build/dist/Graphics/Context/ExcaliburGraphicsContext2DCanvas.js.map +1 -0
  197. package/build/dist/Graphics/Context/ExcaliburGraphicsContextWebGL.js +331 -0
  198. package/build/dist/Graphics/Context/ExcaliburGraphicsContextWebGL.js.map +1 -0
  199. package/build/dist/Graphics/Context/circle-renderer/circle-renderer.js +160 -0
  200. package/build/dist/Graphics/Context/circle-renderer/circle-renderer.js.map +1 -0
  201. package/build/dist/Graphics/Context/debug-text.js +47 -0
  202. package/build/dist/Graphics/Context/debug-text.js.map +1 -0
  203. package/build/dist/Graphics/Context/image-renderer/image-renderer.js +209 -0
  204. package/build/dist/Graphics/Context/image-renderer/image-renderer.js.map +1 -0
  205. package/build/dist/Graphics/Context/line-renderer/line-renderer.js +87 -0
  206. package/build/dist/Graphics/Context/line-renderer/line-renderer.js.map +1 -0
  207. package/build/dist/Graphics/Context/point-renderer/point-renderer.js +82 -0
  208. package/build/dist/Graphics/Context/point-renderer/point-renderer.js.map +1 -0
  209. package/build/dist/Graphics/Context/quad-index-buffer.js +69 -0
  210. package/build/dist/Graphics/Context/quad-index-buffer.js.map +1 -0
  211. package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.js +272 -0
  212. package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.js.map +1 -0
  213. package/build/dist/Graphics/Context/render-source.js +16 -0
  214. package/build/dist/Graphics/Context/render-source.js.map +1 -0
  215. package/build/dist/Graphics/Context/render-target.js +65 -0
  216. package/build/dist/Graphics/Context/render-target.js.map +1 -0
  217. package/build/dist/Graphics/Context/renderer.js +2 -0
  218. package/build/dist/Graphics/Context/renderer.js.map +1 -0
  219. package/build/dist/Graphics/Context/screen-pass-painter/screen-pass-painter.js +53 -0
  220. package/build/dist/Graphics/Context/screen-pass-painter/screen-pass-painter.js.map +1 -0
  221. package/build/dist/Graphics/Context/shader.js +236 -0
  222. package/build/dist/Graphics/Context/shader.js.map +1 -0
  223. package/build/dist/Graphics/Context/state-stack.js +27 -0
  224. package/build/dist/Graphics/Context/state-stack.js.map +1 -0
  225. package/build/dist/Graphics/Context/texture-loader.d.ts +8 -0
  226. package/build/dist/Graphics/Context/texture-loader.js +121 -0
  227. package/build/dist/Graphics/Context/texture-loader.js.map +1 -0
  228. package/build/dist/Graphics/Context/transform-stack.js +30 -0
  229. package/build/dist/Graphics/Context/transform-stack.js.map +1 -0
  230. package/build/dist/Graphics/Context/vertex-buffer.js +45 -0
  231. package/build/dist/Graphics/Context/vertex-buffer.js.map +1 -0
  232. package/build/dist/Graphics/Context/vertex-layout.js +93 -0
  233. package/build/dist/Graphics/Context/vertex-layout.js.map +1 -0
  234. package/build/dist/Graphics/Context/webgl-adapter.js +19 -0
  235. package/build/dist/Graphics/Context/webgl-adapter.js.map +1 -0
  236. package/build/dist/Graphics/Context/webgl-util.js +105 -0
  237. package/build/dist/Graphics/Context/webgl-util.js.map +1 -0
  238. package/build/dist/Graphics/DebugGraphicsComponent.js +15 -0
  239. package/build/dist/Graphics/DebugGraphicsComponent.js.map +1 -0
  240. package/build/dist/Graphics/Filtering.js +17 -0
  241. package/build/dist/Graphics/Filtering.js.map +1 -0
  242. package/build/dist/Graphics/Font.js +293 -0
  243. package/build/dist/Graphics/Font.js.map +1 -0
  244. package/build/dist/Graphics/FontCommon.js +109 -0
  245. package/build/dist/Graphics/FontCommon.js.map +1 -0
  246. package/build/dist/Graphics/Graphic.js +200 -0
  247. package/build/dist/Graphics/Graphic.js.map +1 -0
  248. package/build/dist/Graphics/GraphicsComponent.js +290 -0
  249. package/build/dist/Graphics/GraphicsComponent.js.map +1 -0
  250. package/build/dist/Graphics/GraphicsDiagnostics.js +9 -0
  251. package/build/dist/Graphics/GraphicsDiagnostics.js.map +1 -0
  252. package/build/dist/Graphics/GraphicsGroup.js +69 -0
  253. package/build/dist/Graphics/GraphicsGroup.js.map +1 -0
  254. package/build/dist/Graphics/GraphicsSystem.js +153 -0
  255. package/build/dist/Graphics/GraphicsSystem.js.map +1 -0
  256. package/build/dist/Graphics/ImageSource.js +116 -0
  257. package/build/dist/Graphics/ImageSource.js.map +1 -0
  258. package/build/dist/Graphics/Polygon.js +59 -0
  259. package/build/dist/Graphics/Polygon.js.map +1 -0
  260. package/build/dist/Graphics/PostProcessor/ColorBlindnessMode.js +7 -0
  261. package/build/dist/Graphics/PostProcessor/ColorBlindnessMode.js.map +1 -0
  262. package/build/dist/Graphics/PostProcessor/ColorBlindnessPostProcessor.js +52 -0
  263. package/build/dist/Graphics/PostProcessor/ColorBlindnessPostProcessor.js.map +1 -0
  264. package/build/dist/Graphics/PostProcessor/PostProcessor.js +2 -0
  265. package/build/dist/Graphics/PostProcessor/PostProcessor.js.map +1 -0
  266. package/build/dist/Graphics/PostProcessor/ScreenShader.js +56 -0
  267. package/build/dist/Graphics/PostProcessor/ScreenShader.js.map +1 -0
  268. package/build/dist/Graphics/Raster.js +207 -0
  269. package/build/dist/Graphics/Raster.js.map +1 -0
  270. package/build/dist/Graphics/Rectangle.js +29 -0
  271. package/build/dist/Graphics/Rectangle.js.map +1 -0
  272. package/build/dist/Graphics/Sprite.js +103 -0
  273. package/build/dist/Graphics/Sprite.js.map +1 -0
  274. package/build/dist/Graphics/SpriteFont.js +120 -0
  275. package/build/dist/Graphics/SpriteFont.js.map +1 -0
  276. package/build/dist/Graphics/SpriteSheet.js +115 -0
  277. package/build/dist/Graphics/SpriteSheet.js.map +1 -0
  278. package/build/dist/Graphics/Text.js +94 -0
  279. package/build/dist/Graphics/Text.js.map +1 -0
  280. package/build/dist/Graphics/index.js +42 -0
  281. package/build/dist/Graphics/index.js.map +1 -0
  282. package/build/dist/Id.js +8 -0
  283. package/build/dist/Id.js.map +1 -0
  284. package/build/dist/Input/CapturePointerConfig.js +5 -0
  285. package/build/dist/Input/CapturePointerConfig.js.map +1 -0
  286. package/build/dist/Input/EngineInput.js +2 -0
  287. package/build/dist/Input/EngineInput.js.map +1 -0
  288. package/build/dist/Input/Gamepad.js +358 -0
  289. package/build/dist/Input/Gamepad.js.map +1 -0
  290. package/build/dist/Input/Index.js +22 -0
  291. package/build/dist/Input/Index.js.map +1 -0
  292. package/build/dist/Input/Keyboard.js +267 -0
  293. package/build/dist/Input/Keyboard.js.map +1 -0
  294. package/build/dist/Input/NativePointerButton.js +12 -0
  295. package/build/dist/Input/NativePointerButton.js.map +1 -0
  296. package/build/dist/Input/PointerAbstraction.js +41 -0
  297. package/build/dist/Input/PointerAbstraction.js.map +1 -0
  298. package/build/dist/Input/PointerButton.js +12 -0
  299. package/build/dist/Input/PointerButton.js.map +1 -0
  300. package/build/dist/Input/PointerComponent.js +28 -0
  301. package/build/dist/Input/PointerComponent.js.map +1 -0
  302. package/build/dist/Input/PointerEvent.js +25 -0
  303. package/build/dist/Input/PointerEvent.js.map +1 -0
  304. package/build/dist/Input/PointerEventReceiver.js +414 -0
  305. package/build/dist/Input/PointerEventReceiver.js.map +1 -0
  306. package/build/dist/Input/PointerScope.js +16 -0
  307. package/build/dist/Input/PointerScope.js.map +1 -0
  308. package/build/dist/Input/PointerSystem.js +217 -0
  309. package/build/dist/Input/PointerSystem.js.map +1 -0
  310. package/build/dist/Input/PointerType.js +11 -0
  311. package/build/dist/Input/PointerType.js.map +1 -0
  312. package/build/dist/Input/WheelDeltaMode.js +7 -0
  313. package/build/dist/Input/WheelDeltaMode.js.map +1 -0
  314. package/build/dist/Input/WheelEvent.js +21 -0
  315. package/build/dist/Input/WheelEvent.js.map +1 -0
  316. package/build/dist/Interfaces/Audio.js +2 -0
  317. package/build/dist/Interfaces/Audio.js.map +1 -0
  318. package/build/dist/Interfaces/AudioImplementation.js +11 -0
  319. package/build/dist/Interfaces/AudioImplementation.js.map +1 -0
  320. package/build/dist/Interfaces/Clonable.js +2 -0
  321. package/build/dist/Interfaces/Clonable.js.map +1 -0
  322. package/build/dist/Interfaces/Drawable.js +2 -0
  323. package/build/dist/Interfaces/Drawable.js.map +1 -0
  324. package/build/dist/Interfaces/Evented.js +2 -0
  325. package/build/dist/Interfaces/Evented.js.map +1 -0
  326. package/build/dist/Interfaces/Index.js +10 -0
  327. package/build/dist/Interfaces/Index.js.map +1 -0
  328. package/build/dist/Interfaces/LifecycleEvents.js +51 -0
  329. package/build/dist/Interfaces/LifecycleEvents.js.map +1 -0
  330. package/build/dist/Interfaces/Loadable.js +2 -0
  331. package/build/dist/Interfaces/Loadable.js.map +1 -0
  332. package/build/dist/Interfaces/PointerEventHandlers.js +2 -0
  333. package/build/dist/Interfaces/PointerEventHandlers.js.map +1 -0
  334. package/build/dist/Interfaces/Trait.js +2 -0
  335. package/build/dist/Interfaces/Trait.js.map +1 -0
  336. package/build/dist/Label.js +273 -0
  337. package/build/dist/Label.js.map +1 -0
  338. package/build/dist/Loader.js +367 -0
  339. package/build/dist/Loader.js.map +1 -0
  340. package/build/dist/Math/Index.js +10 -0
  341. package/build/dist/Math/Index.js.map +1 -0
  342. package/build/dist/Math/Random.js +239 -0
  343. package/build/dist/Math/Random.js.map +1 -0
  344. package/build/dist/Math/global-coordinates.js +30 -0
  345. package/build/dist/Math/global-coordinates.js.map +1 -0
  346. package/build/dist/Math/line.js +194 -0
  347. package/build/dist/Math/line.js.map +1 -0
  348. package/build/dist/Math/matrix.js +446 -0
  349. package/build/dist/Math/matrix.js.map +1 -0
  350. package/build/dist/Math/projection.js +24 -0
  351. package/build/dist/Math/projection.js.map +1 -0
  352. package/build/dist/Math/ray.js +52 -0
  353. package/build/dist/Math/ray.js.map +1 -0
  354. package/build/dist/Math/util.js +82 -0
  355. package/build/dist/Math/util.js.map +1 -0
  356. package/build/dist/Math/vector-view.js +25 -0
  357. package/build/dist/Math/vector-view.js.map +1 -0
  358. package/build/dist/Math/vector.js +326 -0
  359. package/build/dist/Math/vector.js.map +1 -0
  360. package/build/dist/Particles.js +449 -0
  361. package/build/dist/Particles.js.map +1 -0
  362. package/build/dist/Polyfill.js +56 -0
  363. package/build/dist/Polyfill.js.map +1 -0
  364. package/build/dist/Promises.js +205 -0
  365. package/build/dist/Promises.js.map +1 -0
  366. package/build/dist/Resources/Gif.js +479 -0
  367. package/build/dist/Resources/Gif.js.map +1 -0
  368. package/build/dist/Resources/Index.js +4 -0
  369. package/build/dist/Resources/Index.js.map +1 -0
  370. package/build/dist/Resources/Resource.js +74 -0
  371. package/build/dist/Resources/Resource.js.map +1 -0
  372. package/build/dist/Resources/Sound/AudioContext.js +16 -0
  373. package/build/dist/Resources/Sound/AudioContext.js.map +1 -0
  374. package/build/dist/Resources/Sound/Index.js +4 -0
  375. package/build/dist/Resources/Sound/Index.js.map +1 -0
  376. package/build/dist/Resources/Sound/Sound.js +240 -0
  377. package/build/dist/Resources/Sound/Sound.js.map +1 -0
  378. package/build/dist/Resources/Sound/WebAudioInstance.js +160 -0
  379. package/build/dist/Resources/Sound/WebAudioInstance.js.map +1 -0
  380. package/build/dist/Scene.js +458 -0
  381. package/build/dist/Scene.js.map +1 -0
  382. package/build/dist/Screen.js +634 -0
  383. package/build/dist/Screen.js.map +1 -0
  384. package/build/dist/ScreenElement.js +29 -0
  385. package/build/dist/ScreenElement.js.map +1 -0
  386. package/build/dist/TileMap.js +488 -0
  387. package/build/dist/TileMap.js.map +1 -0
  388. package/build/dist/Timer.js +198 -0
  389. package/build/dist/Timer.js.map +1 -0
  390. package/build/dist/Traits/Index.js +5 -0
  391. package/build/dist/Traits/Index.js.map +1 -0
  392. package/build/dist/Traits/OffscreenCulling.js +35 -0
  393. package/build/dist/Traits/OffscreenCulling.js.map +1 -0
  394. package/build/dist/Trigger.js +113 -0
  395. package/build/dist/Trigger.js.map +1 -0
  396. package/build/dist/Util/Actors.js +19 -0
  397. package/build/dist/Util/Actors.js.map +1 -0
  398. package/build/dist/Util/Browser.js +66 -0
  399. package/build/dist/Util/Browser.js.map +1 -0
  400. package/build/dist/Util/Clock.js +219 -0
  401. package/build/dist/Util/Clock.js.map +1 -0
  402. package/build/dist/Util/CullingBox.js +104 -0
  403. package/build/dist/Util/CullingBox.js.map +1 -0
  404. package/build/dist/Util/Decorators.js +78 -0
  405. package/build/dist/Util/Decorators.js.map +1 -0
  406. package/build/dist/Util/Detector.js +167 -0
  407. package/build/dist/Util/Detector.js.map +1 -0
  408. package/build/dist/Util/DrawUtil.js +117 -0
  409. package/build/dist/Util/DrawUtil.js.map +1 -0
  410. package/build/dist/Util/EasingFunctions.js +118 -0
  411. package/build/dist/Util/EasingFunctions.js.map +1 -0
  412. package/build/dist/Util/Fps.js +47 -0
  413. package/build/dist/Util/Fps.js.map +1 -0
  414. package/build/dist/Util/Index.js +7 -0
  415. package/build/dist/Util/Index.js.map +1 -0
  416. package/build/dist/Util/Log.js +195 -0
  417. package/build/dist/Util/Log.js.map +1 -0
  418. package/build/dist/Util/Observable.js +60 -0
  419. package/build/dist/Util/Observable.js.map +1 -0
  420. package/build/dist/Util/Pool.js +66 -0
  421. package/build/dist/Util/Pool.js.map +1 -0
  422. package/build/dist/Util/SortedList.js +261 -0
  423. package/build/dist/Util/SortedList.js.map +1 -0
  424. package/build/dist/Util/Sound.js +22 -0
  425. package/build/dist/Util/Sound.js.map +1 -0
  426. package/build/dist/Util/Util.js +294 -0
  427. package/build/dist/Util/Util.js.map +1 -0
  428. package/build/dist/Util/Watch.js +67 -0
  429. package/build/dist/Util/Watch.js.map +1 -0
  430. package/build/dist/Util/WebAudio.js +62 -0
  431. package/build/dist/Util/WebAudio.js.map +1 -0
  432. package/build/dist/excalibur.js +101 -22
  433. package/build/dist/excalibur.js.map +1 -1
  434. package/build/dist/excalibur.min.js +1 -1
  435. package/build/dist/excalibur.min.js.LICENSE.txt +1 -1
  436. package/build/dist/excalibur.min.js.map +1 -1
  437. package/build/dist/index.js +74 -0
  438. package/build/dist/index.js.map +1 -0
  439. package/build/esm/Engine.d.ts +4 -1
  440. package/build/esm/Graphics/Context/texture-loader.d.ts +8 -0
  441. package/build/esm/excalibur.js +101 -22
  442. package/build/esm/excalibur.js.map +1 -1
  443. package/build/esm/excalibur.min.js +1 -1
  444. package/build/esm/excalibur.min.js.LICENSE.txt +1 -1
  445. package/build/esm/excalibur.min.js.map +1 -1
  446. package/package.json +23 -22
@@ -0,0 +1,74 @@
1
+ /**
2
+ * The current Excalibur version string
3
+ * @description `'0.25.3'` gets replaced by Webpack on build
4
+ */
5
+ export const EX_VERSION = '0.25.3';
6
+ import { polyfill } from './Polyfill';
7
+ polyfill();
8
+ // This file is used as the bundle entry point and exports everything
9
+ // that will be exposed as the `ex` global variable.
10
+ export * from './Flags';
11
+ export * from './Id';
12
+ export * from './Engine';
13
+ export * from './Screen';
14
+ export { Actor } from './Actor';
15
+ export * from './Math/Index';
16
+ export * from './Camera';
17
+ export * from './Class';
18
+ export * from './Configurable';
19
+ export * from './Debug/index';
20
+ export * from './EventDispatcher';
21
+ export * from './Events/MediaEvents';
22
+ export * from './Events';
23
+ export * from './Label';
24
+ export { FontStyle, FontUnit, TextAlign, BaseAlign } from './Graphics/FontCommon';
25
+ export * from './Loader';
26
+ export { Particle, ParticleEmitter, EmitterType } from './Particles';
27
+ export * from './Collision/Physics';
28
+ export * from './Scene';
29
+ export { TileMap, Cell } from './TileMap';
30
+ export * from './Timer';
31
+ export * from './Trigger';
32
+ export * from './ScreenElement';
33
+ export * from './Actions/Index';
34
+ export * from './Collision/Index';
35
+ // ex.LegacyDrawing namespace
36
+ import * as legacyDrawing from './Drawing/Index';
37
+ export { legacyDrawing as LegacyDrawing };
38
+ export * from './Interfaces/Index';
39
+ export * from './Resources/Index';
40
+ export * from './EntityComponentSystem/index';
41
+ export * from './Color';
42
+ export * from './Graphics/index';
43
+ // ex.Events namespace
44
+ import * as events from './Events';
45
+ export { events as Events };
46
+ // ex.Input namespace
47
+ import * as input from './Input/Index';
48
+ export { input as Input };
49
+ export { PointerComponent } from './Input/Index';
50
+ export { PointerSystem } from './Input/PointerSystem';
51
+ // ex.Traits namespace
52
+ import * as traits from './Traits/Index';
53
+ export { traits as Traits };
54
+ // ex.Util namespaces
55
+ import * as util from './Util/Index';
56
+ export { util as Util };
57
+ export * from './Util/Browser';
58
+ export * from './Util/Decorators';
59
+ export * from './Util/Detector';
60
+ export * from './Util/CullingBox';
61
+ export * from './Util/EasingFunctions';
62
+ export * from './Util/Observable';
63
+ export * from './Util/Log';
64
+ export * from './Util/SortedList';
65
+ export * from './Util/Pool';
66
+ export * from './Util/Fps';
67
+ export * from './Util/Clock';
68
+ export * from './Util/WebAudio';
69
+ // ex.Deprecated
70
+ export * from './Promises';
71
+ // import * as deprecated from './Deprecated';
72
+ // export { deprecated as Deprecated };
73
+ // export * from './Deprecated';
74
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,QAAQ,EAAE,CAAC;AAEX,qEAAqE;AACrE,oDAAoD;AACpD,cAAc,SAAS,CAAC;AACxB,cAAc,MAAM,CAAC;AACrB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,KAAK,EAAa,MAAM,SAAS,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClF,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAqC,WAAW,EAAE,MAAM,aAAa,CAAC;AACxG,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAyB,MAAM,WAAW,CAAC;AACjE,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,6BAA6B;AAC7B,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,cAAc,+BAA+B,CAAC;AAE9C,cAAc,SAAS,CAAC;AAExB,cAAc,kBAAkB,CAAC;AAEjC,sBAAsB;AACtB,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC;AAE5B,qBAAqB;AACrB,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,sBAAsB;AACtB,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC;AAE5B,qBAAqB;AACrB,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;AAExB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAEhC,gBAAgB;AAChB,cAAc,YAAY,CAAC;AAC3B,8CAA8C;AAC9C,uCAAuC;AACvC,gCAAgC"}
@@ -629,11 +629,14 @@ export declare class Engine extends Class implements CanInitialize, CanUpdate, C
629
629
  * Returns the Engine's running status, Useful for checking whether engine is running or paused.
630
630
  */
631
631
  isRunning(): boolean;
632
+ private _screenShotRequests;
632
633
  /**
633
634
  * Takes a screen shot of the current viewport and returns it as an
634
635
  * HTML Image Element.
636
+ * @param preserveHiDPIResolution in the case of HiDPI return the full scaled backing image, by default false
635
637
  */
636
- screenshot(): HTMLImageElement;
638
+ screenshot(preserveHiDPIResolution?: boolean): Promise<HTMLImageElement>;
639
+ private _checkForScreenShots;
637
640
  /**
638
641
  * Another option available to you to load resources into the game.
639
642
  * Immediately after calling this the game will pause and the loading screen
@@ -4,6 +4,7 @@ import { HTMLImageSource } from './ExcaliburGraphicsContext';
4
4
  * Manages loading image sources into webgl textures, a unique id is associated with all sources
5
5
  */
6
6
  export declare class TextureLoader {
7
+ private static _LOGGER;
7
8
  /**
8
9
  * Sets the default filtering for the Excalibur texture loader, default [[ImageFiltering.Blended]]
9
10
  */
@@ -12,6 +13,7 @@ export declare class TextureLoader {
12
13
  private static _POT_CTX;
13
14
  private static _GL;
14
15
  private static _TEXTURE_MAP;
16
+ private static _MAX_TEXTURE_SIZE;
15
17
  static register(context: WebGLRenderingContext): void;
16
18
  /**
17
19
  * Get the WebGL Texture from a source image
@@ -36,4 +38,10 @@ export declare class TextureLoader {
36
38
  * @param image
37
39
  */
38
40
  static toPowerOfTwoImage(image: HTMLImageSource): HTMLImageSource;
41
+ /**
42
+ * Takes an image and returns if it meets size criteria for hardware
43
+ * @param image
44
+ * @returns if the image will be supported at runtime
45
+ */
46
+ static checkImageSizeSupportedAndLog(image: HTMLImageSource): boolean;
39
47
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * excalibur - 0.25.2 - 2022-1-21
2
+ * excalibur - 0.25.3 - 2022-2-5
3
3
  * https://github.com/excaliburjs/Excalibur
4
4
  * Copyright (c) 2022 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
5
5
  * Licensed BSD-2-Clause
@@ -533,14 +533,30 @@ module.exports = function (exec) {
533
533
  };
534
534
 
535
535
 
536
+ /***/ }),
537
+
538
+ /***/ 7188:
539
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
540
+
541
+ var fails = __webpack_require__(4229);
542
+
543
+ module.exports = !fails(function () {
544
+ var test = (function () { /* empty */ }).bind();
545
+ // eslint-disable-next-line no-prototype-builtins -- safe
546
+ return typeof test != 'function' || test.hasOwnProperty('prototype');
547
+ });
548
+
549
+
536
550
  /***/ }),
537
551
 
538
552
  /***/ 266:
539
- /***/ ((module) => {
553
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
554
+
555
+ var NATIVE_BIND = __webpack_require__(7188);
540
556
 
541
557
  var call = Function.prototype.call;
542
558
 
543
- module.exports = call.bind ? call.bind(call) : function () {
559
+ module.exports = NATIVE_BIND ? call.bind(call) : function () {
544
560
  return call.apply(call, arguments);
545
561
  };
546
562
 
@@ -572,14 +588,16 @@ module.exports = {
572
588
  /***/ }),
573
589
 
574
590
  /***/ 5968:
575
- /***/ ((module) => {
591
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
592
+
593
+ var NATIVE_BIND = __webpack_require__(7188);
576
594
 
577
595
  var FunctionPrototype = Function.prototype;
578
596
  var bind = FunctionPrototype.bind;
579
597
  var call = FunctionPrototype.call;
580
- var uncurryThis = bind && bind.bind(call, call);
598
+ var uncurryThis = NATIVE_BIND && bind.bind(call, call);
581
599
 
582
- module.exports = bind ? function (fn) {
600
+ module.exports = NATIVE_BIND ? function (fn) {
583
601
  return fn && uncurryThis(fn);
584
602
  } : function (fn) {
585
603
  return fn && function () {
@@ -675,7 +693,7 @@ var DESCRIPTORS = __webpack_require__(7400);
675
693
  var fails = __webpack_require__(4229);
676
694
  var createElement = __webpack_require__(2635);
677
695
 
678
- // Thank's IE8 for his funny defineProperty
696
+ // Thanks to IE8 for its funny defineProperty
679
697
  module.exports = !DESCRIPTORS && !fails(function () {
680
698
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
681
699
  return Object.defineProperty(createElement('div'), 'a', {
@@ -1298,9 +1316,11 @@ var store = __webpack_require__(5353);
1298
1316
  (module.exports = function (key, value) {
1299
1317
  return store[key] || (store[key] = value !== undefined ? value : {});
1300
1318
  })('versions', []).push({
1301
- version: '3.20.2',
1319
+ version: '3.21.0',
1302
1320
  mode: IS_PURE ? 'pure' : 'global',
1303
- copyright: '© 2022 Denis Pushkarev (zloirock.ru)'
1321
+ copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',
1322
+ license: 'https://github.com/zloirock/core-js/blob/v3.21.0/LICENSE',
1323
+ source: 'https://github.com/zloirock/core-js'
1304
1324
  });
1305
1325
 
1306
1326
 
@@ -5521,12 +5541,14 @@ var ImageFiltering;
5521
5541
  ;// CONCATENATED MODULE: ./Graphics/Context/texture-loader.ts
5522
5542
 
5523
5543
 
5544
+
5524
5545
  /**
5525
5546
  * Manages loading image sources into webgl textures, a unique id is associated with all sources
5526
5547
  */
5527
5548
  class TextureLoader {
5528
5549
  static register(context) {
5529
5550
  TextureLoader._GL = context;
5551
+ TextureLoader._MAX_TEXTURE_SIZE = context.getParameter(context.MAX_TEXTURE_SIZE);
5530
5552
  }
5531
5553
  /**
5532
5554
  * Get the WebGL Texture from a source image
@@ -5571,6 +5593,7 @@ class TextureLoader {
5571
5593
  // No texture exists create a new one
5572
5594
  tex = gl.createTexture();
5573
5595
  const source = TextureLoader.toPowerOfTwoImage(image);
5596
+ TextureLoader.checkImageSizeSupportedAndLog(image);
5574
5597
  gl.bindTexture(gl.TEXTURE_2D, tex);
5575
5598
  gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);
5576
5599
  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
@@ -5602,7 +5625,32 @@ class TextureLoader {
5602
5625
  }
5603
5626
  return image;
5604
5627
  }
5628
+ /**
5629
+ * Takes an image and returns if it meets size criteria for hardware
5630
+ * @param image
5631
+ * @returns if the image will be supported at runtime
5632
+ */
5633
+ static checkImageSizeSupportedAndLog(image) {
5634
+ var _a;
5635
+ const originalSrc = (_a = image.dataset.originalSrc) !== null && _a !== void 0 ? _a : 'internal canvas bitmap';
5636
+ if (image.width > TextureLoader._MAX_TEXTURE_SIZE || image.height > TextureLoader._MAX_TEXTURE_SIZE) {
5637
+ TextureLoader._LOGGER.error(`The image [${originalSrc}] provided to Excalibur is too large for the device's maximum texture size of ` +
5638
+ `(${TextureLoader._MAX_TEXTURE_SIZE}x${TextureLoader._MAX_TEXTURE_SIZE}) please resize to an image `
5639
+ + `for excalibur to render properly.\n\nImages will likely render as black rectangles.\n\n` +
5640
+ `Read more here: https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#understand_system_limits`);
5641
+ return false;
5642
+ }
5643
+ else if (image.width > 4096 || image.height > 4096) {
5644
+ // https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#understand_system_limits
5645
+ TextureLoader._LOGGER.warn(`The image [${originalSrc}] provided to excalibur is too large may not work on all mobile devices, ` +
5646
+ `it is recommended you resize images to a maximum (4096x4096).\n\n` +
5647
+ `Images will likely render as black rectangles on some mobile platforms.\n\n` +
5648
+ `Read more here: https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#understand_system_limits`);
5649
+ }
5650
+ return true;
5651
+ }
5605
5652
  }
5653
+ TextureLoader._LOGGER = Logger.getInstance();
5606
5654
  /**
5607
5655
  * Sets the default filtering for the Excalibur texture loader, default [[ImageFiltering.Blended]]
5608
5656
  */
@@ -5610,6 +5658,7 @@ TextureLoader.filtering = ImageFiltering.Blended;
5610
5658
  TextureLoader._POT_CANVAS = document.createElement('canvas');
5611
5659
  TextureLoader._POT_CTX = TextureLoader._POT_CANVAS.getContext('2d');
5612
5660
  TextureLoader._TEXTURE_MAP = new Map();
5661
+ TextureLoader._MAX_TEXTURE_SIZE = 0;
5613
5662
 
5614
5663
  ;// CONCATENATED MODULE: ./Graphics/Raster.ts
5615
5664
 
@@ -7430,6 +7479,7 @@ class ImageSource {
7430
7479
  // Decode the image
7431
7480
  const image = new Image();
7432
7481
  image.src = url;
7482
+ image.setAttribute('data-original-src', this.path);
7433
7483
  await image.decode();
7434
7484
  // Set results
7435
7485
  this.data = image;
@@ -9404,7 +9454,8 @@ class ImageRenderer {
9404
9454
  this._gl = gl;
9405
9455
  this._context = context;
9406
9456
  // Transform shader source
9407
- this._maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);
9457
+ // FIXME: PIXEL 6 complains `ERROR: Expression too complex.` if we use it's reported max texture units, 125 seems to work for now...
9458
+ this._maxTextures = Math.min(gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS), 125);
9408
9459
  const transformedFrag = this._transformFragmentSource(image_renderer_frag, this._maxTextures);
9409
9460
  // Compile shader
9410
9461
  this._shader = new Shader({
@@ -10144,11 +10195,8 @@ class ExcaliburGraphicsContextWebGL {
10144
10195
  */
10145
10196
  checkIfResolutionSupported(dim) {
10146
10197
  // Slight hack based on this thread https://groups.google.com/g/webgl-dev-list/c/AHONvz3oQTo
10147
- const gl = this.__gl;
10148
- // If any dimension is greater than max texture size (divide by 4 bytes per pixel)
10149
- const maxDim = gl.getParameter(gl.MAX_TEXTURE_SIZE) / 4;
10150
10198
  let supported = true;
10151
- if (dim.width > maxDim || dim.height > maxDim) {
10199
+ if (dim.width > 4096 || dim.height > 4096) {
10152
10200
  supported = false;
10153
10201
  }
10154
10202
  return supported;
@@ -14624,7 +14672,7 @@ const CollisionJumpTable = {
14624
14672
  let normal = separation.axis;
14625
14673
  let tangent = normal.perpendicular();
14626
14674
  // Point Contact A -> B
14627
- if (polyB.worldPos.sub(polyA.worldPos).dot(normal) < 0) {
14675
+ if (polyB.center.sub(polyA.center).dot(normal) < 0) {
14628
14676
  normal = normal.negate();
14629
14677
  tangent = normal.perpendicular();
14630
14678
  }
@@ -26331,7 +26379,14 @@ class PointerEventReceiver extends Class {
26331
26379
  */
26332
26380
  init() {
26333
26381
  // Disabling the touch action avoids browser/platform gestures from firing on the canvas
26334
- this.engine.canvas.style.touchAction = 'none';
26382
+ // It is important on mobile to have touch action 'none'
26383
+ // https://stackoverflow.com/questions/48124372/pointermove-event-not-working-with-touch-why-not
26384
+ if (this.target === this.engine.canvas) {
26385
+ this.engine.canvas.style.touchAction = 'none';
26386
+ }
26387
+ else {
26388
+ document.body.style.touchAction = 'none';
26389
+ }
26335
26390
  // Preferred pointer events
26336
26391
  if (window.PointerEvent) {
26337
26392
  this.target.addEventListener('pointerdown', this._boundHandle);
@@ -26965,6 +27020,7 @@ class Engine extends Class {
26965
27020
  this._isReadyPromise = new Promise(resolve => {
26966
27021
  this._isReadyResolve = resolve;
26967
27022
  });
27023
+ this._screenShotRequests = [];
26968
27024
  options = { ...Engine._DEFAULT_ENGINE_OPTIONS, ...options };
26969
27025
  Flags.freeze();
26970
27026
  // Initialize browser events facade
@@ -27529,6 +27585,7 @@ O|===|* >________________>\n\
27529
27585
  // Flush any pending drawings
27530
27586
  this.graphicsContext.flush();
27531
27587
  this.graphicsContext.endDrawLifecycle();
27588
+ this._checkForScreenShots();
27532
27589
  }
27533
27590
  /**
27534
27591
  * @internal
@@ -27737,12 +27794,34 @@ O|===|* >________________>\n\
27737
27794
  /**
27738
27795
  * Takes a screen shot of the current viewport and returns it as an
27739
27796
  * HTML Image Element.
27797
+ * @param preserveHiDPIResolution in the case of HiDPI return the full scaled backing image, by default false
27740
27798
  */
27741
- screenshot() {
27742
- const result = new Image();
27743
- const raw = this.canvas.toDataURL('image/png');
27744
- result.src = raw;
27745
- return result;
27799
+ screenshot(preserveHiDPIResolution = false) {
27800
+ const screenShotPromise = new Promise((resolve) => {
27801
+ this._screenShotRequests.push({ preserveHiDPIResolution, resolve });
27802
+ });
27803
+ return screenShotPromise;
27804
+ }
27805
+ _checkForScreenShots() {
27806
+ // We must grab the draw buffer before we yield to the browser
27807
+ // the draw buffer is cleared after compositing
27808
+ // the reason for the asynchrony is setting `preserveDrawingBuffer: true`
27809
+ // forces the browser to copy buffers which can have a mass perf impact on mobile
27810
+ for (const request of this._screenShotRequests) {
27811
+ const finalWidth = request.preserveHiDPIResolution ? this.canvas.width : this.screen.resolution.width;
27812
+ const finalHeight = request.preserveHiDPIResolution ? this.canvas.height : this.screen.resolution.height;
27813
+ const screenshot = document.createElement('canvas');
27814
+ screenshot.width = finalWidth;
27815
+ screenshot.height = finalHeight;
27816
+ const ctx = screenshot.getContext('2d');
27817
+ ctx.drawImage(this.canvas, 0, 0, finalWidth, finalHeight);
27818
+ const result = new Image();
27819
+ const raw = screenshot.toDataURL('image/png');
27820
+ result.src = raw;
27821
+ request.resolve(result);
27822
+ }
27823
+ // Reset state
27824
+ this._screenShotRequests.length = 0;
27746
27825
  }
27747
27826
  /**
27748
27827
  * Another option available to you to load resources into the game.
@@ -30100,7 +30179,7 @@ Promises_Promise = Promise_1 = Promises_decorate([
30100
30179
  * The current Excalibur version string
30101
30180
  * @description `process.env.__EX_VERSION` gets replaced by Webpack on build
30102
30181
  */
30103
- const EX_VERSION = "0.25.2";
30182
+ const EX_VERSION = "0.25.3";
30104
30183
 
30105
30184
  polyfill();
30106
30185
  // This file is used as the bundle entry point and exports everything