@vpmedia/phaser 1.112.0 → 1.113.0

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 (295) hide show
  1. package/dist/index.js +1261 -1314
  2. package/dist/index.js.map +1 -1
  3. package/dist/phaser/core/animation.d.ts +14 -10
  4. package/dist/phaser/core/animation.d.ts.map +1 -1
  5. package/dist/phaser/core/animation_manager.d.ts +10 -8
  6. package/dist/phaser/core/animation_manager.d.ts.map +1 -1
  7. package/dist/phaser/core/animation_parser.d.ts +5 -4
  8. package/dist/phaser/core/animation_parser.d.ts.map +1 -1
  9. package/dist/phaser/core/array_set.d.ts.map +1 -1
  10. package/dist/phaser/core/cache.d.ts +4 -3
  11. package/dist/phaser/core/cache.d.ts.map +1 -1
  12. package/dist/phaser/core/const.d.ts.map +1 -1
  13. package/dist/phaser/core/device.d.ts.map +1 -1
  14. package/dist/phaser/core/device_util.d.ts.map +1 -1
  15. package/dist/phaser/core/dom.d.ts +3 -2
  16. package/dist/phaser/core/dom.d.ts.map +1 -1
  17. package/dist/phaser/core/event_manager.d.ts.map +1 -1
  18. package/dist/phaser/core/factory.d.ts +1 -1
  19. package/dist/phaser/core/factory.d.ts.map +1 -1
  20. package/dist/phaser/core/frame.d.ts.map +1 -1
  21. package/dist/phaser/core/frame_data.d.ts.map +1 -1
  22. package/dist/phaser/core/game.d.ts.map +1 -1
  23. package/dist/phaser/core/input.d.ts +8 -6
  24. package/dist/phaser/core/input.d.ts.map +1 -1
  25. package/dist/phaser/core/input_handler.d.ts +40 -30
  26. package/dist/phaser/core/input_handler.d.ts.map +1 -1
  27. package/dist/phaser/core/input_mouse.d.ts +3 -2
  28. package/dist/phaser/core/input_mouse.d.ts.map +1 -1
  29. package/dist/phaser/core/input_mspointer.d.ts +3 -2
  30. package/dist/phaser/core/input_mspointer.d.ts.map +1 -1
  31. package/dist/phaser/core/input_pointer.d.ts +6 -4
  32. package/dist/phaser/core/input_pointer.d.ts.map +1 -1
  33. package/dist/phaser/core/input_touch.d.ts +3 -2
  34. package/dist/phaser/core/input_touch.d.ts.map +1 -1
  35. package/dist/phaser/core/loader.d.ts +4 -3
  36. package/dist/phaser/core/loader.d.ts.map +1 -1
  37. package/dist/phaser/core/loader_parser.d.ts +9 -8
  38. package/dist/phaser/core/loader_parser.d.ts.map +1 -1
  39. package/dist/phaser/core/raf.d.ts +3 -2
  40. package/dist/phaser/core/raf.d.ts.map +1 -1
  41. package/dist/phaser/core/registry.d.ts +7 -0
  42. package/dist/phaser/core/registry.d.ts.map +1 -0
  43. package/dist/phaser/core/scale_manager.d.ts +1 -1
  44. package/dist/phaser/core/scale_manager.d.ts.map +1 -1
  45. package/dist/phaser/core/scene.d.ts +0 -1
  46. package/dist/phaser/core/scene.d.ts.map +1 -1
  47. package/dist/phaser/core/scene_manager.d.ts +1 -1
  48. package/dist/phaser/core/scene_manager.d.ts.map +1 -1
  49. package/dist/phaser/core/signal.d.ts +0 -1
  50. package/dist/phaser/core/signal.d.ts.map +1 -1
  51. package/dist/phaser/core/signal_binding.d.ts +4 -3
  52. package/dist/phaser/core/signal_binding.d.ts.map +1 -1
  53. package/dist/phaser/core/sound.d.ts +6 -4
  54. package/dist/phaser/core/sound.d.ts.map +1 -1
  55. package/dist/phaser/core/sound_manager.d.ts +3 -2
  56. package/dist/phaser/core/sound_manager.d.ts.map +1 -1
  57. package/dist/phaser/core/sound_sprite.d.ts +5 -4
  58. package/dist/phaser/core/sound_sprite.d.ts.map +1 -1
  59. package/dist/phaser/core/stage.d.ts +3 -2
  60. package/dist/phaser/core/stage.d.ts.map +1 -1
  61. package/dist/phaser/core/time.d.ts +1 -1
  62. package/dist/phaser/core/time.d.ts.map +1 -1
  63. package/dist/phaser/core/timer.d.ts +1 -1
  64. package/dist/phaser/core/timer.d.ts.map +1 -1
  65. package/dist/phaser/core/timer_event.d.ts.map +1 -1
  66. package/dist/phaser/core/tween.d.ts +10 -7
  67. package/dist/phaser/core/tween.d.ts.map +1 -1
  68. package/dist/phaser/core/tween_data.d.ts +3 -2
  69. package/dist/phaser/core/tween_data.d.ts.map +1 -1
  70. package/dist/phaser/core/tween_easing.d.ts.map +1 -1
  71. package/dist/phaser/core/tween_manager.d.ts +3 -2
  72. package/dist/phaser/core/tween_manager.d.ts.map +1 -1
  73. package/dist/phaser/core/world.d.ts +3 -2
  74. package/dist/phaser/core/world.d.ts.map +1 -1
  75. package/dist/phaser/display/bitmap_text.d.ts +3 -2
  76. package/dist/phaser/display/bitmap_text.d.ts.map +1 -1
  77. package/dist/phaser/display/button.d.ts +3 -2
  78. package/dist/phaser/display/button.d.ts.map +1 -1
  79. package/dist/phaser/display/canvas/buffer.d.ts.map +1 -1
  80. package/dist/phaser/display/canvas/graphics.d.ts +7 -6
  81. package/dist/phaser/display/canvas/graphics.d.ts.map +1 -1
  82. package/dist/phaser/display/canvas/pool.d.ts +2 -2
  83. package/dist/phaser/display/canvas/pool.d.ts.map +1 -1
  84. package/dist/phaser/display/canvas/renderer.d.ts +10 -8
  85. package/dist/phaser/display/canvas/renderer.d.ts.map +1 -1
  86. package/dist/phaser/display/canvas/tinter.d.ts +3 -2
  87. package/dist/phaser/display/canvas/tinter.d.ts.map +1 -1
  88. package/dist/phaser/display/canvas/util.d.ts +2 -2
  89. package/dist/phaser/display/canvas/util.d.ts.map +1 -1
  90. package/dist/phaser/display/display_object.d.ts +14 -12
  91. package/dist/phaser/display/display_object.d.ts.map +1 -1
  92. package/dist/phaser/display/graphics.d.ts +8 -5
  93. package/dist/phaser/display/graphics.d.ts.map +1 -1
  94. package/dist/phaser/display/graphics_data.d.ts.map +1 -1
  95. package/dist/phaser/display/graphics_data_util.d.ts.map +1 -1
  96. package/dist/phaser/display/group.d.ts +4 -3
  97. package/dist/phaser/display/group.d.ts.map +1 -1
  98. package/dist/phaser/display/image.d.ts +13 -10
  99. package/dist/phaser/display/image.d.ts.map +1 -1
  100. package/dist/phaser/display/sprite_batch.d.ts +3 -2
  101. package/dist/phaser/display/sprite_batch.d.ts.map +1 -1
  102. package/dist/phaser/display/sprite_util.d.ts +18 -15
  103. package/dist/phaser/display/sprite_util.d.ts.map +1 -1
  104. package/dist/phaser/display/text.d.ts +11 -9
  105. package/dist/phaser/display/text.d.ts.map +1 -1
  106. package/dist/phaser/display/webgl/abstract_filter.d.ts.map +1 -1
  107. package/dist/phaser/display/webgl/base_texture.d.ts.map +1 -1
  108. package/dist/phaser/display/webgl/blend_manager.d.ts +0 -1
  109. package/dist/phaser/display/webgl/blend_manager.d.ts.map +1 -1
  110. package/dist/phaser/display/webgl/earcut.d.ts +1 -1
  111. package/dist/phaser/display/webgl/earcut.d.ts.map +1 -1
  112. package/dist/phaser/display/webgl/earcut_node.d.ts.map +1 -1
  113. package/dist/phaser/display/webgl/fast_sprite_batch.d.ts +4 -3
  114. package/dist/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
  115. package/dist/phaser/display/webgl/filter_manager.d.ts +2 -1
  116. package/dist/phaser/display/webgl/filter_manager.d.ts.map +1 -1
  117. package/dist/phaser/display/webgl/filter_texture.d.ts +2 -1
  118. package/dist/phaser/display/webgl/filter_texture.d.ts.map +1 -1
  119. package/dist/phaser/display/webgl/graphics.d.ts +7 -6
  120. package/dist/phaser/display/webgl/graphics.d.ts.map +1 -1
  121. package/dist/phaser/display/webgl/graphics_data.d.ts +2 -1
  122. package/dist/phaser/display/webgl/graphics_data.d.ts.map +1 -1
  123. package/dist/phaser/display/webgl/render_texture.d.ts +4 -2
  124. package/dist/phaser/display/webgl/render_texture.d.ts.map +1 -1
  125. package/dist/phaser/display/webgl/renderer.d.ts +16 -11
  126. package/dist/phaser/display/webgl/renderer.d.ts.map +1 -1
  127. package/dist/phaser/display/webgl/shader/complex.d.ts +16 -6
  128. package/dist/phaser/display/webgl/shader/complex.d.ts.map +1 -1
  129. package/dist/phaser/display/webgl/shader/fast.d.ts +19 -7
  130. package/dist/phaser/display/webgl/shader/fast.d.ts.map +1 -1
  131. package/dist/phaser/display/webgl/shader/normal.d.ts +33 -12
  132. package/dist/phaser/display/webgl/shader/normal.d.ts.map +1 -1
  133. package/dist/phaser/display/webgl/shader/primitive.d.ts +15 -6
  134. package/dist/phaser/display/webgl/shader/primitive.d.ts.map +1 -1
  135. package/dist/phaser/display/webgl/shader/strip.d.ts +15 -6
  136. package/dist/phaser/display/webgl/shader/strip.d.ts.map +1 -1
  137. package/dist/phaser/display/webgl/shader_manager.d.ts +16 -11
  138. package/dist/phaser/display/webgl/shader_manager.d.ts.map +1 -1
  139. package/dist/phaser/display/webgl/sprite_batch.d.ts +29 -20
  140. package/dist/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
  141. package/dist/phaser/display/webgl/stencil_manager.d.ts +12 -10
  142. package/dist/phaser/display/webgl/stencil_manager.d.ts.map +1 -1
  143. package/dist/phaser/display/webgl/texture.d.ts +3 -2
  144. package/dist/phaser/display/webgl/texture.d.ts.map +1 -1
  145. package/dist/phaser/display/webgl/texture_util.d.ts.map +1 -1
  146. package/dist/phaser/display/webgl/util.d.ts.map +1 -1
  147. package/dist/phaser/geom/circle.d.ts +4 -1
  148. package/dist/phaser/geom/circle.d.ts.map +1 -1
  149. package/dist/phaser/geom/ellipse.d.ts.map +1 -1
  150. package/dist/phaser/geom/line.d.ts +1 -1
  151. package/dist/phaser/geom/line.d.ts.map +1 -1
  152. package/dist/phaser/geom/matrix.d.ts.map +1 -1
  153. package/dist/phaser/geom/point.d.ts.map +1 -1
  154. package/dist/phaser/geom/polygon.d.ts.map +1 -1
  155. package/dist/phaser/geom/rectangle.d.ts.map +1 -1
  156. package/dist/phaser/geom/rounded_rectangle.d.ts.map +1 -1
  157. package/dist/phaser/geom/util/circle.d.ts.map +1 -1
  158. package/dist/phaser/geom/util/ellipse.d.ts +3 -2
  159. package/dist/phaser/geom/util/ellipse.d.ts.map +1 -1
  160. package/dist/phaser/geom/util/line.d.ts.map +1 -1
  161. package/dist/phaser/geom/util/matrix.d.ts +2 -2
  162. package/dist/phaser/geom/util/matrix.d.ts.map +1 -1
  163. package/dist/phaser/geom/util/point.d.ts.map +1 -1
  164. package/dist/phaser/geom/util/rectangle.d.ts +1 -1
  165. package/dist/phaser/geom/util/rectangle.d.ts.map +1 -1
  166. package/dist/phaser/util/math.d.ts.map +1 -1
  167. package/package.json +5 -5
  168. package/src/phaser/core/animation.ts +64 -60
  169. package/src/phaser/core/animation_manager.ts +50 -53
  170. package/src/phaser/core/animation_parser.ts +9 -9
  171. package/src/phaser/core/array_set.ts +16 -17
  172. package/src/phaser/core/cache.ts +92 -93
  173. package/src/phaser/core/const.ts +1 -1
  174. package/src/phaser/core/device.ts +24 -29
  175. package/src/phaser/core/device_util.ts +22 -26
  176. package/src/phaser/core/dom.ts +54 -65
  177. package/src/phaser/core/event_manager.ts +64 -94
  178. package/src/phaser/core/factory.ts +14 -14
  179. package/src/phaser/core/frame.ts +28 -28
  180. package/src/phaser/core/frame_data.test.ts +100 -0
  181. package/src/phaser/core/frame_data.ts +24 -24
  182. package/src/phaser/core/frame_util.ts +2 -2
  183. package/src/phaser/core/game.ts +47 -48
  184. package/src/phaser/core/input.ts +104 -110
  185. package/src/phaser/core/input_handler.test.ts +113 -0
  186. package/src/phaser/core/input_handler.ts +199 -218
  187. package/src/phaser/core/input_mouse.ts +71 -54
  188. package/src/phaser/core/input_mspointer.ts +52 -39
  189. package/src/phaser/core/input_pointer.ts +81 -80
  190. package/src/phaser/core/input_touch.ts +49 -36
  191. package/src/phaser/core/loader.ts +173 -152
  192. package/src/phaser/core/loader_parser.ts +39 -57
  193. package/src/phaser/core/raf.ts +8 -7
  194. package/src/phaser/core/registry.test.ts +31 -0
  195. package/src/phaser/core/registry.ts +9 -0
  196. package/src/phaser/core/scale_manager.ts +156 -152
  197. package/src/phaser/core/scene.ts +9 -13
  198. package/src/phaser/core/scene_manager.ts +47 -47
  199. package/src/phaser/core/signal.test.ts +4 -4
  200. package/src/phaser/core/signal.ts +41 -52
  201. package/src/phaser/core/signal_binding.ts +26 -25
  202. package/src/phaser/core/signal_dispatch.test.ts +180 -0
  203. package/src/phaser/core/sound.ts +75 -83
  204. package/src/phaser/core/sound_manager.ts +52 -51
  205. package/src/phaser/core/sound_sprite.ts +17 -16
  206. package/src/phaser/core/stage.ts +25 -24
  207. package/src/phaser/core/time.ts +52 -52
  208. package/src/phaser/core/timer.test.ts +187 -0
  209. package/src/phaser/core/timer.ts +82 -69
  210. package/src/phaser/core/timer_event.ts +10 -10
  211. package/src/phaser/core/tween.ts +90 -93
  212. package/src/phaser/core/tween_data.ts +45 -51
  213. package/src/phaser/core/tween_easing.test.ts +106 -0
  214. package/src/phaser/core/tween_easing.ts +151 -123
  215. package/src/phaser/core/tween_manager.ts +19 -18
  216. package/src/phaser/core/world.ts +4 -3
  217. package/src/phaser/display/bitmap_text.ts +56 -64
  218. package/src/phaser/display/button.ts +33 -32
  219. package/src/phaser/display/canvas/buffer.ts +8 -8
  220. package/src/phaser/display/canvas/graphics.ts +36 -37
  221. package/src/phaser/display/canvas/masker.ts +2 -2
  222. package/src/phaser/display/canvas/pool.test.ts +106 -0
  223. package/src/phaser/display/canvas/pool.ts +25 -27
  224. package/src/phaser/display/canvas/renderer.ts +32 -31
  225. package/src/phaser/display/canvas/tinter.ts +25 -25
  226. package/src/phaser/display/canvas/util.ts +7 -10
  227. package/src/phaser/display/display_object.ts +114 -118
  228. package/src/phaser/display/graphics.ts +121 -119
  229. package/src/phaser/display/graphics_data.ts +12 -12
  230. package/src/phaser/display/graphics_data_util.ts +2 -3
  231. package/src/phaser/display/group.ts +50 -57
  232. package/src/phaser/display/image.ts +55 -52
  233. package/src/phaser/display/sprite_batch.ts +3 -2
  234. package/src/phaser/display/sprite_util.ts +48 -54
  235. package/src/phaser/display/text.ts +199 -204
  236. package/src/phaser/display/webgl/abstract_filter.ts +9 -9
  237. package/src/phaser/display/webgl/base_texture.ts +21 -24
  238. package/src/phaser/display/webgl/blend_manager.ts +6 -10
  239. package/src/phaser/display/webgl/earcut.ts +73 -37
  240. package/src/phaser/display/webgl/earcut_node.ts +10 -10
  241. package/src/phaser/display/webgl/fast_sprite_batch.ts +34 -34
  242. package/src/phaser/display/webgl/filter_manager.ts +13 -12
  243. package/src/phaser/display/webgl/filter_texture.ts +14 -13
  244. package/src/phaser/display/webgl/graphics.ts +51 -57
  245. package/src/phaser/display/webgl/graphics_data.ts +15 -14
  246. package/src/phaser/display/webgl/mask_manager.ts +2 -2
  247. package/src/phaser/display/webgl/render_texture.ts +26 -25
  248. package/src/phaser/display/webgl/renderer.ts +57 -62
  249. package/src/phaser/display/webgl/shader/complex.ts +28 -12
  250. package/src/phaser/display/webgl/shader/fast.ts +30 -12
  251. package/src/phaser/display/webgl/shader/normal.ts +70 -57
  252. package/src/phaser/display/webgl/shader/primitive.ts +26 -11
  253. package/src/phaser/display/webgl/shader/shader.test.ts +148 -0
  254. package/src/phaser/display/webgl/shader/strip.ts +27 -12
  255. package/src/phaser/display/webgl/shader_manager.test.ts +124 -0
  256. package/src/phaser/display/webgl/shader_manager.ts +26 -34
  257. package/src/phaser/display/webgl/sprite_batch.ts +67 -61
  258. package/src/phaser/display/webgl/stencil_manager.ts +23 -34
  259. package/src/phaser/display/webgl/texture.ts +43 -50
  260. package/src/phaser/display/webgl/texture_util.ts +2 -3
  261. package/src/phaser/display/webgl/util.ts +26 -25
  262. package/src/phaser/geom/circle.test.ts +2 -3
  263. package/src/phaser/geom/circle.ts +36 -36
  264. package/src/phaser/geom/ellipse.test.ts +73 -71
  265. package/src/phaser/geom/ellipse.ts +14 -14
  266. package/src/phaser/geom/line.test.ts +5 -5
  267. package/src/phaser/geom/line.ts +35 -35
  268. package/src/phaser/geom/matrix.test.ts +1 -1
  269. package/src/phaser/geom/matrix.ts +27 -27
  270. package/src/phaser/geom/point.test.ts +1 -2
  271. package/src/phaser/geom/point.ts +35 -35
  272. package/src/phaser/geom/polygon.test.ts +82 -0
  273. package/src/phaser/geom/polygon.ts +16 -16
  274. package/src/phaser/geom/rectangle.test.ts +14 -14
  275. package/src/phaser/geom/rectangle.ts +83 -75
  276. package/src/phaser/geom/rounded_rectangle.test.ts +1 -7
  277. package/src/phaser/geom/rounded_rectangle.ts +9 -9
  278. package/src/phaser/geom/util/circle.test.ts +25 -23
  279. package/src/phaser/geom/util/circle.ts +9 -18
  280. package/src/phaser/geom/util/ellipse.test.ts +7 -5
  281. package/src/phaser/geom/util/ellipse.ts +3 -2
  282. package/src/phaser/geom/util/line.test.ts +10 -8
  283. package/src/phaser/geom/util/line.ts +6 -16
  284. package/src/phaser/geom/util/matrix.test.ts +20 -18
  285. package/src/phaser/geom/util/matrix.ts +8 -15
  286. package/src/phaser/geom/util/point.test.ts +8 -6
  287. package/src/phaser/geom/util/point.ts +24 -28
  288. package/src/phaser/geom/util/polygon.test.ts +12 -10
  289. package/src/phaser/geom/util/polygon.ts +2 -2
  290. package/src/phaser/geom/util/rectangle.test.ts +10 -8
  291. package/src/phaser/geom/util/rectangle.ts +18 -37
  292. package/src/phaser/geom/util/rounded_rectangle.test.ts +11 -9
  293. package/src/phaser/geom/util/rounded_rectangle.ts +1 -1
  294. package/src/phaser/util/math.test.ts +11 -11
  295. package/src/phaser/util/math.ts +29 -46
@@ -1,18 +1,17 @@
1
1
  import { SCALE_LINEAR } from '../core/const.js';
2
2
  import { getIdentityMatrix } from '../geom/util/matrix.js';
3
3
  import { getTintedTexture } from './canvas/tinter.js';
4
+ import type { Image } from './image.js';
5
+ import type { Texture } from './webgl/texture.js';
6
+ import type { Matrix } from '../geom/matrix.js';
4
7
 
5
8
  /**
6
9
  * Sets the texture of a sprite.
7
- * @param {import('./image.js').Image} target - The target image to set the texture on.
8
- * @param {import('./webgl/texture.js').Texture} texture - The new texture to set.
10
+ * @param {Image} target - The target image to set the texture on.
11
+ * @param {Texture} texture - The new texture to set.
9
12
  * @param {boolean} destroyBase - Whether to destroy the base texture.
10
13
  */
11
- export const setTexture = (
12
- target: import('./image.js').Image,
13
- texture: import('./webgl/texture.js').Texture,
14
- destroyBase: boolean = false
15
- ) => {
14
+ export const setTexture = (target: Image, texture: Texture, destroyBase = false) => {
16
15
  if (destroyBase) {
17
16
  target.texture.baseTexture.destroy();
18
17
  }
@@ -24,28 +23,28 @@ export const setTexture = (
24
23
 
25
24
  /**
26
25
  * Gets the bounds of a sprite.
27
- * @param {import('./image.js').Image} target - The target image to get bounds for.
26
+ * @param {Image} target - The target image to get bounds for.
28
27
  * @param {object} matrix - The transformation matrix.
29
- * @returns {import('../geom/rectangle.js').Rectangle} The bounds rectangle.
28
+ * @returns {Rectangle} The bounds rectangle.
30
29
  */
31
- export const getBounds = (target: import('./image.js').Image, matrix: any | null = null) => {
30
+ export const getBounds = (target: Image, matrix: any | null = null) => {
32
31
  // TODO verify
33
32
  if (target.currentBounds) {
34
33
  return target.currentBounds;
35
34
  }
36
- const width = target.texture.frame.width;
37
- const height = target.texture.frame.height;
35
+ const { width } = target.texture.frame;
36
+ const { height } = target.texture.frame;
38
37
  let w0 = width * (1 - target.anchor.x);
39
38
  let w1 = width * -target.anchor.x;
40
39
  let h0 = height * (1 - target.anchor.y);
41
40
  let h1 = height * -target.anchor.y;
42
- const worldTransform = matrix || target.worldTransform;
43
- let a = worldTransform.a;
44
- const b = worldTransform.b;
45
- const c = worldTransform.c;
46
- let d = worldTransform.d;
47
- const tx = worldTransform.tx;
48
- const ty = worldTransform.ty;
41
+ const worldTransform = matrix ?? target.worldTransform;
42
+ let { a } = worldTransform;
43
+ const { b } = worldTransform;
44
+ const { c } = worldTransform;
45
+ let { d } = worldTransform;
46
+ const { tx } = worldTransform;
47
+ const { ty } = worldTransform;
49
48
  let maxX = -Infinity;
50
49
  let maxY = -Infinity;
51
50
  let minX = Infinity;
@@ -107,35 +106,30 @@ export const getBounds = (target: import('./image.js').Image, matrix: any | null
107
106
 
108
107
  /**
109
108
  * Gets the local bounds of a sprite.
110
- * @param {import('./image.js').Image} target - The target image to get local bounds for.
111
- * @returns {import('../geom/rectangle.js').Rectangle} The local bounds rectangle.
109
+ * @param {Image} target - The target image to get local bounds for.
110
+ * @returns {Rectangle} The local bounds rectangle.
112
111
  */
113
- export const getLocalBounds = (target: import('./image.js').Image) => {
112
+ export const getLocalBounds = (target: Image) => {
114
113
  const matrixCache = target.worldTransform;
115
114
  target.worldTransform = getIdentityMatrix();
116
- let i;
117
- for (i = 0; i < target.children.length; i += 1) {
118
- target.children[i].updateTransform();
115
+ for (const child of target.children) {
116
+ child.updateTransform();
119
117
  }
120
118
  const bounds = target.getBounds();
121
119
  target.worldTransform = matrixCache;
122
- for (i = 0; i < target.children.length; i += 1) {
123
- target.children[i].updateTransform();
120
+ for (const child of target.children) {
121
+ child.updateTransform();
124
122
  }
125
123
  return bounds;
126
124
  };
127
125
 
128
126
  /**
129
127
  * Renders a sprite using WebGL.
130
- * @param {import('./image.js').Image} target - The target image to render.
128
+ * @param {Image} target - The target image to render.
131
129
  * @param {object} renderSession - The render session object.
132
- * @param {import('../geom/matrix.js').Matrix | null | undefined} matrix - The transformation matrix.
130
+ * @param {Matrix | null | undefined} matrix - The transformation matrix.
133
131
  */
134
- export const renderWebGL = (
135
- target: import('./image.js').Image,
136
- renderSession: any,
137
- matrix: import('../geom/matrix.js').Matrix | null | undefined = null
138
- ) => {
132
+ export const renderWebGL = (target: Image, renderSession: any, matrix: Matrix | null | undefined = null) => {
139
133
  // if the sprite is not visible or the alpha is 0 then no need to render this element
140
134
  if (!target.visible || target.alpha <= 0 || !target.renderable) {
141
135
  return;
@@ -147,7 +141,7 @@ export const renderWebGL = (
147
141
  }
148
142
  // A quick check to see if this element has a mask or a filter.
149
143
  if (target._mask || target._filters) {
150
- const spriteBatch = renderSession.spriteBatch;
144
+ const { spriteBatch } = renderSession;
151
145
  // push filter first as we need to ensure the stencil buffer is correct for any masking
152
146
  if (target._filters) {
153
147
  spriteBatch.flush();
@@ -161,34 +155,34 @@ export const renderWebGL = (
161
155
  // add this sprite to the batch
162
156
  spriteBatch.render(target);
163
157
  // now loop through the children and make sure they get rendered
164
- for (let i = 0; i < target.children.length; i += 1) {
165
- target.children[i].renderWebGL(renderSession);
158
+ for (const child of target.children) {
159
+ child.renderWebGL(renderSession);
166
160
  }
167
161
  // time to stop the sprite batch as either a mask element or a filter draw will happen next
168
162
  spriteBatch.stop();
169
- if (target._mask) renderSession.maskManager.popMask(target._mask, renderSession);
170
- if (target._filters) renderSession.filterManager.popFilter();
163
+ if (target._mask) {
164
+ renderSession.maskManager.popMask(target._mask, renderSession);
165
+ }
166
+ if (target._filters) {
167
+ renderSession.filterManager.popFilter();
168
+ }
171
169
  spriteBatch.start();
172
170
  } else {
173
171
  renderSession.spriteBatch.render(target);
174
172
  // Render children!
175
- for (let i = 0; i < target.children.length; i += 1) {
176
- target.children[i].renderWebGL(renderSession, wt);
173
+ for (const child of target.children) {
174
+ child.renderWebGL(renderSession, wt);
177
175
  }
178
176
  }
179
177
  };
180
178
 
181
179
  /**
182
180
  * Renders a sprite using Canvas.
183
- * @param {import('./image.js').Image} target - The target image to render.
181
+ * @param {Image} target - The target image to render.
184
182
  * @param {object} renderSession - The render session object.
185
- * @param {import('../geom/matrix.js').Matrix | null | undefined} matrix - The transformation matrix.
183
+ * @param {Matrix | null | undefined} matrix - The transformation matrix.
186
184
  */
187
- export const renderCanvas = (
188
- target: import('./image.js').Image,
189
- renderSession: any,
190
- matrix: import('../geom/matrix.js').Matrix | null | undefined = null
191
- ) => {
185
+ export const renderCanvas = (target: Image, renderSession: any, matrix: Matrix | null | undefined = null) => {
192
186
  // If the sprite is not visible or the alpha is 0 then no need to render this element
193
187
  if (
194
188
  !target.visible ||
@@ -207,7 +201,7 @@ export const renderCanvas = (
207
201
  if (target.blendMode !== renderSession.currentBlendMode) {
208
202
  renderSession.currentBlendMode = target.blendMode;
209
203
  renderSession.context.globalCompositeOperation =
210
- window.PhaserRegistry.blendModesCanvas[renderSession.currentBlendMode];
204
+ globalThis.PhaserRegistry.blendModesCanvas[renderSession.currentBlendMode];
211
205
  }
212
206
  if (target._mask) {
213
207
  renderSession.maskManager.pushMask(target._mask, renderSession);
@@ -233,9 +227,9 @@ export const renderCanvas = (
233
227
  const ty = wt.ty * renderSession.resolution + renderSession.shakeY;
234
228
  // Allow for pixel rounding
235
229
  if (renderSession.roundPixels) {
236
- renderSession.context.setTransform(wt.a, wt.b, wt.c, wt.d, tx | 0, ty | 0);
237
- dx |= 0;
238
- dy |= 0;
230
+ renderSession.context.setTransform(wt.a, wt.b, wt.c, wt.d, Math.trunc(tx), Math.trunc(ty));
231
+ dx = Math.trunc(dx);
232
+ dy = Math.trunc(dy);
239
233
  } else {
240
234
  renderSession.context.setTransform(wt.a, wt.b, wt.c, wt.d, tx, ty);
241
235
  }
@@ -269,8 +263,8 @@ export const renderCanvas = (
269
263
  );
270
264
  }
271
265
  }
272
- for (let i = 0; i < target.children.length; i += 1) {
273
- target.children[i].renderCanvas(renderSession);
266
+ for (const child of target.children) {
267
+ child.renderCanvas(renderSession);
274
268
  }
275
269
  if (target._mask) {
276
270
  renderSession.maskManager.popMask(renderSession);