UNPKG

pixi-dragonbones-runtime

Version:
3 lines (2 loc) 5.59 kB
"use strict";var e=require("../core/BaseObject.cjs");require("../core/DragonBones.cjs"),require("../model/ArmatureData.cjs"),require("../geom/Transform.cjs"),require("../animation/AnimationState.cjs"),require("../event/EventObject.cjs"),require("../armature/TransformObject.cjs"),require("../armature/Constraint.cjs");var t=require("../armature/Slot.cjs"),r=require("./PixiTextureAtlasData.cjs"),a=require("pixi.js");class s extends t.Slot{static toString(){return"[class dragonBones.PixiSlot]"}_onClear(){super._onClear(),this._textureScale=1,this._renderDisplay=null}_initDisplay(e,t){}_disposeDisplay(e,t){t||e.destroy()}_onUpdateDisplay(){this._renderDisplay=this._display?this._display:this._rawDisplay}_addDisplay(){this._armature.display.addChild(this._renderDisplay)}_replaceDisplay(e){const t=this._armature.display,r=e;t.addChild(this._renderDisplay),t.swapChildren(this._renderDisplay,r),t.removeChild(r),this._textureScale=1}_removeDisplay(){this._renderDisplay.parent.removeChild(this._renderDisplay)}_updateZOrder(){const e=this._armature.display;e.getChildIndex(this._renderDisplay)!==this._zOrder&&e.addChildAt(this._renderDisplay,this._zOrder)}_updateVisible(){this._renderDisplay.visible=this._parent.visible&&this._visible}_updateBlendMode(){if(this._renderDisplay instanceof a.Sprite)switch(this._blendMode){case 0:this._renderDisplay.blendMode="normal";break;case 1:this._renderDisplay.blendMode="add";break;case 3:this._renderDisplay.blendMode="darken";break;case 4:this._renderDisplay.blendMode="difference";break;case 6:this._renderDisplay.blendMode="hard-light";break;case 9:this._renderDisplay.blendMode="lighten";break;case 10:this._renderDisplay.blendMode="multiply";break;case 11:this._renderDisplay.blendMode="overlay";break;case 12:this._renderDisplay.blendMode="screen"}}_updateColor(){const e=this._colorTransform.alphaMultiplier*this._globalAlpha;if(this._renderDisplay.alpha=e,this._renderDisplay instanceof a.Sprite||this._renderDisplay instanceof a.MeshSimple){const e=(Math.round(255*this._colorTransform.redMultiplier)<<16)+(Math.round(255*this._colorTransform.greenMultiplier)<<8)+Math.round(255*this._colorTransform.blueMultiplier);this._renderDisplay.tint=e}}_updateFrame(){let t=this._textureData;if(this._displayIndex>=0&&null!==this._display&&null!==t){let a=t.parent;null!==this._armature.replacedTexture&&(null===this._armature._replaceTextureAtlasData?(a=e.BaseObject.borrowObject(r.PixiTextureAtlasData),a.copyFrom(t.parent),a.renderTexture=this._armature.replacedTexture,this._armature._replaceTextureAtlasData=a):a=this._armature._replaceTextureAtlasData,t=a.getTexture(t.name));const s=t.renderTexture;if(null!==s){if(null!==this._geometryData){const e=this._geometryData.data,r=e.intArray,a=e.floatArray,i=r[this._geometryData.offset+0],l=r[this._geometryData.offset+1];let n=r[this._geometryData.offset+2];n<0&&(n+=65536);const o=n+2*i,d=this._armature._armatureData.scale,h=this._renderDisplay,_=new Float32Array(2*i),p=new Float32Array(2*i),c=new Uint16Array(3*l);for(let e=0,t=2*i;e<t;++e)_[e]=a[n+e]*d;for(let e=0;e<3*l;++e)c[e]=r[this._geometryData.offset+4+e];for(let e=0,r=2*i;e<r;e+=2){const r=a[o+e],s=a[o+e+1];t.rotated?(p[e]=1-s,p[e+1]=r):(p[e]=r,p[e+1]=s)}this._textureScale=1,h.texture=s,h.vertices=_,h.geometry.uvs=p,h.geometry.indices=c;const y=null!==this._geometryData.weight,u=0!==this._parent._boneData.type;(y||u)&&this._identityTransform()}else{this._textureScale=t.parent.scale*this._armature._armatureData.scale;this._renderDisplay.texture=s}return void(this._visibleDirty=!0)}}if(null!==this._geometryData){const e=this._renderDisplay;e.texture=null,e.x=0,e.y=0,e.visible=!1}else{const e=this._renderDisplay;e.texture=null,e.x=0,e.y=0,e.visible=!1}}_updateMesh(){const e=this._armature._armatureData.scale,t=this._displayFrame.deformVertices,r=this._geometryBones,a=this._geometryData,s=a.weight,i=t.length>0&&a.inheritDeform,l=this._renderDisplay;if(null!==s){const n=a.data,o=n.intArray,d=n.floatArray,h=o[a.offset+0];let _=o[s.offset+1];_<0&&(_+=65536);for(let a=0,n=0,p=s.offset+2+r.length,c=_,y=0;a<h;++a){const a=o[p++];let s=0,h=0;for(let l=0;l<a;++l){const a=r[o[p++]];if(null!==a){const r=a.globalTransformMatrix,l=d[c++];let n=d[c++]*e,o=d[c++]*e;i&&(n+=t[y++],o+=t[y++]),s+=(r.a*n+r.c*o+r.tx)*l,h+=(r.b*n+r.d*o+r.ty)*l}}l.vertices[n++]=s,l.vertices[n++]=h}}else{const r=0!==this._parent._boneData.type,s=a.data,n=s.intArray,o=s.floatArray,d=n[a.offset+0];let h=n[a.offset+2];h<0&&(h+=65536);for(let a=0,s=2*d;a<s;a+=2){let s=o[h+a]*e,n=o[h+a+1]*e;if(i&&(s+=t[a],n+=t[a+1]),r){const e=this._parent._getGlobalTransformMatrix(s,n);l.vertices[a]=e.a*s+e.c*n+e.tx,l.vertices[a+1]=e.b*s+e.d*n+e.ty}else l.vertices[a]=s,l.vertices[a+1]=n}}}_updateTransform(){this.updateGlobalTransform();const e=this.global;if(this._renderDisplay===this._rawDisplay||this._renderDisplay===this._meshDisplay){const t=e.x-(this.globalTransformMatrix.a*this._pivotX+this.globalTransformMatrix.c*this._pivotY),r=e.y-(this.globalTransformMatrix.b*this._pivotX+this.globalTransformMatrix.d*this._pivotY);this._renderDisplay.updateTransform({x:t,y:r,scaleX:e.scaleX*this._textureScale,scaleY:e.scaleY*this._textureScale,rotation:e.rotation,skewX:-e.skew,skewY:0})}else this._renderDisplay.position.set(e.x,e.y),this._renderDisplay.rotation=e.rotation,this._renderDisplay.skew.set(-e.skew,0),this._renderDisplay.scale.set(e.scaleX,e.scaleY)}_identityTransform(){this._renderDisplay.updateTransform({x:0,y:0,pivotX:0,pivotY:0,scaleX:1,scaleY:1,rotation:0,skewX:0,skewY:0})}}exports.PixiSlot=s; //# sourceMappingURL=PixiSlot.cjs.map