sdfsdfs
This commit is contained in:
80
node_modules/pixi.js/lib/scene/sprite-nine-slice/NineSliceSpritePipe.mjs
generated
vendored
Normal file
80
node_modules/pixi.js/lib/scene/sprite-nine-slice/NineSliceSpritePipe.mjs
generated
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
import { ExtensionType } from '../../extensions/Extensions.mjs';
|
||||
import { BigPool } from '../../utils/pool/PoolGroup.mjs';
|
||||
import { BatchableMesh } from '../mesh/shared/BatchableMesh.mjs';
|
||||
import { NineSliceGeometry } from './NineSliceGeometry.mjs';
|
||||
|
||||
"use strict";
|
||||
class NineSliceSpritePipe {
|
||||
constructor(renderer) {
|
||||
this._gpuSpriteHash = /* @__PURE__ */ Object.create(null);
|
||||
this._destroyRenderableBound = this.destroyRenderable.bind(this);
|
||||
this._renderer = renderer;
|
||||
}
|
||||
addRenderable(sprite, instructionSet) {
|
||||
const gpuSprite = this._getGpuSprite(sprite);
|
||||
if (sprite._didSpriteUpdate)
|
||||
this._updateBatchableSprite(sprite, gpuSprite);
|
||||
this._renderer.renderPipes.batch.addToBatch(gpuSprite, instructionSet);
|
||||
}
|
||||
updateRenderable(sprite) {
|
||||
const gpuSprite = this._gpuSpriteHash[sprite.uid];
|
||||
if (sprite._didSpriteUpdate)
|
||||
this._updateBatchableSprite(sprite, gpuSprite);
|
||||
gpuSprite._batcher.updateElement(gpuSprite);
|
||||
}
|
||||
validateRenderable(sprite) {
|
||||
const texture = sprite._texture;
|
||||
const gpuSprite = this._getGpuSprite(sprite);
|
||||
if (gpuSprite.texture._source !== texture._source) {
|
||||
return !gpuSprite._batcher.checkAndUpdateTexture(gpuSprite, texture);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
destroyRenderable(sprite) {
|
||||
const batchableMesh = this._gpuSpriteHash[sprite.uid];
|
||||
BigPool.return(batchableMesh.geometry);
|
||||
BigPool.return(batchableMesh);
|
||||
this._gpuSpriteHash[sprite.uid] = null;
|
||||
sprite.off("destroyed", this._destroyRenderableBound);
|
||||
}
|
||||
_updateBatchableSprite(sprite, batchableSprite) {
|
||||
sprite._didSpriteUpdate = false;
|
||||
batchableSprite.geometry.update(sprite);
|
||||
batchableSprite.texture = sprite._texture;
|
||||
}
|
||||
_getGpuSprite(sprite) {
|
||||
return this._gpuSpriteHash[sprite.uid] || this._initGPUSprite(sprite);
|
||||
}
|
||||
_initGPUSprite(sprite) {
|
||||
const batchableMesh = BigPool.get(BatchableMesh);
|
||||
batchableMesh.geometry = BigPool.get(NineSliceGeometry);
|
||||
batchableMesh.renderable = sprite;
|
||||
batchableMesh.transform = sprite.groupTransform;
|
||||
batchableMesh.texture = sprite._texture;
|
||||
batchableMesh.roundPixels = this._renderer._roundPixels | sprite._roundPixels;
|
||||
sprite._didSpriteUpdate = true;
|
||||
this._gpuSpriteHash[sprite.uid] = batchableMesh;
|
||||
sprite.on("destroyed", this._destroyRenderableBound);
|
||||
return batchableMesh;
|
||||
}
|
||||
destroy() {
|
||||
for (const i in this._gpuSpriteHash) {
|
||||
const batchableMesh = this._gpuSpriteHash[i];
|
||||
batchableMesh.geometry.destroy();
|
||||
}
|
||||
this._gpuSpriteHash = null;
|
||||
this._renderer = null;
|
||||
}
|
||||
}
|
||||
/** @ignore */
|
||||
NineSliceSpritePipe.extension = {
|
||||
type: [
|
||||
ExtensionType.WebGLPipes,
|
||||
ExtensionType.WebGPUPipes,
|
||||
ExtensionType.CanvasPipes
|
||||
],
|
||||
name: "nineSliceSprite"
|
||||
};
|
||||
|
||||
export { NineSliceSpritePipe };
|
||||
//# sourceMappingURL=NineSliceSpritePipe.mjs.map
|
Reference in New Issue
Block a user