mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[ts][pixi-v8] Updated loaders to use new properties introduced in Pixi 8.12.
This commit is contained in:
parent
0b318d01fd
commit
75421b2a41
28
spine-ts/package-lock.json
generated
28
spine-ts/package-lock.json
generated
@ -2404,27 +2404,47 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pixi.js": {
|
"node_modules/pixi.js": {
|
||||||
"version": "8.9.1",
|
"version": "8.12.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-8.12.0.tgz",
|
||||||
|
"integrity": "sha512-or7vrH7WajLevu/JnGMdD80JaSpTlXfjwCLtzhg2BL60LWPf1pF0w08Qleiqr1Saj012gevguM//+6HzzVlnfA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pixi/colord": "^2.9.6",
|
"@pixi/colord": "^2.9.6",
|
||||||
"@types/css-font-loading-module": "^0.0.12",
|
"@types/css-font-loading-module": "^0.0.12",
|
||||||
"@types/earcut": "^2.1.4",
|
"@types/earcut": "^3.0.0",
|
||||||
"@webgpu/types": "^0.1.40",
|
"@webgpu/types": "^0.1.40",
|
||||||
"@xmldom/xmldom": "^0.8.10",
|
"@xmldom/xmldom": "^0.8.10",
|
||||||
"earcut": "^2.2.4",
|
"earcut": "^3.0.2",
|
||||||
"eventemitter3": "^5.0.1",
|
"eventemitter3": "^5.0.1",
|
||||||
"gifuct-js": "^2.1.2",
|
"gifuct-js": "^2.1.2",
|
||||||
"ismobilejs": "^1.1.1",
|
"ismobilejs": "^1.1.1",
|
||||||
"parse-svg-path": "^0.1.2"
|
"parse-svg-path": "^0.1.2"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/pixijs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/pixi.js/node_modules/@types/earcut": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-k/9fOUGO39yd2sCjrbAJvGDEQvRwRnQIZlBz43roGwUZo5SHAmyVvSFyaVVZkicRVCaDXPKlbxrUcBuJoSWunQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/pixi.js/node_modules/@webgpu/types": {
|
"node_modules/pixi.js/node_modules/@webgpu/types": {
|
||||||
"version": "0.1.60",
|
"version": "0.1.60",
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"node_modules/pixi.js/node_modules/earcut": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz",
|
||||||
|
"integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==",
|
||||||
|
"license": "ISC",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/pixi.js/node_modules/eventemitter3": {
|
"node_modules/pixi.js/node_modules/eventemitter3": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -3264,7 +3284,7 @@
|
|||||||
"@esotericsoftware/spine-core": "4.2.82"
|
"@esotericsoftware/spine-core": "4.2.82"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"pixi.js": "^8.4.0"
|
"pixi.js": "^8.12.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"spine-player": {
|
"spine-player": {
|
||||||
|
|||||||
@ -24,11 +24,11 @@
|
|||||||
|
|
||||||
// BASE64 DATA
|
// BASE64 DATA
|
||||||
const base64Data = {
|
const base64Data = {
|
||||||
atlas: "data:text/plain;base64,aW5saW5lLnBuZwpzaXplOjE2LDE2CmZpbHRlcjpMaW5lYXIsTGluZWFyCnBtYTp0cnVlCmRvdApib3VuZHM6MCwwLDEsMQo=",
|
atlas: "data:text/plain;base64,aW5saW5lLnBuZwpzaXplOjE2LDE2CmZpbHRlcjpMaW5lYXIsTGluZWFyCnBtYTp0cnVlCmRvdApib3VuZHM6MCwwLDEsMQo=",
|
||||||
skel: "data:application/octet-stream;base64,/B8S/IqaXgYHNC4yLjM5wkgAAMJIAABCyAAAQsgAAELIAAAAAQRkb3QCBXJvb3QAAAAAAAAAAAAAAAA/gAAAP4AAAAAAAAAAAAAAAAAAAAAABGRvdAAAAAAAAAAAAAAAAABCyAAAQsgAAAAAAAAAAAAAAAAAAAAAAQRkb3QB//////////8BAAAAAAABAAEBACWwfdcAAAAAP4AAAD+AAAA/gAAAP4AAAAAAAQphbmltYXRpb24BAQABAQMAAAAAAP////8/gAAA/wAA/wBAAAAA/////wAAAAAAAAAAAA==",
|
skel: "data:application/octet-stream;base64,EWfte0PrUB4MNC4zLjM5LWJldGEAAAAAAAAAAAAAAAAAAAAAQsgAAAFB8AAAJy9Vc2Vycy9kYXZpZGV0YW50aWxsby9Eb3dubG9hZHMvaW1hZ2VzCC4vYXVkaW8BBGRvdAIFcm9vdAAAAAAAAAAAAAAAAD+AAAA/gAAAAAAAAAAAAAAAAAAAAACcnJz/AAEEZG90AAAAAAAAAAAAAAAAAELIAABCyAAAAAAAAAAAAAAAAAAAAACcnJz/AAEBBGRvdAH//////////wEAAQABAAEBAAAAAAAAAAAAP4AAAD+AAAA/gAAAP4AAAAAAAQphbmltYXRpb24BAQABAQMAAAAAAP////8/gAAA/wAA/wBAAAAA/////wAAAAAAAAAAAAA=",
|
||||||
json: "data:application/json;base64,ew0KInNrZWxldG9uIjogeyAiaGFzaCI6ICJkZnFNKy9hYStzNCIsICJzcGluZSI6ICI0LjIuNDMiLCAiaW1hZ2VzIjogIi9Vc2Vycy9kYXZpZGV0YW50aWxsby9Eb3dubG9hZHMvaW1hZ2VzIiwgImF1ZGlvIjogIi4vYXVkaW8iIH0sDQoiYm9uZXMiOiBbDQoJeyAibmFtZSI6ICJyb290IiB9LA0KCXsgIm5hbWUiOiAiZG90IiwgInBhcmVudCI6ICJyb290IiwgInNjYWxlWCI6IDEwMCwgInNjYWxlWSI6IDEwMCB9DQpdLA0KInNsb3RzIjogWw0KCXsgIm5hbWUiOiAiZG90IiwgImJvbmUiOiAiZG90IiwgImF0dGFjaG1lbnQiOiAiZG90IiB9DQpdLA0KInNraW5zIjogWw0KCXsNCgkJIm5hbWUiOiAiZGVmYXVsdCIsDQoJCSJhdHRhY2htZW50cyI6IHsNCgkJCSJkb3QiOiB7DQoJCQkJImRvdCI6IHsgIndpZHRoIjogMSwgImhlaWdodCI6IDEgfQ0KCQkJfQ0KCQl9DQoJfQ0KXSwNCiJhbmltYXRpb25zIjogew0KCSJhbmltYXRpb24iOiB7DQoJCSJzbG90cyI6IHsNCgkJCSJkb3QiOiB7DQoJCQkJInJnYmEiOiBbDQoJCQkJCXsgImNvbG9yIjogImZmZmZmZmZmIiB9LA0KCQkJCQl7ICJ0aW1lIjogMSwgImNvbG9yIjogImZmMDAwMGZmIiB9LA0KCQkJCQl7ICJ0aW1lIjogMiwgImNvbG9yIjogImZmZmZmZmZmIiB9DQoJCQkJXQ0KCQkJfQ0KCQl9DQoJfQ0KfQ0KfQ==",
|
json: "data:application/json;base64,eyJza2VsZXRvbiI6eyJoYXNoIjoiRVdmdGUwUHJVQjQiLCJzcGluZSI6IjQuMy4zOS1iZXRhIiwiaW1hZ2VzIjoiL1VzZXJzL2RhdmlkZXRhbnRpbGxvL0Rvd25sb2Fkcy9pbWFnZXMiLCJhdWRpbyI6Ii4vYXVkaW8ifSwiYm9uZXMiOlt7Im5hbWUiOiJyb290In0seyJuYW1lIjoiZG90IiwicGFyZW50Ijoicm9vdCIsInNjYWxlWCI6MTAwLCJzY2FsZVkiOjEwMH1dLCJzbG90cyI6W3sibmFtZSI6ImRvdCIsImJvbmUiOiJkb3QiLCJhdHRhY2htZW50IjoiZG90In1dLCJza2lucyI6W3sibmFtZSI6ImRlZmF1bHQiLCJhdHRhY2htZW50cyI6eyJkb3QiOnsiZG90Ijp7IndpZHRoIjoxLCJoZWlnaHQiOjF9fX19XSwiYW5pbWF0aW9ucyI6eyJhbmltYXRpb24iOnsic2xvdHMiOnsiZG90Ijp7InJnYmEiOlt7ImNvbG9yIjoiZmZmZmZmZmYifSx7InRpbWUiOjEsImNvbG9yIjoiZmYwMDAwZmYifSx7InRpbWUiOjIsImNvbG9yIjoiZmZmZmZmZmYifV19fX19fQ==",
|
||||||
png: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAANQTFRF////p8QbyAAAAApJREFUeJxjZAAAAAQAAiFkrWoAAAAASUVORK5CYII="
|
png: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAANQTFRF////p8QbyAAAAApJREFUeJxjZAAAAAQAAiFkrWoAAAAASUVORK5CYII="
|
||||||
}
|
}
|
||||||
|
|
||||||
const textureBase64 = await PIXI.Assets.load({
|
const textureBase64 = await PIXI.Assets.load({
|
||||||
alias: 'textureBase64',
|
alias: 'textureBase64',
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<title>spine-pixi-v8</title>
|
<title>spine-pixi-v8</title>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/pixi.js@8.4.1/dist/pixi.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/pixi.js@8.12/dist/pixi.js"></script>
|
||||||
<script src="../dist/iife/spine-pixi-v8.js"></script>
|
<script src="../dist/iife/spine-pixi-v8.js"></script>
|
||||||
<link rel="stylesheet" href="../../index.css">
|
<link rel="stylesheet" href="../../index.css">
|
||||||
</head>
|
</head>
|
||||||
@ -25,27 +25,27 @@
|
|||||||
// BASE64 DATA
|
// BASE64 DATA
|
||||||
const base64Data = {
|
const base64Data = {
|
||||||
atlas: "data:text/plain;base64,aW5saW5lLnBuZwpzaXplOjE2LDE2CmZpbHRlcjpMaW5lYXIsTGluZWFyCnBtYTp0cnVlCmRvdApib3VuZHM6MCwwLDEsMQo=",
|
atlas: "data:text/plain;base64,aW5saW5lLnBuZwpzaXplOjE2LDE2CmZpbHRlcjpMaW5lYXIsTGluZWFyCnBtYTp0cnVlCmRvdApib3VuZHM6MCwwLDEsMQo=",
|
||||||
skel: "data:application/octet-stream;base64,/B8S/IqaXgYHNC4yLjM5wkgAAMJIAABCyAAAQsgAAELIAAAAAQRkb3QCBXJvb3QAAAAAAAAAAAAAAAA/gAAAP4AAAAAAAAAAAAAAAAAAAAAABGRvdAAAAAAAAAAAAAAAAABCyAAAQsgAAAAAAAAAAAAAAAAAAAAAAQRkb3QB//////////8BAAAAAAABAAEBACWwfdcAAAAAP4AAAD+AAAA/gAAAP4AAAAAAAQphbmltYXRpb24BAQABAQMAAAAAAP////8/gAAA/wAA/wBAAAAA/////wAAAAAAAAAAAA==",
|
skel: "data:application/octet-stream;base64,EWfte0PrUB4MNC4zLjM5LWJldGEAAAAAAAAAAAAAAAAAAAAAQsgAAAFB8AAAJy9Vc2Vycy9kYXZpZGV0YW50aWxsby9Eb3dubG9hZHMvaW1hZ2VzCC4vYXVkaW8BBGRvdAIFcm9vdAAAAAAAAAAAAAAAAD+AAAA/gAAAAAAAAAAAAAAAAAAAAACcnJz/AAEEZG90AAAAAAAAAAAAAAAAAELIAABCyAAAAAAAAAAAAAAAAAAAAACcnJz/AAEBBGRvdAH//////////wEAAQABAAEBAAAAAAAAAAAAP4AAAD+AAAA/gAAAP4AAAAAAAQphbmltYXRpb24BAQABAQMAAAAAAP////8/gAAA/wAA/wBAAAAA/////wAAAAAAAAAAAAA=",
|
||||||
json: "data:application/json;base64,ew0KInNrZWxldG9uIjogeyAiaGFzaCI6ICJkZnFNKy9hYStzNCIsICJzcGluZSI6ICI0LjIuNDMiLCAiaW1hZ2VzIjogIi9Vc2Vycy9kYXZpZGV0YW50aWxsby9Eb3dubG9hZHMvaW1hZ2VzIiwgImF1ZGlvIjogIi4vYXVkaW8iIH0sDQoiYm9uZXMiOiBbDQoJeyAibmFtZSI6ICJyb290IiB9LA0KCXsgIm5hbWUiOiAiZG90IiwgInBhcmVudCI6ICJyb290IiwgInNjYWxlWCI6IDEwMCwgInNjYWxlWSI6IDEwMCB9DQpdLA0KInNsb3RzIjogWw0KCXsgIm5hbWUiOiAiZG90IiwgImJvbmUiOiAiZG90IiwgImF0dGFjaG1lbnQiOiAiZG90IiB9DQpdLA0KInNraW5zIjogWw0KCXsNCgkJIm5hbWUiOiAiZGVmYXVsdCIsDQoJCSJhdHRhY2htZW50cyI6IHsNCgkJCSJkb3QiOiB7DQoJCQkJImRvdCI6IHsgIndpZHRoIjogMSwgImhlaWdodCI6IDEgfQ0KCQkJfQ0KCQl9DQoJfQ0KXSwNCiJhbmltYXRpb25zIjogew0KCSJhbmltYXRpb24iOiB7DQoJCSJzbG90cyI6IHsNCgkJCSJkb3QiOiB7DQoJCQkJInJnYmEiOiBbDQoJCQkJCXsgImNvbG9yIjogImZmZmZmZmZmIiB9LA0KCQkJCQl7ICJ0aW1lIjogMSwgImNvbG9yIjogImZmMDAwMGZmIiB9LA0KCQkJCQl7ICJ0aW1lIjogMiwgImNvbG9yIjogImZmZmZmZmZmIiB9DQoJCQkJXQ0KCQkJfQ0KCQl9DQoJfQ0KfQ0KfQ==",
|
json: "data:application/json;base64,eyJza2VsZXRvbiI6eyJoYXNoIjoiRVdmdGUwUHJVQjQiLCJzcGluZSI6IjQuMy4zOS1iZXRhIiwiaW1hZ2VzIjoiL1VzZXJzL2RhdmlkZXRhbnRpbGxvL0Rvd25sb2Fkcy9pbWFnZXMiLCJhdWRpbyI6Ii4vYXVkaW8ifSwiYm9uZXMiOlt7Im5hbWUiOiJyb290In0seyJuYW1lIjoiZG90IiwicGFyZW50Ijoicm9vdCIsInNjYWxlWCI6MTAwLCJzY2FsZVkiOjEwMH1dLCJzbG90cyI6W3sibmFtZSI6ImRvdCIsImJvbmUiOiJkb3QiLCJhdHRhY2htZW50IjoiZG90In1dLCJza2lucyI6W3sibmFtZSI6ImRlZmF1bHQiLCJhdHRhY2htZW50cyI6eyJkb3QiOnsiZG90Ijp7IndpZHRoIjoxLCJoZWlnaHQiOjF9fX19XSwiYW5pbWF0aW9ucyI6eyJhbmltYXRpb24iOnsic2xvdHMiOnsiZG90Ijp7InJnYmEiOlt7ImNvbG9yIjoiZmZmZmZmZmYifSx7InRpbWUiOjEsImNvbG9yIjoiZmYwMDAwZmYifSx7InRpbWUiOjIsImNvbG9yIjoiZmZmZmZmZmYifV19fX19fQ==",
|
||||||
png: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAANQTFRF////p8QbyAAAAApJREFUeJxjZAAAAAQAAiFkrWoAAAAASUVORK5CYII="
|
png: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAANQTFRF////p8QbyAAAAApJREFUeJxjZAAAAAQAAiFkrWoAAAAASUVORK5CYII="
|
||||||
}
|
}
|
||||||
|
|
||||||
const textureBase64 = await PIXI.Assets.load({
|
const textureBase64 = await PIXI.Assets.load({
|
||||||
alias: 'textureBase64',
|
alias: 'textureBase64',
|
||||||
loadParser: 'loadTextures',
|
parser: 'texture',
|
||||||
src: base64Data.png,
|
src: base64Data.png,
|
||||||
})
|
})
|
||||||
|
|
||||||
PIXI.Assets.add({
|
PIXI.Assets.add({
|
||||||
alias: "atlasBase64",
|
alias: "atlasBase64",
|
||||||
loadParser: "spineTextureAtlasLoader",
|
parser: "spineTextureAtlasLoader",
|
||||||
src: base64Data.atlas,
|
src: base64Data.atlas,
|
||||||
data: { images: { "inline.png": textureBase64.source } }
|
data: { images: { "inline.png": textureBase64.source } }
|
||||||
})
|
})
|
||||||
|
|
||||||
PIXI.Assets.add({
|
PIXI.Assets.add({
|
||||||
alias: "skelBase64",
|
alias: "skelBase64",
|
||||||
loadParser: "spineSkeletonLoader",
|
parser: "spineSkeletonLoader",
|
||||||
// loadParser: "loadJson", // use "loadJson", if asset is json
|
// loadParser: "loadJson", // use "loadJson", if asset is json
|
||||||
src: base64Data.skel,
|
src: base64Data.skel,
|
||||||
})
|
})
|
||||||
@ -69,14 +69,14 @@
|
|||||||
|
|
||||||
const textureBlob = await PIXI.Assets.load({
|
const textureBlob = await PIXI.Assets.load({
|
||||||
alias: 'textureBlob',
|
alias: 'textureBlob',
|
||||||
loadParser: 'loadTextures',
|
parser: 'texture',
|
||||||
src: URL.createObjectURL(blobData.png),
|
src: URL.createObjectURL(blobData.png),
|
||||||
// data: { alphaMode: PIXI.ALPHA_MODES.PMA } // if texture is pma uncomment this and set as pixi preference (preferCreateImageBitmap: false)
|
// data: { alphaMode: PIXI.ALPHA_MODES.PMA } // if texture is pma uncomment this and set as pixi preference (preferCreateImageBitmap: false)
|
||||||
})
|
})
|
||||||
|
|
||||||
PIXI.Assets.add({
|
PIXI.Assets.add({
|
||||||
alias: "atlasBlob",
|
alias: "atlasBlob",
|
||||||
loadParser: "spineTextureAtlasLoader",
|
parser: "spineTextureAtlasLoader",
|
||||||
src: URL.createObjectURL(blobData.atlas),
|
src: URL.createObjectURL(blobData.atlas),
|
||||||
data: { images: { "inline.png": textureBlob.source } }
|
data: { images: { "inline.png": textureBlob.source } }
|
||||||
})
|
})
|
||||||
@ -84,7 +84,7 @@
|
|||||||
PIXI.Assets.add({
|
PIXI.Assets.add({
|
||||||
alias: "skelBlob",
|
alias: "skelBlob",
|
||||||
// loadParser: "spineSkeletonLoader", // use "spineSkeletonLoader", if asset is skel
|
// loadParser: "spineSkeletonLoader", // use "spineSkeletonLoader", if asset is skel
|
||||||
loadParser: "loadJson",
|
parser: "loadJson",
|
||||||
src: URL.createObjectURL(blobData.json),
|
src: URL.createObjectURL(blobData.json),
|
||||||
})
|
})
|
||||||
await PIXI.Assets.load(["skelBlob", "atlasBlob"]);
|
await PIXI.Assets.load(["skelBlob", "atlasBlob"]);
|
||||||
|
|||||||
@ -34,6 +34,6 @@
|
|||||||
"@esotericsoftware/spine-core": "4.2.82"
|
"@esotericsoftware/spine-core": "4.2.82"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"pixi.js": "^8.4.0"
|
"pixi.js": "^8.12.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,21 +27,25 @@
|
|||||||
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
import { TextureAtlas } from '@esotericsoftware/spine-core';
|
||||||
import {
|
import {
|
||||||
|
type AssetExtension,
|
||||||
checkExtension,
|
checkExtension,
|
||||||
copySearchParams,
|
copySearchParams,
|
||||||
DOMAdapter,
|
DOMAdapter,
|
||||||
extensions,
|
|
||||||
ExtensionType,
|
ExtensionType,
|
||||||
|
extensions,
|
||||||
|
type Loader,
|
||||||
LoaderParserPriority,
|
LoaderParserPriority,
|
||||||
path,
|
path,
|
||||||
|
type ResolvedAsset,
|
||||||
Resolver,
|
Resolver,
|
||||||
TextureSource
|
type Texture,
|
||||||
|
TextureSource,
|
||||||
|
type UnresolvedAsset,
|
||||||
} from 'pixi.js';
|
} from 'pixi.js';
|
||||||
import { SpineTexture } from '../SpineTexture.js';
|
import { SpineTexture } from '../SpineTexture.js';
|
||||||
import { TextureAtlas } from '@esotericsoftware/spine-core';
|
|
||||||
|
|
||||||
import type { AssetExtension, Loader, ResolvedAsset, Texture, UnresolvedAsset } from 'pixi.js';
|
|
||||||
|
|
||||||
type RawAtlas = string;
|
type RawAtlas = string;
|
||||||
|
|
||||||
@ -64,6 +68,7 @@ const spineTextureAtlasLoader: AssetExtension<RawAtlas | TextureAtlas, ISpineAtl
|
|||||||
},
|
},
|
||||||
|
|
||||||
loader: {
|
loader: {
|
||||||
|
id: loaderName,
|
||||||
name: loaderName,
|
name: loaderName,
|
||||||
extension: {
|
extension: {
|
||||||
type: ExtensionType.LoadParser,
|
type: ExtensionType.LoadParser,
|
||||||
@ -86,7 +91,7 @@ const spineTextureAtlasLoader: AssetExtension<RawAtlas | TextureAtlas, ISpineAtl
|
|||||||
testParse (asset: unknown, options: ResolvedAsset): Promise<boolean> {
|
testParse (asset: unknown, options: ResolvedAsset): Promise<boolean> {
|
||||||
const isExtensionRight = checkExtension(options.src as string, '.atlas');
|
const isExtensionRight = checkExtension(options.src as string, '.atlas');
|
||||||
const isString = typeof asset === 'string';
|
const isString = typeof asset === 'string';
|
||||||
const isExplicitLoadParserSet = options.loadParser === loaderName;
|
const isExplicitLoadParserSet = options.parser === loaderName || options.loadParser === loaderName;
|
||||||
|
|
||||||
return Promise.resolve((isExtensionRight || isExplicitLoadParserSet) && isString);
|
return Promise.resolve((isExtensionRight || isExplicitLoadParserSet) && isString);
|
||||||
},
|
},
|
||||||
|
|||||||
@ -31,10 +31,10 @@ import {
|
|||||||
type AssetExtension,
|
type AssetExtension,
|
||||||
checkExtension,
|
checkExtension,
|
||||||
DOMAdapter,
|
DOMAdapter,
|
||||||
extensions,
|
|
||||||
ExtensionType,
|
ExtensionType,
|
||||||
|
extensions,
|
||||||
LoaderParserPriority,
|
LoaderParserPriority,
|
||||||
ResolvedAsset
|
type ResolvedAsset
|
||||||
} from 'pixi.js';
|
} from 'pixi.js';
|
||||||
|
|
||||||
type SkeletonJsonAsset = any;
|
type SkeletonJsonAsset = any;
|
||||||
@ -54,6 +54,7 @@ const spineLoaderExtension: AssetExtension<SkeletonJsonAsset | SkeletonBinaryAss
|
|||||||
extension: ExtensionType.Asset,
|
extension: ExtensionType.Asset,
|
||||||
|
|
||||||
loader: {
|
loader: {
|
||||||
|
id: loaderName,
|
||||||
name: loaderName,
|
name: loaderName,
|
||||||
extension: {
|
extension: {
|
||||||
type: ExtensionType.LoadParser,
|
type: ExtensionType.LoadParser,
|
||||||
@ -75,7 +76,7 @@ const spineLoaderExtension: AssetExtension<SkeletonJsonAsset | SkeletonBinaryAss
|
|||||||
testParse (asset: unknown, options: ResolvedAsset): Promise<boolean> {
|
testParse (asset: unknown, options: ResolvedAsset): Promise<boolean> {
|
||||||
const isJsonSpineModel = checkExtension(options.src!, '.json') && isJson(asset);
|
const isJsonSpineModel = checkExtension(options.src!, '.json') && isJson(asset);
|
||||||
const isBinarySpineModel = checkExtension(options.src!, '.skel') && isBuffer(asset);
|
const isBinarySpineModel = checkExtension(options.src!, '.skel') && isBuffer(asset);
|
||||||
const isExplicitLoadParserSet = options.loadParser === loaderName;
|
const isExplicitLoadParserSet = options.parser === loaderName || options.loadParser === loaderName;
|
||||||
|
|
||||||
return Promise.resolve(isJsonSpineModel || isBinarySpineModel || isExplicitLoadParserSet);
|
return Promise.resolve(isJsonSpineModel || isBinarySpineModel || isExplicitLoadParserSet);
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user