From c198203695bc2598ef33cb234f740af5ccfc3b78 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Fri, 22 Sep 2023 15:55:10 +0200 Subject: [PATCH 1/3] [ts] Closes #2370, added SpineCanvas.dispose and callback. --- CHANGELOG.md | 3 ++- spine-ts/spine-webgl/src/SpineCanvas.ts | 20 ++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed962b68e..a316f9333 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -104,7 +104,7 @@ * Tint Black: Added support for [Tint Black](http://en.esotericsoftware.com/spine-slots#Tint-black) functionality at all Spine URP shaders (2D and 3D shaders) and at all standard pipeline `Spine/Sprite` shaders. This feature can be enabled via the `Tint Black` material parameter in the Inspector. Note: The URP Sprite shaders provided in the Spine URP Shaders extension UPM package require the latest version of the spine-unity runtime (package version 4.1.12, 2023-05-31 or newer) to display the added material parameters in the Inspector GUI. * Added `SkeletonGraphic.MeshScale` property to allow access to calculated mesh scale. `MeshScale` is based on (1) Canvas pixels per unit, and (2) `RectTransform` bounds when using `Layout Scale Mode` other than `None` at `SkeletonGraphic` which scales the skeleton mesh to fit the parent `RectTransform` bounds accordingly. * Added `updateSeparatorPartScale` property to `SkeletonGraphic` to let render separator parts follow the scale (lossy scale) of the `SkeletonGraphic` GameObject. Defaults to `false` to maintain existing behaviour. - * Added experimental `EditorSkeletonPlayer` component to allow Editor playback of the initial animation set at `SkeletonAnimation` or `SkeletonGraphic` components. Add this component to your skeleton GameObject to enable the in-editor animation preview. Allows configurations for continuous playback when selected, deselected, and alternative single-frame preview by setting `Fixed Track Time` to any value other than 0. Limitations: At skeletons with variable material count the Inspector preview may be too unresponsive. It is then recommended to disable the `EditorSkeletonPlayer` component (at the top of the Inspector) to make it responsive again, then you can disable `Play When Selected` and re-enable the component to preview playback only when deselected. + * Added experimental `EditorSkeletonPlayer` component to allow Editor playback of the initial animation set at `SkeletonAnimation` or `SkeletonGraphic` components. Add this component to your skeleton GameObject to enable the in-editor animation preview. Allows configurations for continuous playback when selected, deselected, and alternative single-frame preview by setting `Fixed Track Time` to any value other than 0. Limitations: At skeletons with variable material count the Inspector preview may be too unresponsive. It is then recommended to disable the `EditorSkeletonPlayer` component (at the top of the Inspector) to make it responsive again, then you can disable `Play When Selected` and re-enable the component to preview playback only when deselected. * Added example component `RenderCombinedMesh` to render a combined mesh of multiple meshes or submeshes. This is required by `OutlineOnly` shaders to render a combined outline when using `SkeletonRenderSeparator` or multiple atlas pages which would normally lead to outlines around individual parts. To add a combined outline to your SkeletenRenderer: 1) Add a child GameObject and move it a bit back (e.g. position Z = 0.01). 2) Add a `RenderCombinedMesh` component, provided in the `Spine Examples/Scripts/Sample Components` directory. @@ -168,6 +168,7 @@ ### WebGL backend * `PolygonBatcher` can now disable culling automatically if the static variable `PolygonBatcher.disableCulling` is set to true. * Added `SpineCanvas`, a simpler way to render a scene via spine-webgl. See `spine-ts/spine-webgl/examples/barebones.html` and `spine-ts/spine-webgl/examples/mix-and-match.html`. + * Added `SpineCanavs.dispose()` to halt the updating and rendering of the canvas. ### Canvas backend * Improved example. diff --git a/spine-ts/spine-webgl/src/SpineCanvas.ts b/spine-ts/spine-webgl/src/SpineCanvas.ts index a2a3e29fc..ec8dc6cfa 100644 --- a/spine-ts/spine-webgl/src/SpineCanvas.ts +++ b/spine-ts/spine-webgl/src/SpineCanvas.ts @@ -32,12 +32,12 @@ import { TimeKeeper, AssetManager, ManagedWebGLRenderingContext, SceneRenderer, /** An app running inside a {@link SpineCanvas}. The app life-cycle * is as follows: * - * 1. `loadAssets()` is called. The app can queue assets for loading via {@link SpineCanvas#assetManager}. + * 1. `loadAssets()` is called. The app can queue assets for loading via {@link SpineCanvas.assetManager}. * 2. `initialize()` is called when all assets are loaded. The app can setup anything it needs to enter the main application logic. * 3. `update()` is called periodically at screen refresh rate. The app can update its state. - * 4. `render()` is called periodically at screen refresh rate. The app can render its state via {@link SpineCanvas#renderer} or directly via the WebGL context in {@link SpineCanvas.gl}` + * 4. `render()` is called periodically at screen refresh rate. The app can render its state via {@link SpineCanvas.renderer} or directly via the WebGL context in {@link SpineCanvas.gl}. * - * The `error()` method is called in case the assets could not be loaded. + * The `error()` method is called in case the assets could not be loaded. The `dispose()` method is called in case the canvas has been disposed via {@link SpineCanvas.dispose}. */ export interface SpineCanvasApp { loadAssets?(canvas: SpineCanvas): void; @@ -45,6 +45,7 @@ export interface SpineCanvasApp { update?(canvas: SpineCanvas, delta: number): void; render?(canvas: SpineCanvas): void; error?(canvas: SpineCanvas, errors: StringMap): void; + dispose?(canvas: SpineCanvas): void; } /** Configuration passed to the {@link SpineCanvas} constructor */ @@ -75,8 +76,10 @@ export class SpineCanvas { /** The input processor used to listen to mouse, touch, and keyboard events. */ readonly input: Input; + private disposed = false; + /** Constructs a new spine canvas, rendering to the provided HTML canvas. */ - constructor (canvas: HTMLCanvasElement, config: SpineCanvasConfig) { + constructor (canvas: HTMLCanvasElement, private config: SpineCanvasConfig) { if (!config.pathPrefix) config.pathPrefix = ""; if (!config.app) config.app = { loadAssets: () => { }, @@ -84,6 +87,7 @@ export class SpineCanvas { update: () => { }, render: () => { }, error: () => { }, + dispose: () => { }, } if (config.webglConfig) config.webglConfig = { alpha: true }; @@ -97,6 +101,7 @@ export class SpineCanvas { if (config.app.loadAssets) config.app.loadAssets(this); let loop = () => { + if (this.disposed) return; requestAnimationFrame(loop); this.time.update(); if (config.app.update) config.app.update(this, this.time.delta); @@ -104,6 +109,7 @@ export class SpineCanvas { } let waitForAssets = () => { + if (this.disposed) return; if (this.assetManager.isLoadingComplete()) { if (this.assetManager.hasErrors()) { if (config.app.error) config.app.error(this, this.assetManager.getErrors()); @@ -123,4 +129,10 @@ export class SpineCanvas { this.gl.clearColor(r, g, b, a); this.gl.clear(this.gl.COLOR_BUFFER_BIT); } + + /** Disposes the app, so the update() and render() functions are no longer called. Calls the dispose() callback.*/ + dispose() { + if (this.config.app.dispose) this.config.app.dispose(this); + this.disposed = true; + } } From f38790eeede19aafb7a65a7b8e98fba17285fa18 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Fri, 22 Sep 2023 16:03:50 +0200 Subject: [PATCH 2/3] [pixi] Update to 7.3.0, generalize loaders due to PIxi API change. --- spine-ts/spine-pixi/src/assets/atlasLoader.ts | 6 +++--- spine-ts/spine-pixi/src/assets/skeletonLoader.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/spine-ts/spine-pixi/src/assets/atlasLoader.ts b/spine-ts/spine-pixi/src/assets/atlasLoader.ts index a05774563..cc008c449 100644 --- a/spine-ts/spine-pixi/src/assets/atlasLoader.ts +++ b/spine-ts/spine-pixi/src/assets/atlasLoader.ts @@ -29,7 +29,7 @@ import { TextureAtlas } from "@esotericsoftware/spine-core"; import { SpineTexture } from "../SpineTexture"; -import type { AssetExtension, LoadAsset, Loader } from "@pixi/assets"; +import type { AssetExtension, Loader } from "@pixi/assets"; import { LoaderParserPriority, checkExtension } from "@pixi/assets"; import type { Texture } from "@pixi/core"; import { ExtensionType, settings, utils, BaseTexture, extensions } from "@pixi/core"; @@ -58,7 +58,7 @@ const spineTextureAtlasLoader: AssetExtension { + testParse(asset: unknown, options: {src: string}): Promise { const isExtensionRight = checkExtension(options.src, ".atlas"); const isString = typeof asset === "string"; @@ -69,7 +69,7 @@ const spineTextureAtlasLoader: AssetExtension { + async parse(asset: RawAtlas, options: {src: string, data: ISpineAtlasMetadata}, loader: Loader): Promise { const metadata: ISpineAtlasMetadata = options.data || {}; let basePath = utils.path.dirname(options.src); diff --git a/spine-ts/spine-pixi/src/assets/skeletonLoader.ts b/spine-ts/spine-pixi/src/assets/skeletonLoader.ts index dc4c0e348..030b8de9f 100644 --- a/spine-ts/spine-pixi/src/assets/skeletonLoader.ts +++ b/spine-ts/spine-pixi/src/assets/skeletonLoader.ts @@ -27,7 +27,7 @@ * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ -import type { AssetExtension, LoadAsset } from "@pixi/assets"; +import type { AssetExtension } from "@pixi/assets"; import { LoaderParserPriority, checkExtension } from "@pixi/assets"; import { ExtensionType, settings, extensions } from "@pixi/core"; @@ -62,7 +62,7 @@ const spineLoaderExtension: AssetExtension { + testParse(asset: unknown, options: {src: string}): Promise { const isJsonSpineModel = checkExtension(options.src, ".json") && isJson(asset); const isBinarySpineModel = checkExtension(options.src, ".skel") && isBuffer(asset); From 24a2ae07e67878357f8c0d6b19a23e61a782fe08 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Fri, 22 Sep 2023 16:06:20 +0200 Subject: [PATCH 3/3] [ts] 4.1.42 release --- spine-ts/package-lock.json | 184 ++++++++++++++-------------- spine-ts/package.json | 2 +- spine-ts/spine-canvas/package.json | 4 +- spine-ts/spine-core/package.json | 2 +- spine-ts/spine-phaser/package.json | 8 +- spine-ts/spine-pixi/package.json | 4 +- spine-ts/spine-player/package.json | 4 +- spine-ts/spine-threejs/package.json | 4 +- spine-ts/spine-webgl/package.json | 4 +- 9 files changed, 108 insertions(+), 108 deletions(-) diff --git a/spine-ts/package-lock.json b/spine-ts/package-lock.json index bed64bdb9..5543ddad8 100644 --- a/spine-ts/package-lock.json +++ b/spine-ts/package-lock.json @@ -1,12 +1,12 @@ { "name": "@esotericsoftware/spine-ts", - "version": "4.1.41", + "version": "4.1.42", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@esotericsoftware/spine-ts", - "version": "4.1.41", + "version": "4.1.42", "license": "LicenseRef-LICENSE", "workspaces": [ "spine-core", @@ -423,47 +423,47 @@ "link": true }, "node_modules/@pixi/assets": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/assets/-/assets-7.2.4.tgz", - "integrity": "sha512-7199re3wvMAlVqXLaCyAr8IkJSXqkeVAxcYyB2rBu4Id5m2hhlGX1dQsdMBiCXLwu6/LLVqDvJggSNVQBzL6ZQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/assets/-/assets-7.3.0.tgz", + "integrity": "sha512-eIbvOMFwWKRUuOrFwTy9UDVrAY95o5OlwOHnxAmeYhn6VTchua/oAeeaAYJyJqjyw+ONFsLWE1cFX6uEKHM2Sw==", "peer": true, "dependencies": { "@types/css-font-loading-module": "^0.0.7" }, "peerDependencies": { - "@pixi/core": "7.2.4", - "@pixi/utils": "7.2.4" + "@pixi/core": "7.3.0", + "@pixi/utils": "7.3.0" } }, "node_modules/@pixi/color": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/color/-/color-7.2.4.tgz", - "integrity": "sha512-B/+9JRcXe2uE8wQfsueFRPZVayF2VEMRB7XGeRAsWCryOX19nmWhv0Nt3nOU2rvzI0niz9XgugJXsB6vVmDFSg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/color/-/color-7.3.0.tgz", + "integrity": "sha512-qwgsP+cQhw0QjvouvAslpJ3g7DUMwKLUrXF6Nv+G4GhgVC2Z03CsCfWgUxLxKPD3WadB6FacdRIGx6o2TywB+A==", "peer": true, "dependencies": { "colord": "^2.9.3" } }, "node_modules/@pixi/constants": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-7.2.4.tgz", - "integrity": "sha512-hKuHBWR6N4Q0Sf5MGF3/9l+POg/G5rqhueHfzofiuelnKg7aBs3BVjjZ+6hZbd6M++vOUmxYelEX/NEFBxrheA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-7.3.0.tgz", + "integrity": "sha512-zRBX5RAxm14zs7/sse/eXSrFzbv2XPEJwj2fQga+4hI7tAsXazYgGFl3CMlDET5mW9rXUSxROE0dvnLe9DcYRQ==", "peer": true }, "node_modules/@pixi/core": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/core/-/core-7.2.4.tgz", - "integrity": "sha512-0XtvrfxHlS2T+beBBSpo7GI8+QLyyTqMVQpNmPqB4woYxzrOEJ9JaUFBaBfCvycLeUkfVih1u6HAbtF+2d1EjQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/core/-/core-7.3.0.tgz", + "integrity": "sha512-ZgFdlqOZfijfgvWMi6ZuQey2m3U+ik8GUD7MsLn96Gtg7UQGwmcEsEB2MZ7f7TUoLkMAOlxb0aXEHzdV/+v1zg==", "peer": true, "dependencies": { - "@pixi/color": "7.2.4", - "@pixi/constants": "7.2.4", - "@pixi/extensions": "7.2.4", - "@pixi/math": "7.2.4", - "@pixi/runner": "7.2.4", - "@pixi/settings": "7.2.4", - "@pixi/ticker": "7.2.4", - "@pixi/utils": "7.2.4", + "@pixi/color": "7.3.0", + "@pixi/constants": "7.3.0", + "@pixi/extensions": "7.3.0", + "@pixi/math": "7.3.0", + "@pixi/runner": "7.3.0", + "@pixi/settings": "7.3.0", + "@pixi/ticker": "7.3.0", + "@pixi/utils": "7.3.0", "@types/offscreencanvas": "^2019.6.4" }, "funding": { @@ -472,104 +472,104 @@ } }, "node_modules/@pixi/display": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/display/-/display-7.2.4.tgz", - "integrity": "sha512-w5tqb8cWEO5qIDaO9GEqRvxYhL0iMk0Wsngw23bbLm1gLEQmrFkB2tpJlRAqd7H82C3DrDDeWvkrrxW6+m4apg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/display/-/display-7.3.0.tgz", + "integrity": "sha512-YQJZEcQo/0BIhvAaKrG68w01HYhPMwyPLj0Rvw30J4sW4uer/vf50IEAkM80rdQIUowqjUvatUYRW/r+owomXg==", "peer": true, "peerDependencies": { - "@pixi/core": "7.2.4" + "@pixi/core": "7.3.0" } }, "node_modules/@pixi/extensions": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/extensions/-/extensions-7.2.4.tgz", - "integrity": "sha512-Mnqv9scbL1ARD3QFKfOWs2aSVJJfP1dL8g5UiqGImYO3rZbz/9QCzXOeMVIZ5n3iaRyKMNhFFr84/zUja2H7Dw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/extensions/-/extensions-7.3.0.tgz", + "integrity": "sha512-kr0nia7yvPLIXqBeOKLUXcOoxRG5yCxIPUtXvsFSrrmJvqsXsyg4l9cH0CS/I9yTb67/ks5wjzieUdwNf8pfTg==", "peer": true }, "node_modules/@pixi/graphics": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-7.2.4.tgz", - "integrity": "sha512-3A2EumTjWJgXlDLOyuBrl9b6v1Za/E+/IjOGUIX843HH4NYaf1a2sfDfljx6r3oiDvy+VhuBFmgynRcV5IyA0Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-7.3.0.tgz", + "integrity": "sha512-+5yyv8z4sZDxvdyYbGn/DeR1EdSD+ieXf9N3BS2puoxmrM5blMUzZCoY4vFCeF+r59VpB0ildYl3APzwMdRCLw==", "peer": true, "peerDependencies": { - "@pixi/core": "7.2.4", - "@pixi/display": "7.2.4", - "@pixi/sprite": "7.2.4" + "@pixi/core": "7.3.0", + "@pixi/display": "7.3.0", + "@pixi/sprite": "7.3.0" } }, "node_modules/@pixi/math": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/math/-/math-7.2.4.tgz", - "integrity": "sha512-LJB+mozyEPllxa0EssFZrKNfVwysfaBun4b2dJKQQInp0DafgbA0j7A+WVg0oe51KhFULTJMpDqbLn/ITFc41A==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/math/-/math-7.3.0.tgz", + "integrity": "sha512-3gM1MffXlDM8bFNl+D1ndq4W1Gn7quRvxbAZ9RUp7Zvoqcud/0c/VcxngM2st+IXeFf8htlKxytkotMKk5gQxA==", "peer": true }, "node_modules/@pixi/mesh": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-7.2.4.tgz", - "integrity": "sha512-wiALIqcRKib2BqeH9kOA5fOKWN352nqAspgbDa8gA7OyWzmNwqIedIlElixd0oLFOrIN5jOZAdzeKnoYQlt9Aw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-7.3.0.tgz", + "integrity": "sha512-TZqYmWiONuIIFzt+XL1+lnUFMHhiyJUyT5pNcW/mB1Kfg9vGIebgNbml+Ut6Rghe6B1ntereRyCyEpr+hLbbWg==", "peer": true, "peerDependencies": { - "@pixi/core": "7.2.4", - "@pixi/display": "7.2.4" + "@pixi/core": "7.3.0", + "@pixi/display": "7.3.0" } }, "node_modules/@pixi/runner": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-7.2.4.tgz", - "integrity": "sha512-YtyqPk1LA+0guEFKSFx6t/YSvbEQwajFwi4Ft8iDhioa6VK2MmTir1GjWwy7JQYLcDmYSAcQjnmFtVTZohyYSw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-7.3.0.tgz", + "integrity": "sha512-U0qQk5yhZcCYQVm444IO604aoe1TivQjKeaAYaEpxNyEbSJ2/rEIQEttrnw6JXnm6a0ycI8iBtweDthnpyatqA==", "peer": true }, "node_modules/@pixi/settings": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-7.2.4.tgz", - "integrity": "sha512-ZPKRar9EwibijGmH8EViu4Greq1I/O7V/xQx2rNqN23XA7g09Qo6yfaeQpufu5xl8+/lZrjuHtQSnuY7OgG1CA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-7.3.0.tgz", + "integrity": "sha512-x8Tms/DBnedbJBjkP4VHqyBckqXqJnoAfoayqEcFrqNDQa+1qkr1UnyPj3l4eiEPhY8cEUBz1wSZnhM7R4XcDw==", "peer": true, "dependencies": { - "@pixi/constants": "7.2.4", + "@pixi/constants": "7.3.0", "@types/css-font-loading-module": "^0.0.7", "ismobilejs": "^1.1.0" } }, "node_modules/@pixi/sprite": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-7.2.4.tgz", - "integrity": "sha512-DhR1B+/d0eXpxHIesJMXcVPrKFwQ+zRA1LvEIFfzewqfaRN3X6PMIuoKX8SIb6tl+Hq8Ba9Pe28zI7d2rmRzrA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-7.3.0.tgz", + "integrity": "sha512-3hJveyaxJ9jmZiyOo/Wfmh0Lje7eElF0FoqPl9mfNCXz1TKHSmWqHste+1LimqnThTiUhruJqwUq8h5o1DKLuw==", "peer": true, "peerDependencies": { - "@pixi/core": "7.2.4", - "@pixi/display": "7.2.4" + "@pixi/core": "7.3.0", + "@pixi/display": "7.3.0" } }, "node_modules/@pixi/text": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/text/-/text-7.2.4.tgz", - "integrity": "sha512-DGu7ktpe+zHhqR2sG9NsJt4mgvSObv5EqXTtUxD4Z0li1gmqF7uktpLyn5I6vSg1TTEL4TECClRDClVDGiykWw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/text/-/text-7.3.0.tgz", + "integrity": "sha512-oShmP5CvATLJecK54i2YqwzKAkx8VRgpPqXk3m/gWvF+cs9i9AqCMV3sO5J6xdcCnc+Zb61hjX07J39+QxDqWg==", "peer": true, "peerDependencies": { - "@pixi/core": "7.2.4", - "@pixi/sprite": "7.2.4" + "@pixi/core": "7.3.0", + "@pixi/sprite": "7.3.0" } }, "node_modules/@pixi/ticker": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-7.2.4.tgz", - "integrity": "sha512-hQQHIHvGeFsP4GNezZqjzuhUgNQEVgCH9+qU05UX1Mc5UHC9l6OJnY4VTVhhcHxZjA6RnyaY+1zBxCnoXuazpg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-7.3.0.tgz", + "integrity": "sha512-F77FpONHOn5JkZRMHUM8bXLLIG+Czve7zxOqb1Mk57QHLADhcHP88Kj2eYu9E7zJu4Flx51nyTdmVWQgQXW96g==", "peer": true, "dependencies": { - "@pixi/extensions": "7.2.4", - "@pixi/settings": "7.2.4", - "@pixi/utils": "7.2.4" + "@pixi/extensions": "7.3.0", + "@pixi/settings": "7.3.0", + "@pixi/utils": "7.3.0" } }, "node_modules/@pixi/utils": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-7.2.4.tgz", - "integrity": "sha512-VUGQHBOINIS4ePzoqafwxaGPVRTa3oM/mEutIIHbNGI3b+QvSO+1Dnk40M0zcH6Bo+MxQZbOZK5X/wO9oU5+LQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-7.3.0.tgz", + "integrity": "sha512-syUi0UuJslUAs3PkZKycliND1Fs0cX3c+s2YyVTiRRRvuM81LvjrG/1AqKFhNaav7oYapBOQBWjgzBGv3wmM/A==", "peer": true, "dependencies": { - "@pixi/color": "7.2.4", - "@pixi/constants": "7.2.4", - "@pixi/settings": "7.2.4", + "@pixi/color": "7.3.0", + "@pixi/constants": "7.3.0", + "@pixi/settings": "7.3.0", "@types/earcut": "^2.1.0", "earcut": "^2.2.4", "eventemitter3": "^4.0.0", @@ -3590,9 +3590,9 @@ "dev": true }, "node_modules/url": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.2.tgz", - "integrity": "sha512-7yIgNnrST44S7PJ5+jXbdIupfU1nWUdQJBFBeJRclPXiWgCvrSq5Frw8lr/i//n5sqDfzoKmBymMS81l4U/7cg==", + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "peer": true, "dependencies": { "punycode": "^1.4.1", @@ -3735,33 +3735,33 @@ }, "spine-canvas": { "name": "@esotericsoftware/spine-canvas", - "version": "4.1.41", + "version": "4.1.42", "license": "LicenseRef-LICENSE", "dependencies": { - "@esotericsoftware/spine-core": "4.1.41" + "@esotericsoftware/spine-core": "4.1.42" } }, "spine-core": { "name": "@esotericsoftware/spine-core", - "version": "4.1.41", + "version": "4.1.42", "license": "LicenseRef-LICENSE" }, "spine-phaser": { "name": "@esotericsoftware/spine-phaser", - "version": "4.1.41", + "version": "4.1.42", "license": "LicenseRef-LICENSE", "dependencies": { - "@esotericsoftware/spine-canvas": "4.1.41", - "@esotericsoftware/spine-core": "4.1.41", - "@esotericsoftware/spine-webgl": "4.1.41" + "@esotericsoftware/spine-canvas": "4.1.42", + "@esotericsoftware/spine-core": "4.1.42", + "@esotericsoftware/spine-webgl": "4.1.42" } }, "spine-pixi": { "name": "@esotericsoftware/spine-pixi", - "version": "4.1.41", + "version": "4.1.42", "license": "LicenseRef-LICENSE", "dependencies": { - "@esotericsoftware/spine-core": "4.1.41" + "@esotericsoftware/spine-core": "4.1.42" }, "peerDependencies": { "@pixi/assets": "^7.2.4", @@ -3774,26 +3774,26 @@ }, "spine-player": { "name": "@esotericsoftware/spine-player", - "version": "4.1.41", + "version": "4.1.42", "license": "LicenseRef-LICENSE", "dependencies": { - "@esotericsoftware/spine-webgl": "4.1.41" + "@esotericsoftware/spine-webgl": "4.1.42" } }, "spine-threejs": { "name": "@esotericsoftware/spine-threejs", - "version": "4.1.41", + "version": "4.1.42", "license": "LicenseRef-LICENSE", "dependencies": { - "@esotericsoftware/spine-core": "4.1.41" + "@esotericsoftware/spine-core": "4.1.42" } }, "spine-webgl": { "name": "@esotericsoftware/spine-webgl", - "version": "4.1.41", + "version": "4.1.42", "license": "LicenseRef-LICENSE", "dependencies": { - "@esotericsoftware/spine-core": "4.1.41" + "@esotericsoftware/spine-core": "4.1.42" } } } diff --git a/spine-ts/package.json b/spine-ts/package.json index 8739f0d73..43e18eb1d 100644 --- a/spine-ts/package.json +++ b/spine-ts/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-ts", - "version": "4.1.41", + "version": "4.1.42", "description": "The official Spine Runtimes for the web.", "files": [ "README.md" diff --git a/spine-ts/spine-canvas/package.json b/spine-ts/spine-canvas/package.json index 05afb6a34..3b41ec41a 100644 --- a/spine-ts/spine-canvas/package.json +++ b/spine-ts/spine-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-canvas", - "version": "4.1.41", + "version": "4.1.42", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,6 +30,6 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@esotericsoftware/spine-core": "4.1.41" + "@esotericsoftware/spine-core": "4.1.42" } } \ No newline at end of file diff --git a/spine-ts/spine-core/package.json b/spine-ts/spine-core/package.json index cdc86e130..6956245a8 100644 --- a/spine-ts/spine-core/package.json +++ b/spine-ts/spine-core/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-core", - "version": "4.1.41", + "version": "4.1.42", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/spine-ts/spine-phaser/package.json b/spine-ts/spine-phaser/package.json index 965ee4186..1ca0252b2 100644 --- a/spine-ts/spine-phaser/package.json +++ b/spine-ts/spine-phaser/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-phaser", - "version": "4.1.41", + "version": "4.1.42", "description": "The official Spine Runtimes for the Phaser.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,8 +30,8 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@esotericsoftware/spine-core": "4.1.41", - "@esotericsoftware/spine-webgl": "4.1.41", - "@esotericsoftware/spine-canvas": "4.1.41" + "@esotericsoftware/spine-core": "4.1.42", + "@esotericsoftware/spine-webgl": "4.1.42", + "@esotericsoftware/spine-canvas": "4.1.42" } } \ No newline at end of file diff --git a/spine-ts/spine-pixi/package.json b/spine-ts/spine-pixi/package.json index 2d4efcec8..fe2e7f278 100644 --- a/spine-ts/spine-pixi/package.json +++ b/spine-ts/spine-pixi/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-pixi", - "version": "4.1.41", + "version": "4.1.42", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,7 +30,7 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@esotericsoftware/spine-core": "4.1.41" + "@esotericsoftware/spine-core": "4.1.42" }, "peerDependencies": { "@pixi/core": "^7.2.4", diff --git a/spine-ts/spine-player/package.json b/spine-ts/spine-player/package.json index 907672f2e..f8f3f342c 100644 --- a/spine-ts/spine-player/package.json +++ b/spine-ts/spine-player/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-player", - "version": "4.1.41", + "version": "4.1.42", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,6 +30,6 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@esotericsoftware/spine-webgl": "4.1.41" + "@esotericsoftware/spine-webgl": "4.1.42" } } \ No newline at end of file diff --git a/spine-ts/spine-threejs/package.json b/spine-ts/spine-threejs/package.json index c1487abcf..adb89d923 100644 --- a/spine-ts/spine-threejs/package.json +++ b/spine-ts/spine-threejs/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-threejs", - "version": "4.1.41", + "version": "4.1.42", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,6 +30,6 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@esotericsoftware/spine-core": "4.1.41" + "@esotericsoftware/spine-core": "4.1.42" } } \ No newline at end of file diff --git a/spine-ts/spine-webgl/package.json b/spine-ts/spine-webgl/package.json index 5996c2170..3e0e97e9c 100644 --- a/spine-ts/spine-webgl/package.json +++ b/spine-ts/spine-webgl/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-webgl", - "version": "4.1.41", + "version": "4.1.42", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,6 +30,6 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@esotericsoftware/spine-core": "4.1.41" + "@esotericsoftware/spine-core": "4.1.42" } } \ No newline at end of file