@eva/plugin-renderer 2.0.1-beta.8 → 2.0.1
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.
|
@@ -1280,6 +1280,16 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
|
|
|
1280
1280
|
application
|
|
1281
1281
|
});
|
|
1282
1282
|
}));
|
|
1283
|
+
this.game.on('pauseScene', ({
|
|
1284
|
+
scene
|
|
1285
|
+
}) => {
|
|
1286
|
+
this.onPauseScene(scene);
|
|
1287
|
+
});
|
|
1288
|
+
this.game.on('startScene', ({
|
|
1289
|
+
scene
|
|
1290
|
+
}) => {
|
|
1291
|
+
this.onStartScene(scene);
|
|
1292
|
+
});
|
|
1283
1293
|
this.game.on('sceneDestroyed', ({
|
|
1284
1294
|
scene
|
|
1285
1295
|
}) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1343,13 +1353,6 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
|
|
|
1343
1353
|
}
|
|
1344
1354
|
}
|
|
1345
1355
|
lateUpdate(e) {
|
|
1346
|
-
for (const gameObject of this.game.gameObjects) {
|
|
1347
|
-
this.containerManager.updateTransform({
|
|
1348
|
-
name: gameObject.id,
|
|
1349
|
-
transform: gameObject.transform
|
|
1350
|
-
});
|
|
1351
|
-
this.rendererManager.update(gameObject);
|
|
1352
|
-
}
|
|
1353
1356
|
this.transform.update();
|
|
1354
1357
|
this.application.ticker.update(e.time);
|
|
1355
1358
|
}
|
|
@@ -1372,6 +1375,33 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
|
|
|
1372
1375
|
this.params.height = height;
|
|
1373
1376
|
this.application.renderer.resize(width, height);
|
|
1374
1377
|
}
|
|
1378
|
+
getApplicationByScene(scene) {
|
|
1379
|
+
const index = this.multiApps.findIndex(app => app.canvas === scene.canvas);
|
|
1380
|
+
if (index > -1) {
|
|
1381
|
+
const application = this.multiApps[index];
|
|
1382
|
+
return application;
|
|
1383
|
+
} else {
|
|
1384
|
+
console.warn('application not found');
|
|
1385
|
+
}
|
|
1386
|
+
}
|
|
1387
|
+
onPauseScene(scene) {
|
|
1388
|
+
const app = this.getApplicationByScene(scene);
|
|
1389
|
+
if (app) {
|
|
1390
|
+
app.stop();
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
onStartScene(scene) {
|
|
1394
|
+
const app = this.getApplicationByScene(scene);
|
|
1395
|
+
if (app) {
|
|
1396
|
+
app.start();
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
resizeByScene(scene, width, height) {
|
|
1400
|
+
const app = this.getApplicationByScene(scene);
|
|
1401
|
+
if (app) {
|
|
1402
|
+
app.renderer.resize(width, height);
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1375
1405
|
};
|
|
1376
1406
|
Renderer$1.systemName = 'Renderer';
|
|
1377
1407
|
Renderer$1 = __decorate([eva_js.decorators.componentObserver({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_extends.apply(null,arguments)}globalThis.EVA=globalThis.EVA||{},globalThis.EVA.plugin=globalThis.EVA.plugin||{};var _EVA_IIFE_renderer=function(e,t,n,r){"use strict";function o(e,t,n,r){var o,a=arguments.length,i=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,n,i):o(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function a(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}c((r=r.apply(e,t||[])).next())}))}function i(e,t){return e===t||e!=e&&t!=t}function s(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}var c=Array.prototype.splice;function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=function(){this.__data__=[],this.size=0},u.prototype.delete=function(e){var t=this.__data__,n=s(t,e);return!(n<0)&&(n==t.length-1?t.pop():c.call(t,n,1),--this.size,!0)},u.prototype.get=function(e){var t=this.__data__,n=s(t,e);return n<0?void 0:t[n][1]},u.prototype.has=function(e){return s(this.__data__,e)>-1},u.prototype.set=function(e,t){var n=this.__data__,r=s(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var p="object"==typeof global&&global&&global.Object===Object&&global,l="object"==typeof self&&self&&self.Object===Object&&self,f=p||l||Function("return this")(),h=f.Symbol,d=Object.prototype,v=d.hasOwnProperty,_=d.toString,y=h?h.toStringTag:void 0;var g=Object.prototype.toString;var m=h?h.toStringTag:void 0;function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":m&&m in Object(e)?function(e){var t=v.call(e,y),n=e[y];try{e[y]=void 0;var r=!0}catch(e){}var o=_.call(e);return r&&(t?e[y]=n:delete e[y]),o}(e):function(e){return g.call(e)}(e)}function j(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function O(e){if(!j(e))return!1;var t=b(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var E,w=f["__core-js_shared__"],A=(E=/[^.]+$/.exec(w&&w.keys&&w.keys.IE_PROTO||""))?"Symbol(src)_1."+E:"";var x=Function.prototype.toString;function C(e){if(null!=e){try{return x.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var M=/^\[object .+?Constructor\]$/,S=Function.prototype,T=Object.prototype,P=S.toString,R=T.hasOwnProperty,I=RegExp("^"+P.call(R).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function z(e){return!(!j(e)||(t=e,A&&A in t))&&(O(e)?I:M).test(C(e));var t}function L(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return z(n)?n:void 0}var N=L(f,"Map"),V=L(Object,"create");var D=Object.prototype.hasOwnProperty;var k=Object.prototype.hasOwnProperty;function B(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function W(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function G(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}B.prototype.clear=function(){this.__data__=V?V(null):{},this.size=0},B.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},B.prototype.get=function(e){var t=this.__data__;if(V){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return D.call(t,e)?t[e]:void 0},B.prototype.has=function(e){var t=this.__data__;return V?void 0!==t[e]:k.call(t,e)},B.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=V&&void 0===t?"__lodash_hash_undefined__":t,this},G.prototype.clear=function(){this.size=0,this.__data__={hash:new B,map:new(N||u),string:new B}},G.prototype.delete=function(e){var t=W(this,e).delete(e);return this.size-=t?1:0,t},G.prototype.get=function(e){return W(this,e).get(e)},G.prototype.has=function(e){return W(this,e).has(e)},G.prototype.set=function(e,t){var n=W(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function U(e){var t=this.__data__=new u(e);this.size=t.size}U.prototype.clear=function(){this.__data__=new u,this.size=0},U.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},U.prototype.get=function(e){return this.__data__.get(e)},U.prototype.has=function(e){return this.__data__.has(e)},U.prototype.set=function(e,t){var n=this.__data__;if(n instanceof u){var r=n.__data__;if(!N||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new G(r)}return n.set(e,t),this.size=n.size,this};function $(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new G;++t<n;)this.add(e[t])}function F(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}$.prototype.add=$.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},$.prototype.has=function(e){return this.__data__.has(e)};function Y(e,t,n,r,o,a){var i=1&n,s=e.length,c=t.length;if(s!=c&&!(i&&c>s))return!1;var u=a.get(e),p=a.get(t);if(u&&p)return u==t&&p==e;var l=-1,f=!0,h=2&n?new $:void 0;for(a.set(e,t),a.set(t,e);++l<s;){var d=e[l],v=t[l];if(r)var _=i?r(v,d,l,t,e,a):r(d,v,l,e,t,a);if(void 0!==_){if(_)continue;f=!1;break}if(h){if(!F(t,(function(e,t){if(i=t,!h.has(i)&&(d===e||o(d,e,n,r,a)))return h.push(t);var i}))){f=!1;break}}else if(d!==v&&!o(d,v,n,r,a)){f=!1;break}}return a.delete(e),a.delete(t),f}var K=f.Uint8Array;function X(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function q(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var H=h?h.prototype:void 0,J=H?H.valueOf:void 0;var Q=Array.isArray;var Z=Object.prototype.propertyIsEnumerable,ee=Object.getOwnPropertySymbols,te=ee?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a}(ee(e),(function(t){return Z.call(e,t)})))}:function(){return[]},ne=te;function re(e){return null!=e&&"object"==typeof e}function oe(e){return re(e)&&"[object Arguments]"==b(e)}var ae=Object.prototype,ie=ae.hasOwnProperty,se=ae.propertyIsEnumerable,ce=oe(function(){return arguments}())?oe:function(e){return re(e)&&ie.call(e,"callee")&&!se.call(e,"callee")},ue=ce;var pe="object"==typeof e&&e&&!e.nodeType&&e,le=pe&&"object"==typeof module&&module&&!module.nodeType&&module,fe=le&&le.exports===pe?f.Buffer:void 0,he=(fe?fe.isBuffer:void 0)||function(){return!1},de=/^(?:0|[1-9]\d*)$/;function ve(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&de.test(e))&&e>-1&&e%1==0&&e<t}function _e(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var ye={};ye["[object Float32Array]"]=ye["[object Float64Array]"]=ye["[object Int8Array]"]=ye["[object Int16Array]"]=ye["[object Int32Array]"]=ye["[object Uint8Array]"]=ye["[object Uint8ClampedArray]"]=ye["[object Uint16Array]"]=ye["[object Uint32Array]"]=!0,ye["[object Arguments]"]=ye["[object Array]"]=ye["[object ArrayBuffer]"]=ye["[object Boolean]"]=ye["[object DataView]"]=ye["[object Date]"]=ye["[object Error]"]=ye["[object Function]"]=ye["[object Map]"]=ye["[object Number]"]=ye["[object Object]"]=ye["[object RegExp]"]=ye["[object Set]"]=ye["[object String]"]=ye["[object WeakMap]"]=!1;var ge,me="object"==typeof e&&e&&!e.nodeType&&e,be=me&&"object"==typeof module&&module&&!module.nodeType&&module,je=be&&be.exports===me&&p.process,Oe=function(){try{var e=be&&be.require&&be.require("util").types;return e||je&&je.binding&&je.binding("util")}catch(e){}}(),Ee=Oe&&Oe.isTypedArray,we=Ee?(ge=Ee,function(e){return ge(e)}):function(e){return re(e)&&_e(e.length)&&!!ye[b(e)]},Ae=Object.prototype.hasOwnProperty;function xe(e,t){var n=Q(e),r=!n&&ue(e),o=!n&&!r&&he(e),a=!n&&!r&&!o&&we(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],c=s.length;for(var u in e)!t&&!Ae.call(e,u)||i&&("length"==u||o&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||ve(u,c))||s.push(u);return s}var Ce=Object.prototype;var Me=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),Se=Me,Te=Object.prototype.hasOwnProperty;function Pe(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||Ce))return Se(e);var t,n,r=[];for(var o in Object(e))Te.call(e,o)&&"constructor"!=o&&r.push(o);return r}function Re(e){return null!=(t=e)&&_e(t.length)&&!O(t)?xe(e):Pe(e);var t}function Ie(e){return function(e,t,n){var r=t(e);return Q(e)?r:function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}(r,n(e))}(e,Re,ne)}var ze=Object.prototype.hasOwnProperty;var Le=L(f,"DataView"),Ne=L(f,"Promise"),Ve=L(f,"Set"),De=L(f,"WeakMap"),ke="[object Map]",Be="[object Promise]",We="[object Set]",Ge="[object WeakMap]",Ue="[object DataView]",$e=C(Le),Fe=C(N),Ye=C(Ne),Ke=C(Ve),Xe=C(De),qe=b;(Le&&qe(new Le(new ArrayBuffer(1)))!=Ue||N&&qe(new N)!=ke||Ne&&qe(Ne.resolve())!=Be||Ve&&qe(new Ve)!=We||De&&qe(new De)!=Ge)&&(qe=function(e){var t=b(e),n="[object Object]"==t?e.constructor:void 0,r=n?C(n):"";if(r)switch(r){case $e:return Ue;case Fe:return ke;case Ye:return Be;case Ke:return We;case Xe:return Ge}return t});var He=qe,Je="[object Arguments]",Qe="[object Array]",Ze="[object Object]",et=Object.prototype.hasOwnProperty;function tt(e,t,n,r,o,a){var s=Q(e),c=Q(t),u=s?Qe:He(e),p=c?Qe:He(t),l=(u=u==Je?Ze:u)==Ze,f=(p=p==Je?Ze:p)==Ze,h=u==p;if(h&&he(e)){if(!he(t))return!1;s=!0,l=!1}if(h&&!l)return a||(a=new U),s||we(e)?Y(e,t,n,r,o,a):function(e,t,n,r,o,a,s){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!a(new K(e),new K(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var c=X;case"[object Set]":var u=1&r;if(c||(c=q),e.size!=t.size&&!u)return!1;var p=s.get(e);if(p)return p==t;r|=2,s.set(e,t);var l=Y(c(e),c(t),r,o,a,s);return s.delete(e),l;case"[object Symbol]":if(J)return J.call(e)==J.call(t)}return!1}(e,t,u,n,r,o,a);if(!(1&n)){var d=l&&et.call(e,"__wrapped__"),v=f&&et.call(t,"__wrapped__");if(d||v){var _=d?e.value():e,y=v?t.value():t;return a||(a=new U),o(_,y,n,r,a)}}return!!h&&(a||(a=new U),function(e,t,n,r,o,a){var i=1&n,s=Ie(e),c=s.length;if(c!=Ie(t).length&&!i)return!1;for(var u=c;u--;){var p=s[u];if(!(i?p in t:ze.call(t,p)))return!1}var l=a.get(e),f=a.get(t);if(l&&f)return l==t&&f==e;var h=!0;a.set(e,t),a.set(t,e);for(var d=i;++u<c;){var v=e[p=s[u]],_=t[p];if(r)var y=i?r(_,v,p,t,e,a):r(v,_,p,e,t,a);if(!(void 0===y?v===_||o(v,_,n,r,a):y)){h=!1;break}d||(d="constructor"==p)}if(h&&!d){var g=e.constructor,m=t.constructor;g==m||!("constructor"in e)||!("constructor"in t)||"function"==typeof g&&g instanceof g&&"function"==typeof m&&m instanceof m||(h=!1)}return a.delete(e),a.delete(t),h}(e,t,n,r,o,a))}function nt(e,t,n,r,o){return e===t||(null==e||null==t||!re(e)&&!re(t)?e!=e&&t!=t:tt(e,t,n,r,nt,o))}var rt=class{constructor({game:e,rendererSystem:t}){this.renderers=[],this.game=e,this.rendererSystem=t}register(...e){for(const t of e)t.game=this.game,t.rendererManager=this.rendererSystem.rendererManager,t.containerManager=this.rendererSystem.containerManager,this.renderers.push(t)}componentChanged(e){for(const n of e)for(const e of this.renderers){const r=e.observerInfo[n.componentName];if(r){if([t.OBSERVER_TYPE.ADD,t.OBSERVER_TYPE.REMOVE].indexOf(n.type)>-1){try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject.name}, ${n.componentName} is error.`,n,e)}continue}if(r.findIndex((e=>{return t=e,r=n.prop,nt(t,r);var t,r}))>-1)try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject&&n.gameObject.name}, ${n.componentName} is componentChanged error.`,n,e)}}}}update(e){for(const t of e.components)for(const n of this.renderers){const r=[];if(n.observerInfo[t.name]&&-1===r.indexOf(e)){r.push(e);try{n.rendererUpdate&&n.rendererUpdate(e)}catch(n){console.info(`gameObject: ${e.name}, ${t.name} is update error`,n)}}}}};class ot{constructor(){this.containerMap={}}addContainer({name:e,container:t,gameObject:n}){this.containerMap[e]=t,t.gName=n.name||e}getContainer(e){return this.containerMap[e]}removeContainer(e){const t=this.containerMap[e];t&&t.destroy({children:!0}),delete this.containerMap[e]}updateTransform({name:e,transform:t}){const n=this.containerMap[e];if(!n||!t)return;const{anchor:r,origin:o,position:a,rotation:i,scale:s,size:c,skew:u}=t;n.rotation=i,n.scale=s,n.pivot.x=c.width*o.x,n.pivot.y=c.height*o.y,n.skew=u;let p=a.x,l=a.y;if(t.parent){const e=t.parent;p+=e.size.width*r.x,l+=e.size.height*r.y}n.position={x:p,y:l}}}var at=function(e){var t={exports:{}};return e(t,t.exports),t.exports}((function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,r,a,i){if("function"!=typeof r)throw new TypeError("The listener must be a function");var s=new o(r,a||e,i),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function s(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),s.prototype.eventNames=function(){var e,r,o=[];if(0===this._eventsCount)return o;for(r in e=this._events)t.call(e,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},s.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,a=r.length,i=new Array(a);o<a;o++)i[o]=r[o].fn;return i},s.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},s.prototype.emit=function(e,t,r,o,a,i){var s=n?n+e:e;if(!this._events[s])return!1;var c,u,p=this._events[s],l=arguments.length;if(p.fn){switch(p.once&&this.removeListener(e,p.fn,void 0,!0),l){case 1:return p.fn.call(p.context),!0;case 2:return p.fn.call(p.context,t),!0;case 3:return p.fn.call(p.context,t,r),!0;case 4:return p.fn.call(p.context,t,r,o),!0;case 5:return p.fn.call(p.context,t,r,o,a),!0;case 6:return p.fn.call(p.context,t,r,o,a,i),!0}for(u=1,c=new Array(l-1);u<l;u++)c[u-1]=arguments[u];p.fn.apply(p.context,c)}else{var f,h=p.length;for(u=0;u<h;u++)switch(p[u].once&&this.removeListener(e,p[u].fn,void 0,!0),l){case 1:p[u].fn.call(p[u].context);break;case 2:p[u].fn.call(p[u].context,t);break;case 3:p[u].fn.call(p[u].context,t,r);break;case 4:p[u].fn.call(p[u].context,t,r,o);break;default:if(!c)for(f=1,c=new Array(l-1);f<l;f++)c[f-1]=arguments[f];p[u].fn.apply(p[u].context,c)}}return!0},s.prototype.on=function(e,t,n){return a(this,e,t,n,!1)},s.prototype.once=function(e,t,n){return a(this,e,t,n,!0)},s.prototype.removeListener=function(e,t,r,o){var a=n?n+e:e;if(!this._events[a])return this;if(!t)return i(this,a),this;var s=this._events[a];if(s.fn)s.fn!==t||o&&!s.once||r&&s.context!==r||i(this,a);else{for(var c=0,u=[],p=s.length;c<p;c++)(s[c].fn!==t||o&&!s[c].once||r&&s[c].context!==r)&&u.push(s[c]);u.length?this._events[a]=1===u.length?u[0]:u:i(this,a)}return this},s.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new r,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=n,s.EventEmitter=s,e.exports=s})),it=at;let st=class extends it{constructor({system:e,containerManager:t}){super(),this.name="Transform",this.waitRemoveIds=[],this.waitChangeScenes=[],this.containerManager=t,this.init(e)}init(e){this.system=e,this.on("changeScene",(({scene:e,mode:t,application:n})=>{this.waitChangeScenes.push({scene:e,mode:t,application:n})}))}update(){for(const e of this.waitRemoveIds)this.containerManager.removeContainer(e);this.waitRemoveIds=[];for(const e of this.waitChangeScenes){const t=this.containerManager.getContainer(e.scene.id);t&&(e.application.stage.removeChildren(),e.application.stage.addChild(t))}this.waitChangeScenes=[]}componentChanged(e){e.type===t.OBSERVER_TYPE.ADD?this.addContainer(e):e.type===t.OBSERVER_TYPE.CHANGE?this.change(e):e.type===t.OBSERVER_TYPE.REMOVE&&this.waitRemoveIds.push(e.gameObject.id)}addContainer(e){const t=new n.Container;t.label=e.gameObject.name,this.containerManager.addContainer({name:e.gameObject.id,container:t,gameObject:e.gameObject});const r=e.component;Object.defineProperty(r,"worldTransform",{get:()=>t.renderGroup||t.parentRenderGroup?t.worldTransform:void 0})}change(e){const t=e.component;if(t.parent){this.containerManager.getContainer(t.parent.gameObject.id).addChild(this.containerManager.getContainer(e.gameObject.id));const n=e.gameObject.transform.parent&&e.gameObject.transform.parent.gameObject.getComponent("Render");n&&(n.sortDirty=!0)}else{const t=this.containerManager.getContainer(e.gameObject.id);t.parent&&t.parent.removeChild(t)}}destroy(){this.removeAllListeners(),this.waitRemoveIds=null,this.waitChangeScenes=null,this.system=null,this.containerManager=null}};st=o([t.decorators.componentObserver({Transform:["_parent"]})],st);var ct,ut=st;e.RENDERER_TYPE=void 0,(ct=e.RENDERER_TYPE||(e.RENDERER_TYPE={}))[ct.UNKNOWN=0]="UNKNOWN",ct[ct.WEBGL=1]="WEBGL",ct[ct.CANVAS=2]="CANVAS";let pt=class extends t.System{constructor(){super(...arguments),this.multiApps=[]}init(e){return a(this,void 0,void 0,(function*(){this.params=e,this.application=yield this.createApplication(e),this.containerManager=new ot,this.rendererManager=new rt({game:this.game,rendererSystem:this}),this.game.canvas=this.application.canvas,this.transform=new ut({system:this,containerManager:this.containerManager}),this.game.on("sceneChanged",(({scene:e,mode:n,params:r})=>a(this,void 0,void 0,(function*(){let o;switch(n){case t.LOAD_SCENE_MODE.SINGLE:o=this.application;break;case t.LOAD_SCENE_MODE.MULTI_CANVAS:o=yield this.createMultiApplication({params:r})}e.canvas=o.canvas,this.transform.emit("changeScene",{scene:e,mode:n,application:o})})))),this.game.on("sceneDestroyed",(({scene:e})=>a(this,void 0,void 0,(function*(){const t=this.multiApps.findIndex((t=>t.canvas===e.canvas));if(t>-1){this.multiApps.splice(t,1)[0].destroy(),e.destroy()}}))))}))}registerObserver(e){const t=this.constructor.observerInfo;for(const n in e)t[n]||(t[n]=[]),t[n].push(...e[n])}createMultiApplication({params:e}){return a(this,void 0,void 0,(function*(){const t=yield this.createApplication(e);return this.multiApps.push(t),t}))}createApplication(e){return a(this,void 0,void 0,(function*(){const t=new n.Application;var o;return e.debugMode&&(globalThis.__PIXI_APP__=t),yield t.init(_extends(_extends({sharedTicker:!0},e),{hello:!0})),void 0!==e.enableScroll&&(e.enableScroll?((o=t.renderer).events.autoPreventDefault=!1,o.canvas.style.touchAction="auto"):(e=>{e.events.autoPreventDefault=!0,e.canvas.style.touchAction="none"})(t.renderer)),r.Ticker.shared.stop(),r.Ticker.shared.autoStart=!1,t}))}update(){const e=this.componentObserver.clear();for(const t of e)this.transform.componentChanged(t);for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e)}lateUpdate(e){for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e);this.transform.update(),this.application.ticker.update(e.time)}onDestroy(){this.application.destroy();for(const e of this.multiApps)e&&e.destroy();this.transform.destroy(),this.transform=null,this.params=null,this.rendererManager=null,this.containerManager=null,this.application=null,this.game=null,this.multiApps=null}resize(e,t){this.params.width=e,this.params.height=t,this.application.renderer.resize(e,t)}};pt.systemName="Renderer",pt=o([t.decorators.componentObserver({Transform:["_parent"]})],pt);var lt=pt;let ft;function ht(e){e.addPreProcessResourceHandler((function(e){var t,n,r;let o=null===(n=null===(t=e.src)||void 0===t?void 0:t.image)||void 0===n?void 0:n.texture;if(!o)return;Array.isArray(o)||(o=[o]);const a=null!==(r=function(){if(ft)return ft;const e=document.createElement("canvas").getContext("webgl2");if(!e)return console.warn("WebGL not available for compressed textures. Silently failing."),{s3tc:!1,etc:!1,etc1:!1,pvrtc:!1,atc:!1,astc:!1};ft={s3tc:!!e.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!e.getExtension("WEBGL_compressed_texture_etc"),etc1:!!e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!e.getExtension("WEBGL_compressed_texture_pvrtc")||!!e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!e.getExtension("WEBGL_compressed_texture_atc"),astc:!!e.getExtension("WEBGL_compressed_texture_astc")};try{console.log("Eva.js Supported Compressed Texture Format List: "+Object.keys(ft).filter((e=>ft[e])).join(", "))}catch(e){}return ft}())&&void 0!==r?r:{};let i=o.find((e=>a[e.type]));i&&_extends(e.src.image,i)}))}class dt extends t.System{constructor(e){super(e),this.asyncIdMap={},this.observerInfo=this.constructor.observerInfo}componentChanged(e){}rendererUpdate(e){}update(e){const t=this.componentObserver.clear();for(const e of t)this.componentChanged(e)}increaseAsyncId(e){return this.asyncIdMap[e]=(this.asyncIdMap[e]||0)+1,this.asyncIdMap[e]}validateAsyncId(e,t){return this.asyncIdMap[e]===t}}return e.ContainerManager=ot,e.Renderer=dt,e.RendererManager=rt,e.RendererSystem=lt,e.registerKtx2CompressedTexture=function(e){r.setKTXTranscoderPath(e),r.extensions.add(r.loadKTX2),r.extensions.add(r.resolveCompressedTextureUrl),r.extensions.add(r.detectCompressed),ht(t.resource)},Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.rendererAdapter,PIXI);globalThis.EVA.plugin.renderer=globalThis.EVA.plugin.renderer||_EVA_IIFE_renderer;
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_extends.apply(null,arguments)}globalThis.EVA=globalThis.EVA||{},globalThis.EVA.plugin=globalThis.EVA.plugin||{};var _EVA_IIFE_renderer=function(e,t,n,r){"use strict";function o(e,t,n,r){var o,a=arguments.length,i=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,n,i):o(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function a(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}c((r=r.apply(e,t||[])).next())}))}function i(e,t){return e===t||e!=e&&t!=t}function s(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}var c=Array.prototype.splice;function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=function(){this.__data__=[],this.size=0},u.prototype.delete=function(e){var t=this.__data__,n=s(t,e);return!(n<0)&&(n==t.length-1?t.pop():c.call(t,n,1),--this.size,!0)},u.prototype.get=function(e){var t=this.__data__,n=s(t,e);return n<0?void 0:t[n][1]},u.prototype.has=function(e){return s(this.__data__,e)>-1},u.prototype.set=function(e,t){var n=this.__data__,r=s(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var p="object"==typeof global&&global&&global.Object===Object&&global,l="object"==typeof self&&self&&self.Object===Object&&self,h=p||l||Function("return this")(),f=h.Symbol,d=Object.prototype,v=d.hasOwnProperty,y=d.toString,_=f?f.toStringTag:void 0;var g=Object.prototype.toString;var m=f?f.toStringTag:void 0;function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":m&&m in Object(e)?function(e){var t=v.call(e,_),n=e[_];try{e[_]=void 0;var r=!0}catch(e){}var o=y.call(e);return r&&(t?e[_]=n:delete e[_]),o}(e):function(e){return g.call(e)}(e)}function j(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function O(e){if(!j(e))return!1;var t=b(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var w,E=h["__core-js_shared__"],A=(w=/[^.]+$/.exec(E&&E.keys&&E.keys.IE_PROTO||""))?"Symbol(src)_1."+w:"";var x=Function.prototype.toString;function S(e){if(null!=e){try{return x.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var C=/^\[object .+?Constructor\]$/,M=Function.prototype,P=Object.prototype,T=M.toString,R=P.hasOwnProperty,I=RegExp("^"+T.call(R).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function z(e){return!(!j(e)||(t=e,A&&A in t))&&(O(e)?I:C).test(S(e));var t}function B(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return z(n)?n:void 0}var L=B(h,"Map"),N=B(Object,"create");var V=Object.prototype.hasOwnProperty;var D=Object.prototype.hasOwnProperty;function k(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function W(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function G(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}k.prototype.clear=function(){this.__data__=N?N(null):{},this.size=0},k.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},k.prototype.get=function(e){var t=this.__data__;if(N){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return V.call(t,e)?t[e]:void 0},k.prototype.has=function(e){var t=this.__data__;return N?void 0!==t[e]:D.call(t,e)},k.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=N&&void 0===t?"__lodash_hash_undefined__":t,this},G.prototype.clear=function(){this.size=0,this.__data__={hash:new k,map:new(L||u),string:new k}},G.prototype.delete=function(e){var t=W(this,e).delete(e);return this.size-=t?1:0,t},G.prototype.get=function(e){return W(this,e).get(e)},G.prototype.has=function(e){return W(this,e).has(e)},G.prototype.set=function(e,t){var n=W(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function U(e){var t=this.__data__=new u(e);this.size=t.size}U.prototype.clear=function(){this.__data__=new u,this.size=0},U.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},U.prototype.get=function(e){return this.__data__.get(e)},U.prototype.has=function(e){return this.__data__.has(e)},U.prototype.set=function(e,t){var n=this.__data__;if(n instanceof u){var r=n.__data__;if(!L||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new G(r)}return n.set(e,t),this.size=n.size,this};function $(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new G;++t<n;)this.add(e[t])}function F(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}$.prototype.add=$.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},$.prototype.has=function(e){return this.__data__.has(e)};function Y(e,t,n,r,o,a){var i=1&n,s=e.length,c=t.length;if(s!=c&&!(i&&c>s))return!1;var u=a.get(e),p=a.get(t);if(u&&p)return u==t&&p==e;var l=-1,h=!0,f=2&n?new $:void 0;for(a.set(e,t),a.set(t,e);++l<s;){var d=e[l],v=t[l];if(r)var y=i?r(v,d,l,t,e,a):r(d,v,l,e,t,a);if(void 0!==y){if(y)continue;h=!1;break}if(f){if(!F(t,(function(e,t){if(i=t,!f.has(i)&&(d===e||o(d,e,n,r,a)))return f.push(t);var i}))){h=!1;break}}else if(d!==v&&!o(d,v,n,r,a)){h=!1;break}}return a.delete(e),a.delete(t),h}var K=h.Uint8Array;function X(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function q(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var H=f?f.prototype:void 0,J=H?H.valueOf:void 0;var Q=Array.isArray;var Z=Object.prototype.propertyIsEnumerable,ee=Object.getOwnPropertySymbols,te=ee?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a}(ee(e),(function(t){return Z.call(e,t)})))}:function(){return[]},ne=te;function re(e){return null!=e&&"object"==typeof e}function oe(e){return re(e)&&"[object Arguments]"==b(e)}var ae=Object.prototype,ie=ae.hasOwnProperty,se=ae.propertyIsEnumerable,ce=oe(function(){return arguments}())?oe:function(e){return re(e)&&ie.call(e,"callee")&&!se.call(e,"callee")},ue=ce;var pe="object"==typeof e&&e&&!e.nodeType&&e,le=pe&&"object"==typeof module&&module&&!module.nodeType&&module,he=le&&le.exports===pe?h.Buffer:void 0,fe=(he?he.isBuffer:void 0)||function(){return!1},de=/^(?:0|[1-9]\d*)$/;function ve(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&de.test(e))&&e>-1&&e%1==0&&e<t}function ye(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var _e={};_e["[object Float32Array]"]=_e["[object Float64Array]"]=_e["[object Int8Array]"]=_e["[object Int16Array]"]=_e["[object Int32Array]"]=_e["[object Uint8Array]"]=_e["[object Uint8ClampedArray]"]=_e["[object Uint16Array]"]=_e["[object Uint32Array]"]=!0,_e["[object Arguments]"]=_e["[object Array]"]=_e["[object ArrayBuffer]"]=_e["[object Boolean]"]=_e["[object DataView]"]=_e["[object Date]"]=_e["[object Error]"]=_e["[object Function]"]=_e["[object Map]"]=_e["[object Number]"]=_e["[object Object]"]=_e["[object RegExp]"]=_e["[object Set]"]=_e["[object String]"]=_e["[object WeakMap]"]=!1;var ge,me="object"==typeof e&&e&&!e.nodeType&&e,be=me&&"object"==typeof module&&module&&!module.nodeType&&module,je=be&&be.exports===me&&p.process,Oe=function(){try{var e=be&&be.require&&be.require("util").types;return e||je&&je.binding&&je.binding("util")}catch(e){}}(),we=Oe&&Oe.isTypedArray,Ee=we?(ge=we,function(e){return ge(e)}):function(e){return re(e)&&ye(e.length)&&!!_e[b(e)]},Ae=Object.prototype.hasOwnProperty;function xe(e,t){var n=Q(e),r=!n&&ue(e),o=!n&&!r&&fe(e),a=!n&&!r&&!o&&Ee(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],c=s.length;for(var u in e)!t&&!Ae.call(e,u)||i&&("length"==u||o&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||ve(u,c))||s.push(u);return s}var Se=Object.prototype;var Ce=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),Me=Ce,Pe=Object.prototype.hasOwnProperty;function Te(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||Se))return Me(e);var t,n,r=[];for(var o in Object(e))Pe.call(e,o)&&"constructor"!=o&&r.push(o);return r}function Re(e){return null!=(t=e)&&ye(t.length)&&!O(t)?xe(e):Te(e);var t}function Ie(e){return function(e,t,n){var r=t(e);return Q(e)?r:function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}(r,n(e))}(e,Re,ne)}var ze=Object.prototype.hasOwnProperty;var Be=B(h,"DataView"),Le=B(h,"Promise"),Ne=B(h,"Set"),Ve=B(h,"WeakMap"),De="[object Map]",ke="[object Promise]",We="[object Set]",Ge="[object WeakMap]",Ue="[object DataView]",$e=S(Be),Fe=S(L),Ye=S(Le),Ke=S(Ne),Xe=S(Ve),qe=b;(Be&&qe(new Be(new ArrayBuffer(1)))!=Ue||L&&qe(new L)!=De||Le&&qe(Le.resolve())!=ke||Ne&&qe(new Ne)!=We||Ve&&qe(new Ve)!=Ge)&&(qe=function(e){var t=b(e),n="[object Object]"==t?e.constructor:void 0,r=n?S(n):"";if(r)switch(r){case $e:return Ue;case Fe:return De;case Ye:return ke;case Ke:return We;case Xe:return Ge}return t});var He=qe,Je="[object Arguments]",Qe="[object Array]",Ze="[object Object]",et=Object.prototype.hasOwnProperty;function tt(e,t,n,r,o,a){var s=Q(e),c=Q(t),u=s?Qe:He(e),p=c?Qe:He(t),l=(u=u==Je?Ze:u)==Ze,h=(p=p==Je?Ze:p)==Ze,f=u==p;if(f&&fe(e)){if(!fe(t))return!1;s=!0,l=!1}if(f&&!l)return a||(a=new U),s||Ee(e)?Y(e,t,n,r,o,a):function(e,t,n,r,o,a,s){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!a(new K(e),new K(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var c=X;case"[object Set]":var u=1&r;if(c||(c=q),e.size!=t.size&&!u)return!1;var p=s.get(e);if(p)return p==t;r|=2,s.set(e,t);var l=Y(c(e),c(t),r,o,a,s);return s.delete(e),l;case"[object Symbol]":if(J)return J.call(e)==J.call(t)}return!1}(e,t,u,n,r,o,a);if(!(1&n)){var d=l&&et.call(e,"__wrapped__"),v=h&&et.call(t,"__wrapped__");if(d||v){var y=d?e.value():e,_=v?t.value():t;return a||(a=new U),o(y,_,n,r,a)}}return!!f&&(a||(a=new U),function(e,t,n,r,o,a){var i=1&n,s=Ie(e),c=s.length;if(c!=Ie(t).length&&!i)return!1;for(var u=c;u--;){var p=s[u];if(!(i?p in t:ze.call(t,p)))return!1}var l=a.get(e),h=a.get(t);if(l&&h)return l==t&&h==e;var f=!0;a.set(e,t),a.set(t,e);for(var d=i;++u<c;){var v=e[p=s[u]],y=t[p];if(r)var _=i?r(y,v,p,t,e,a):r(v,y,p,e,t,a);if(!(void 0===_?v===y||o(v,y,n,r,a):_)){f=!1;break}d||(d="constructor"==p)}if(f&&!d){var g=e.constructor,m=t.constructor;g==m||!("constructor"in e)||!("constructor"in t)||"function"==typeof g&&g instanceof g&&"function"==typeof m&&m instanceof m||(f=!1)}return a.delete(e),a.delete(t),f}(e,t,n,r,o,a))}function nt(e,t,n,r,o){return e===t||(null==e||null==t||!re(e)&&!re(t)?e!=e&&t!=t:tt(e,t,n,r,nt,o))}var rt=class{constructor({game:e,rendererSystem:t}){this.renderers=[],this.game=e,this.rendererSystem=t}register(...e){for(const t of e)t.game=this.game,t.rendererManager=this.rendererSystem.rendererManager,t.containerManager=this.rendererSystem.containerManager,this.renderers.push(t)}componentChanged(e){for(const n of e)for(const e of this.renderers){const r=e.observerInfo[n.componentName];if(r){if([t.OBSERVER_TYPE.ADD,t.OBSERVER_TYPE.REMOVE].indexOf(n.type)>-1){try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject.name}, ${n.componentName} is error.`,n,e)}continue}if(r.findIndex((e=>{return t=e,r=n.prop,nt(t,r);var t,r}))>-1)try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject&&n.gameObject.name}, ${n.componentName} is componentChanged error.`,n,e)}}}}update(e){for(const t of e.components)for(const n of this.renderers){const r=[];if(n.observerInfo[t.name]&&-1===r.indexOf(e)){r.push(e);try{n.rendererUpdate&&n.rendererUpdate(e)}catch(n){console.info(`gameObject: ${e.name}, ${t.name} is update error`,n)}}}}};class ot{constructor(){this.containerMap={}}addContainer({name:e,container:t,gameObject:n}){this.containerMap[e]=t,t.gName=n.name||e}getContainer(e){return this.containerMap[e]}removeContainer(e){const t=this.containerMap[e];t&&t.destroy({children:!0}),delete this.containerMap[e]}updateTransform({name:e,transform:t}){const n=this.containerMap[e];if(!n||!t)return;const{anchor:r,origin:o,position:a,rotation:i,scale:s,size:c,skew:u}=t;n.rotation=i,n.scale=s,n.pivot.x=c.width*o.x,n.pivot.y=c.height*o.y,n.skew=u;let p=a.x,l=a.y;if(t.parent){const e=t.parent;p+=e.size.width*r.x,l+=e.size.height*r.y}n.position={x:p,y:l}}}var at=function(e){var t={exports:{}};return e(t,t.exports),t.exports}((function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,r,a,i){if("function"!=typeof r)throw new TypeError("The listener must be a function");var s=new o(r,a||e,i),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function s(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),s.prototype.eventNames=function(){var e,r,o=[];if(0===this._eventsCount)return o;for(r in e=this._events)t.call(e,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},s.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,a=r.length,i=new Array(a);o<a;o++)i[o]=r[o].fn;return i},s.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},s.prototype.emit=function(e,t,r,o,a,i){var s=n?n+e:e;if(!this._events[s])return!1;var c,u,p=this._events[s],l=arguments.length;if(p.fn){switch(p.once&&this.removeListener(e,p.fn,void 0,!0),l){case 1:return p.fn.call(p.context),!0;case 2:return p.fn.call(p.context,t),!0;case 3:return p.fn.call(p.context,t,r),!0;case 4:return p.fn.call(p.context,t,r,o),!0;case 5:return p.fn.call(p.context,t,r,o,a),!0;case 6:return p.fn.call(p.context,t,r,o,a,i),!0}for(u=1,c=new Array(l-1);u<l;u++)c[u-1]=arguments[u];p.fn.apply(p.context,c)}else{var h,f=p.length;for(u=0;u<f;u++)switch(p[u].once&&this.removeListener(e,p[u].fn,void 0,!0),l){case 1:p[u].fn.call(p[u].context);break;case 2:p[u].fn.call(p[u].context,t);break;case 3:p[u].fn.call(p[u].context,t,r);break;case 4:p[u].fn.call(p[u].context,t,r,o);break;default:if(!c)for(h=1,c=new Array(l-1);h<l;h++)c[h-1]=arguments[h];p[u].fn.apply(p[u].context,c)}}return!0},s.prototype.on=function(e,t,n){return a(this,e,t,n,!1)},s.prototype.once=function(e,t,n){return a(this,e,t,n,!0)},s.prototype.removeListener=function(e,t,r,o){var a=n?n+e:e;if(!this._events[a])return this;if(!t)return i(this,a),this;var s=this._events[a];if(s.fn)s.fn!==t||o&&!s.once||r&&s.context!==r||i(this,a);else{for(var c=0,u=[],p=s.length;c<p;c++)(s[c].fn!==t||o&&!s[c].once||r&&s[c].context!==r)&&u.push(s[c]);u.length?this._events[a]=1===u.length?u[0]:u:i(this,a)}return this},s.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new r,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=n,s.EventEmitter=s,e.exports=s})),it=at;let st=class extends it{constructor({system:e,containerManager:t}){super(),this.name="Transform",this.waitRemoveIds=[],this.waitChangeScenes=[],this.containerManager=t,this.init(e)}init(e){this.system=e,this.on("changeScene",(({scene:e,mode:t,application:n})=>{this.waitChangeScenes.push({scene:e,mode:t,application:n})}))}update(){for(const e of this.waitRemoveIds)this.containerManager.removeContainer(e);this.waitRemoveIds=[];for(const e of this.waitChangeScenes){const t=this.containerManager.getContainer(e.scene.id);t&&(e.application.stage.removeChildren(),e.application.stage.addChild(t))}this.waitChangeScenes=[]}componentChanged(e){e.type===t.OBSERVER_TYPE.ADD?this.addContainer(e):e.type===t.OBSERVER_TYPE.CHANGE?this.change(e):e.type===t.OBSERVER_TYPE.REMOVE&&this.waitRemoveIds.push(e.gameObject.id)}addContainer(e){const t=new n.Container;t.label=e.gameObject.name,this.containerManager.addContainer({name:e.gameObject.id,container:t,gameObject:e.gameObject});const r=e.component;Object.defineProperty(r,"worldTransform",{get:()=>t.renderGroup||t.parentRenderGroup?t.worldTransform:void 0})}change(e){const t=e.component;if(t.parent){this.containerManager.getContainer(t.parent.gameObject.id).addChild(this.containerManager.getContainer(e.gameObject.id));const n=e.gameObject.transform.parent&&e.gameObject.transform.parent.gameObject.getComponent("Render");n&&(n.sortDirty=!0)}else{const t=this.containerManager.getContainer(e.gameObject.id);t.parent&&t.parent.removeChild(t)}}destroy(){this.removeAllListeners(),this.waitRemoveIds=null,this.waitChangeScenes=null,this.system=null,this.containerManager=null}};st=o([t.decorators.componentObserver({Transform:["_parent"]})],st);var ct,ut=st;e.RENDERER_TYPE=void 0,(ct=e.RENDERER_TYPE||(e.RENDERER_TYPE={}))[ct.UNKNOWN=0]="UNKNOWN",ct[ct.WEBGL=1]="WEBGL",ct[ct.CANVAS=2]="CANVAS";let pt=class extends t.System{constructor(){super(...arguments),this.multiApps=[]}init(e){return a(this,void 0,void 0,(function*(){this.params=e,this.application=yield this.createApplication(e),this.containerManager=new ot,this.rendererManager=new rt({game:this.game,rendererSystem:this}),this.game.canvas=this.application.canvas,this.transform=new ut({system:this,containerManager:this.containerManager}),this.game.on("sceneChanged",(({scene:e,mode:n,params:r})=>a(this,void 0,void 0,(function*(){let o;switch(n){case t.LOAD_SCENE_MODE.SINGLE:o=this.application;break;case t.LOAD_SCENE_MODE.MULTI_CANVAS:o=yield this.createMultiApplication({params:r})}e.canvas=o.canvas,this.transform.emit("changeScene",{scene:e,mode:n,application:o})})))),this.game.on("pauseScene",(({scene:e})=>{this.onPauseScene(e)})),this.game.on("startScene",(({scene:e})=>{this.onStartScene(e)})),this.game.on("sceneDestroyed",(({scene:e})=>a(this,void 0,void 0,(function*(){const t=this.multiApps.findIndex((t=>t.canvas===e.canvas));if(t>-1){this.multiApps.splice(t,1)[0].destroy(),e.destroy()}}))))}))}registerObserver(e){const t=this.constructor.observerInfo;for(const n in e)t[n]||(t[n]=[]),t[n].push(...e[n])}createMultiApplication({params:e}){return a(this,void 0,void 0,(function*(){const t=yield this.createApplication(e);return this.multiApps.push(t),t}))}createApplication(e){return a(this,void 0,void 0,(function*(){const t=new n.Application;var o;return e.debugMode&&(globalThis.__PIXI_APP__=t),yield t.init(_extends(_extends({sharedTicker:!0},e),{hello:!0})),void 0!==e.enableScroll&&(e.enableScroll?((o=t.renderer).events.autoPreventDefault=!1,o.canvas.style.touchAction="auto"):(e=>{e.events.autoPreventDefault=!0,e.canvas.style.touchAction="none"})(t.renderer)),r.Ticker.shared.stop(),r.Ticker.shared.autoStart=!1,t}))}update(){const e=this.componentObserver.clear();for(const t of e)this.transform.componentChanged(t);for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e)}lateUpdate(e){this.transform.update(),this.application.ticker.update(e.time)}onDestroy(){this.application.destroy();for(const e of this.multiApps)e&&e.destroy();this.transform.destroy(),this.transform=null,this.params=null,this.rendererManager=null,this.containerManager=null,this.application=null,this.game=null,this.multiApps=null}resize(e,t){this.params.width=e,this.params.height=t,this.application.renderer.resize(e,t)}getApplicationByScene(e){const t=this.multiApps.findIndex((t=>t.canvas===e.canvas));if(t>-1){return this.multiApps[t]}console.warn("application not found")}onPauseScene(e){const t=this.getApplicationByScene(e);t&&t.stop()}onStartScene(e){const t=this.getApplicationByScene(e);t&&t.start()}resizeByScene(e,t,n){const r=this.getApplicationByScene(e);r&&r.renderer.resize(t,n)}};pt.systemName="Renderer",pt=o([t.decorators.componentObserver({Transform:["_parent"]})],pt);var lt=pt;let ht;function ft(e){e.addPreProcessResourceHandler((function(e){var t,n,r;let o=null===(n=null===(t=e.src)||void 0===t?void 0:t.image)||void 0===n?void 0:n.texture;if(!o)return;Array.isArray(o)||(o=[o]);const a=null!==(r=function(){if(ht)return ht;const e=document.createElement("canvas").getContext("webgl2");if(!e)return console.warn("WebGL not available for compressed textures. Silently failing."),{s3tc:!1,etc:!1,etc1:!1,pvrtc:!1,atc:!1,astc:!1};ht={s3tc:!!e.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!e.getExtension("WEBGL_compressed_texture_etc"),etc1:!!e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!e.getExtension("WEBGL_compressed_texture_pvrtc")||!!e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!e.getExtension("WEBGL_compressed_texture_atc"),astc:!!e.getExtension("WEBGL_compressed_texture_astc")};try{console.log("Eva.js Supported Compressed Texture Format List: "+Object.keys(ht).filter((e=>ht[e])).join(", "))}catch(e){}return ht}())&&void 0!==r?r:{};let i=o.find((e=>a[e.type]));i&&_extends(e.src.image,i)}))}class dt extends t.System{constructor(e){super(e),this.asyncIdMap={},this.observerInfo=this.constructor.observerInfo}componentChanged(e){}rendererUpdate(e){}update(e){const t=this.componentObserver.clear();for(const e of t)this.componentChanged(e)}increaseAsyncId(e){return this.asyncIdMap[e]=(this.asyncIdMap[e]||0)+1,this.asyncIdMap[e]}validateAsyncId(e,t){return this.asyncIdMap[e]===t}}return e.ContainerManager=ot,e.Renderer=dt,e.RendererManager=rt,e.RendererSystem=lt,e.registerKtx2CompressedTexture=function(e){r.setKTXTranscoderPath(e),r.extensions.add(r.loadKTX2),r.extensions.add(r.resolveCompressedTextureUrl),r.extensions.add(r.detectCompressed),ft(t.resource)},Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.rendererAdapter,PIXI);globalThis.EVA.plugin.renderer=globalThis.EVA.plugin.renderer||_EVA_IIFE_renderer;
|
|
@@ -44,12 +44,45 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
/**
|
|
48
|
+
* 渲染管理器类
|
|
49
|
+
*
|
|
50
|
+
* RendererManager 负责管理和协调所有渲染器。
|
|
51
|
+
* 它将组件变化事件分发给相应的渲染器,
|
|
52
|
+
* 并在每帧调用渲染器的更新方法。
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const rendererManager = new RendererManager({
|
|
57
|
+
* game,
|
|
58
|
+
* rendererSystem
|
|
59
|
+
* });
|
|
60
|
+
*
|
|
61
|
+
* rendererManager.register(
|
|
62
|
+
* new SpriteRenderer(),
|
|
63
|
+
* new TextRenderer()
|
|
64
|
+
* );
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
47
67
|
class RendererManager {
|
|
68
|
+
/**
|
|
69
|
+
* 构造渲染管理器
|
|
70
|
+
* @param game - 游戏实例
|
|
71
|
+
* @param rendererSystem - 渲染系统实例
|
|
72
|
+
*/
|
|
48
73
|
constructor({ game, rendererSystem }) {
|
|
74
|
+
/** 注册的渲染器列表 */
|
|
49
75
|
this.renderers = [];
|
|
50
76
|
this.game = game;
|
|
51
77
|
this.rendererSystem = rendererSystem;
|
|
52
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* 注册渲染器
|
|
81
|
+
*
|
|
82
|
+
* 将渲染器添加到管理器,并为其设置必要的引用。
|
|
83
|
+
*
|
|
84
|
+
* @param renderers - 要注册的渲染器列表
|
|
85
|
+
*/
|
|
53
86
|
register(...renderers) {
|
|
54
87
|
for (const renderer of renderers) {
|
|
55
88
|
renderer.game = this.game;
|
|
@@ -131,9 +164,11 @@ class ContainerManager {
|
|
|
131
164
|
return;
|
|
132
165
|
const { anchor, origin, position, rotation, scale, size, skew } = transform;
|
|
133
166
|
container.rotation = rotation;
|
|
167
|
+
// @ts-ignore
|
|
134
168
|
container.scale = scale;
|
|
135
169
|
container.pivot.x = size.width * origin.x;
|
|
136
170
|
container.pivot.y = size.height * origin.y;
|
|
171
|
+
// @ts-ignore
|
|
137
172
|
container.skew = skew;
|
|
138
173
|
let x = position.x;
|
|
139
174
|
let y = position.y;
|
|
@@ -142,6 +177,7 @@ class ContainerManager {
|
|
|
142
177
|
x = x + parent.size.width * anchor.x;
|
|
143
178
|
y = y + parent.size.height * anchor.y;
|
|
144
179
|
}
|
|
180
|
+
// @ts-ignore
|
|
145
181
|
container.position = { x, y };
|
|
146
182
|
}
|
|
147
183
|
}
|
|
@@ -158,7 +194,12 @@ let Transform = class Transform extends EventEmitter__default {
|
|
|
158
194
|
init(system) {
|
|
159
195
|
this.system = system;
|
|
160
196
|
this.on('changeScene', ({ scene, mode, application }) => {
|
|
197
|
+
// switch (mode) {
|
|
198
|
+
// case LOAD_SCENE_MODE.SINGLE:
|
|
161
199
|
this.waitChangeScenes.push({ scene, mode, application });
|
|
200
|
+
// break;
|
|
201
|
+
// case LOAD_SCENE_MODE.MULTI_CANVAS:
|
|
202
|
+
// }
|
|
162
203
|
});
|
|
163
204
|
}
|
|
164
205
|
update() {
|
|
@@ -167,6 +208,7 @@ let Transform = class Transform extends EventEmitter__default {
|
|
|
167
208
|
}
|
|
168
209
|
this.waitRemoveIds = [];
|
|
169
210
|
for (const sceneInfo of this.waitChangeScenes) {
|
|
211
|
+
// set scene
|
|
170
212
|
const container = this.containerManager.getContainer(sceneInfo.scene.id);
|
|
171
213
|
if (container) {
|
|
172
214
|
sceneInfo.application.stage.removeChildren();
|
|
@@ -282,6 +324,12 @@ let Renderer$1 = class Renderer extends eva_js.System {
|
|
|
282
324
|
application,
|
|
283
325
|
});
|
|
284
326
|
}));
|
|
327
|
+
this.game.on('pauseScene', ({ scene }) => {
|
|
328
|
+
this.onPauseScene(scene);
|
|
329
|
+
});
|
|
330
|
+
this.game.on('startScene', ({ scene }) => {
|
|
331
|
+
this.onStartScene(scene);
|
|
332
|
+
});
|
|
285
333
|
this.game.on('sceneDestroyed', ({ scene }) => __awaiter(this, void 0, void 0, function* () {
|
|
286
334
|
const index = this.multiApps.findIndex(app => app.canvas === scene.canvas);
|
|
287
335
|
if (index > -1) {
|
|
@@ -293,17 +341,20 @@ let Renderer$1 = class Renderer extends eva_js.System {
|
|
|
293
341
|
});
|
|
294
342
|
}
|
|
295
343
|
registerObserver(observerInfo) {
|
|
344
|
+
// @ts-ignore
|
|
296
345
|
const thisObserverInfo = this.constructor.observerInfo;
|
|
297
346
|
for (const key in observerInfo) {
|
|
298
347
|
if (!thisObserverInfo[key]) {
|
|
299
348
|
thisObserverInfo[key] = [];
|
|
300
349
|
}
|
|
350
|
+
//@ts-ignore
|
|
301
351
|
thisObserverInfo[key].push(...observerInfo[key]);
|
|
302
352
|
}
|
|
303
353
|
}
|
|
304
354
|
createMultiApplication({ params }) {
|
|
305
355
|
return __awaiter(this, void 0, void 0, function* () {
|
|
306
356
|
const app = yield this.createApplication(params);
|
|
357
|
+
// @ts-ignore
|
|
307
358
|
this.multiApps.push(app);
|
|
308
359
|
return app;
|
|
309
360
|
});
|
|
@@ -337,13 +388,6 @@ let Renderer$1 = class Renderer extends eva_js.System {
|
|
|
337
388
|
}
|
|
338
389
|
}
|
|
339
390
|
lateUpdate(e) {
|
|
340
|
-
for (const gameObject of this.game.gameObjects) {
|
|
341
|
-
this.containerManager.updateTransform({
|
|
342
|
-
name: gameObject.id,
|
|
343
|
-
transform: gameObject.transform,
|
|
344
|
-
});
|
|
345
|
-
this.rendererManager.update(gameObject);
|
|
346
|
-
}
|
|
347
391
|
this.transform.update();
|
|
348
392
|
this.application.ticker.update(e.time);
|
|
349
393
|
}
|
|
@@ -364,8 +408,38 @@ let Renderer$1 = class Renderer extends eva_js.System {
|
|
|
364
408
|
resize(width, height) {
|
|
365
409
|
this.params.width = width;
|
|
366
410
|
this.params.height = height;
|
|
411
|
+
// @ts-ignore
|
|
367
412
|
this.application.renderer.resize(width, height);
|
|
368
413
|
}
|
|
414
|
+
getApplicationByScene(scene) {
|
|
415
|
+
const index = this.multiApps.findIndex(app => app.canvas === scene.canvas);
|
|
416
|
+
if (index > -1) {
|
|
417
|
+
const application = this.multiApps[index];
|
|
418
|
+
return application;
|
|
419
|
+
}
|
|
420
|
+
else {
|
|
421
|
+
console.warn('application not found');
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
onPauseScene(scene) {
|
|
425
|
+
const app = this.getApplicationByScene(scene);
|
|
426
|
+
if (app) {
|
|
427
|
+
app.stop();
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
onStartScene(scene) {
|
|
431
|
+
const app = this.getApplicationByScene(scene);
|
|
432
|
+
if (app) {
|
|
433
|
+
app.start();
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
resizeByScene(scene, width, height) {
|
|
437
|
+
const app = this.getApplicationByScene(scene);
|
|
438
|
+
if (app) {
|
|
439
|
+
// @ts-ignore
|
|
440
|
+
app.renderer.resize(width, height);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
369
443
|
};
|
|
370
444
|
Renderer$1.systemName = 'Renderer';
|
|
371
445
|
Renderer$1 = __decorate([
|
|
@@ -382,7 +456,9 @@ function getSuportCompressedTextureFormats() {
|
|
|
382
456
|
const canvas = document.createElement('canvas');
|
|
383
457
|
const gl = canvas.getContext('webgl2');
|
|
384
458
|
if (!gl) {
|
|
459
|
+
// #if _DEBUG
|
|
385
460
|
console.warn('WebGL not available for compressed textures. Silently failing.');
|
|
461
|
+
// #endif
|
|
386
462
|
return {
|
|
387
463
|
s3tc: false,
|
|
388
464
|
etc: false,
|
|
@@ -435,14 +511,29 @@ function registerKtx2CompressedTexture(params) {
|
|
|
435
511
|
addPreProcessResourceHandler(eva_js.resource);
|
|
436
512
|
}
|
|
437
513
|
|
|
514
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
438
515
|
class Renderer extends eva_js.System {
|
|
439
516
|
constructor(params) {
|
|
440
517
|
super(params);
|
|
441
518
|
this.asyncIdMap = {};
|
|
519
|
+
// @ts-ignore
|
|
442
520
|
this.observerInfo = this.constructor.observerInfo;
|
|
443
521
|
}
|
|
522
|
+
// init(arg?: any): void;
|
|
523
|
+
/**
|
|
524
|
+
* 当监听的属性变化时候调用
|
|
525
|
+
*
|
|
526
|
+
* called while the observed component props change.
|
|
527
|
+
*/
|
|
444
528
|
componentChanged(_changed) { }
|
|
529
|
+
/**
|
|
530
|
+
* 每帧调用
|
|
531
|
+
*
|
|
532
|
+
* called by every loop
|
|
533
|
+
* @param _gameObject gameObject
|
|
534
|
+
*/
|
|
445
535
|
rendererUpdate(_gameObject) { }
|
|
536
|
+
// @ts-ignore
|
|
446
537
|
update(e) {
|
|
447
538
|
const changes = this.componentObserver.clear();
|
|
448
539
|
for (const changed of changes) {
|
|
@@ -458,7 +549,19 @@ class Renderer extends eva_js.System {
|
|
|
458
549
|
}
|
|
459
550
|
}
|
|
460
551
|
|
|
552
|
+
// import { BaseTexture, utils } from 'pixi.js';
|
|
461
553
|
const mixinPIXI = () => {
|
|
554
|
+
// BaseTexture.prototype.destroy = function () {
|
|
555
|
+
// if (this.imageUrl) {
|
|
556
|
+
// delete utils.TextureCache[this.imageUrl];
|
|
557
|
+
// this.imageUrl = null;
|
|
558
|
+
// }
|
|
559
|
+
// this.source = null;
|
|
560
|
+
// this.dispose();
|
|
561
|
+
// BaseTexture.removeFromCache(this);
|
|
562
|
+
// this.textureCacheIds = null;
|
|
563
|
+
// this._destroyed = true;
|
|
564
|
+
// };
|
|
462
565
|
};
|
|
463
566
|
|
|
464
567
|
mixinPIXI();
|
|
@@ -13,4 +13,4 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
|
13
13
|
See the Apache Version 2.0 License for specific language governing permissions
|
|
14
14
|
and limitations under the License.
|
|
15
15
|
***************************************************************************** */
|
|
16
|
-
function c(e,t,n,r){var s,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(o=(a<3?s(o):a>3?s(t,n,o):s(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o}function
|
|
16
|
+
function c(e,t,n,r){var s,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(o=(a<3?s(o):a>3?s(t,n,o):s(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o}function p(e,t,n,r){return new(n||(n=Promise))((function(s,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function i(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?s(e.value):new n((function(t){t(e.value)})).then(o,i)}c((r=r.apply(e,t||[])).next())}))}var d=class{constructor({game:e,rendererSystem:t}){this.renderers=[],this.game=e,this.rendererSystem=t}register(...e){for(const t of e)t.game=this.game,t.rendererManager=this.rendererSystem.rendererManager,t.containerManager=this.rendererSystem.containerManager,this.renderers.push(t)}componentChanged(t){for(const n of t)for(const t of this.renderers){const r=t.observerInfo[n.componentName];if(r){if([e.OBSERVER_TYPE.ADD,e.OBSERVER_TYPE.REMOVE].indexOf(n.type)>-1){try{t.componentChanged&&t.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject.name}, ${n.componentName} is error.`,n,e)}continue}if(r.findIndex((e=>o(e,n.prop)))>-1)try{t.componentChanged&&t.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject&&n.gameObject.name}, ${n.componentName} is componentChanged error.`,n,e)}}}}update(e){for(const t of e.components)for(const n of this.renderers){const r=[];if(n.observerInfo[t.name]&&-1===r.indexOf(e)){r.push(e);try{n.rendererUpdate&&n.rendererUpdate(e)}catch(n){console.info(`gameObject: ${e.name}, ${t.name} is update error`,n)}}}}};class h{constructor(){this.containerMap={}}addContainer({name:e,container:t,gameObject:n}){this.containerMap[e]=t,t.gName=n.name||e}getContainer(e){return this.containerMap[e]}removeContainer(e){const t=this.containerMap[e];t&&t.destroy({children:!0}),delete this.containerMap[e]}updateTransform({name:e,transform:t}){const n=this.containerMap[e];if(!n||!t)return;const{anchor:r,origin:s,position:a,rotation:o,scale:i,size:c,skew:p}=t;n.rotation=o,n.scale=i,n.pivot.x=c.width*s.x,n.pivot.y=c.height*s.y,n.skew=p;let d=a.x,h=a.y;if(t.parent){const e=t.parent;d+=e.size.width*r.x,h+=e.size.height*r.y}n.position={x:d,y:h}}}let m=class extends i{constructor({system:e,containerManager:t}){super(),this.name="Transform",this.waitRemoveIds=[],this.waitChangeScenes=[],this.containerManager=t,this.init(e)}init(e){this.system=e,this.on("changeScene",(({scene:e,mode:t,application:n})=>{this.waitChangeScenes.push({scene:e,mode:t,application:n})}))}update(){for(const e of this.waitRemoveIds)this.containerManager.removeContainer(e);this.waitRemoveIds=[];for(const e of this.waitChangeScenes){const t=this.containerManager.getContainer(e.scene.id);t&&(e.application.stage.removeChildren(),e.application.stage.addChild(t))}this.waitChangeScenes=[]}componentChanged(t){t.type===e.OBSERVER_TYPE.ADD?this.addContainer(t):t.type===e.OBSERVER_TYPE.CHANGE?this.change(t):t.type===e.OBSERVER_TYPE.REMOVE&&this.waitRemoveIds.push(t.gameObject.id)}addContainer(e){const n=new t.Container;n.label=e.gameObject.name,this.containerManager.addContainer({name:e.gameObject.id,container:n,gameObject:e.gameObject});const r=e.component;Object.defineProperty(r,"worldTransform",{get:()=>n.renderGroup||n.parentRenderGroup?n.worldTransform:void 0})}change(e){const t=e.component;if(t.parent){this.containerManager.getContainer(t.parent.gameObject.id).addChild(this.containerManager.getContainer(e.gameObject.id));const n=e.gameObject.transform.parent&&e.gameObject.transform.parent.gameObject.getComponent("Render");n&&(n.sortDirty=!0)}else{const t=this.containerManager.getContainer(e.gameObject.id);t.parent&&t.parent.removeChild(t)}}destroy(){this.removeAllListeners(),this.waitRemoveIds=null,this.waitChangeScenes=null,this.system=null,this.containerManager=null}};m=c([e.decorators.componentObserver({Transform:["_parent"]})],m);var l,u=m;exports.RENDERER_TYPE=void 0,(l=exports.RENDERER_TYPE||(exports.RENDERER_TYPE={}))[l.UNKNOWN=0]="UNKNOWN",l[l.WEBGL=1]="WEBGL",l[l.CANVAS=2]="CANVAS";let g=class extends e.System{constructor(){super(...arguments),this.multiApps=[]}init(t){return p(this,void 0,void 0,(function*(){this.params=t,this.application=yield this.createApplication(t),this.containerManager=new h,this.rendererManager=new d({game:this.game,rendererSystem:this}),this.game.canvas=this.application.canvas,this.transform=new u({system:this,containerManager:this.containerManager}),this.game.on("sceneChanged",(({scene:t,mode:n,params:r})=>p(this,void 0,void 0,(function*(){let s;switch(n){case e.LOAD_SCENE_MODE.SINGLE:s=this.application;break;case e.LOAD_SCENE_MODE.MULTI_CANVAS:s=yield this.createMultiApplication({params:r})}t.canvas=s.canvas,this.transform.emit("changeScene",{scene:t,mode:n,application:s})})))),this.game.on("pauseScene",(({scene:e})=>{this.onPauseScene(e)})),this.game.on("startScene",(({scene:e})=>{this.onStartScene(e)})),this.game.on("sceneDestroyed",(({scene:e})=>p(this,void 0,void 0,(function*(){const t=this.multiApps.findIndex((t=>t.canvas===e.canvas));if(t>-1){this.multiApps.splice(t,1)[0].destroy(),e.destroy()}}))))}))}registerObserver(e){const t=this.constructor.observerInfo;for(const n in e)t[n]||(t[n]=[]),t[n].push(...e[n])}createMultiApplication({params:e}){return p(this,void 0,void 0,(function*(){const t=yield this.createApplication(e);return this.multiApps.push(t),t}))}createApplication(e){return p(this,void 0,void 0,(function*(){const n=new t.Application;var r;return e.debugMode&&(globalThis.__PIXI_APP__=n),yield n.init(Object.assign(Object.assign({sharedTicker:!0},e),{hello:!0})),void 0!==e.enableScroll&&(e.enableScroll?((r=n.renderer).events.autoPreventDefault=!1,r.canvas.style.touchAction="auto"):(e=>{e.events.autoPreventDefault=!0,e.canvas.style.touchAction="none"})(n.renderer)),s.Ticker.shared.stop(),s.Ticker.shared.autoStart=!1,n}))}update(){const e=this.componentObserver.clear();for(const t of e)this.transform.componentChanged(t);for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e)}lateUpdate(e){this.transform.update(),this.application.ticker.update(e.time)}onDestroy(){this.application.destroy();for(const e of this.multiApps)e&&e.destroy();this.transform.destroy(),this.transform=null,this.params=null,this.rendererManager=null,this.containerManager=null,this.application=null,this.game=null,this.multiApps=null}resize(e,t){this.params.width=e,this.params.height=t,this.application.renderer.resize(e,t)}getApplicationByScene(e){const t=this.multiApps.findIndex((t=>t.canvas===e.canvas));if(t>-1){return this.multiApps[t]}console.warn("application not found")}onPauseScene(e){const t=this.getApplicationByScene(e);t&&t.stop()}onStartScene(e){const t=this.getApplicationByScene(e);t&&t.start()}resizeByScene(e,t,n){const r=this.getApplicationByScene(e);r&&r.renderer.resize(t,n)}};g.systemName="Renderer",g=c([e.decorators.componentObserver({Transform:["_parent"]})],g);var f=g;let v;function y(e){e.addPreProcessResourceHandler((function(e){var t,n,r;let s=null===(n=null===(t=e.src)||void 0===t?void 0:t.image)||void 0===n?void 0:n.texture;if(!s)return;Array.isArray(s)||(s=[s]);const a=null!==(r=function(){if(v)return v;const e=document.createElement("canvas").getContext("webgl2");if(!e)return console.warn("WebGL not available for compressed textures. Silently failing."),{s3tc:!1,etc:!1,etc1:!1,pvrtc:!1,atc:!1,astc:!1};v={s3tc:!!e.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!e.getExtension("WEBGL_compressed_texture_etc"),etc1:!!e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!e.getExtension("WEBGL_compressed_texture_pvrtc")||!!e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!e.getExtension("WEBGL_compressed_texture_atc"),astc:!!e.getExtension("WEBGL_compressed_texture_astc")};try{console.log("Eva.js Supported Compressed Texture Format List: "+Object.keys(v).filter((e=>v[e])).join(", "))}catch(e){}return v}())&&void 0!==r?r:{};let o=s.find((e=>a[e.type]));o&&Object.assign(e.src.image,o)}))}class E extends e.System{constructor(e){super(e),this.asyncIdMap={},this.observerInfo=this.constructor.observerInfo}componentChanged(e){}rendererUpdate(e){}update(e){const t=this.componentObserver.clear();for(const e of t)this.componentChanged(e)}increaseAsyncId(e){return this.asyncIdMap[e]=(this.asyncIdMap[e]||0)+1,this.asyncIdMap[e]}validateAsyncId(e,t){return this.asyncIdMap[e]===t}}exports.ContainerManager=h,exports.Renderer=E,exports.RendererManager=d,exports.RendererSystem=f,exports.registerKtx2CompressedTexture=function(t){s.setKTXTranscoderPath(t),s.extensions.add(s.loadKTX2),s.extensions.add(s.resolveCompressedTextureUrl),s.extensions.add(s.detectCompressed),y(e.resource)};
|
|
@@ -37,14 +37,40 @@ declare interface Params {
|
|
|
37
37
|
export declare function registerKtx2CompressedTexture(params: Params): void;
|
|
38
38
|
|
|
39
39
|
export declare class Renderer<T extends {} = {}> extends System<T> {
|
|
40
|
+
/**
|
|
41
|
+
* Renderer name
|
|
42
|
+
*/
|
|
40
43
|
name: string;
|
|
44
|
+
/**
|
|
45
|
+
* currentGame
|
|
46
|
+
*/
|
|
41
47
|
game: Game;
|
|
48
|
+
/**
|
|
49
|
+
* observer component props info
|
|
50
|
+
*/
|
|
42
51
|
static observerInfo: PureObserverInfo;
|
|
52
|
+
/**
|
|
53
|
+
* observer component props info
|
|
54
|
+
*/
|
|
43
55
|
observerInfo: PureObserverInfo;
|
|
56
|
+
/**
|
|
57
|
+
* containerManager
|
|
58
|
+
*/
|
|
44
59
|
containerManager: ContainerManager;
|
|
45
60
|
rendererManager: RendererManager;
|
|
46
61
|
constructor(params?: T);
|
|
62
|
+
/**
|
|
63
|
+
* 当监听的属性变化时候调用
|
|
64
|
+
*
|
|
65
|
+
* called while the observed component props change.
|
|
66
|
+
*/
|
|
47
67
|
componentChanged(_changed: ComponentChanged): void;
|
|
68
|
+
/**
|
|
69
|
+
* 每帧调用
|
|
70
|
+
*
|
|
71
|
+
* called by every loop
|
|
72
|
+
* @param _gameObject gameObject
|
|
73
|
+
*/
|
|
48
74
|
rendererUpdate(_gameObject: GameObject): void;
|
|
49
75
|
update(e?: UpdateParams): void;
|
|
50
76
|
protected asyncIdMap: Record<number, number>;
|
|
@@ -58,14 +84,49 @@ export declare enum RENDERER_TYPE {
|
|
|
58
84
|
CANVAS = 2
|
|
59
85
|
}
|
|
60
86
|
|
|
87
|
+
/**
|
|
88
|
+
* 渲染管理器类
|
|
89
|
+
*
|
|
90
|
+
* RendererManager 负责管理和协调所有渲染器。
|
|
91
|
+
* 它将组件变化事件分发给相应的渲染器,
|
|
92
|
+
* 并在每帧调用渲染器的更新方法。
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* const rendererManager = new RendererManager({
|
|
97
|
+
* game,
|
|
98
|
+
* rendererSystem
|
|
99
|
+
* });
|
|
100
|
+
*
|
|
101
|
+
* rendererManager.register(
|
|
102
|
+
* new SpriteRenderer(),
|
|
103
|
+
* new TextRenderer()
|
|
104
|
+
* );
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
61
107
|
export declare class RendererManager {
|
|
108
|
+
/** 游戏实例引用 */
|
|
62
109
|
game: Game;
|
|
110
|
+
/** 渲染系统引用 */
|
|
63
111
|
rendererSystem: RendererSystem;
|
|
112
|
+
/**
|
|
113
|
+
* 构造渲染管理器
|
|
114
|
+
* @param game - 游戏实例
|
|
115
|
+
* @param rendererSystem - 渲染系统实例
|
|
116
|
+
*/
|
|
64
117
|
constructor({ game, rendererSystem }: {
|
|
65
118
|
game: any;
|
|
66
119
|
rendererSystem: any;
|
|
67
120
|
});
|
|
121
|
+
/** 注册的渲染器列表 */
|
|
68
122
|
renderers: Renderer[];
|
|
123
|
+
/**
|
|
124
|
+
* 注册渲染器
|
|
125
|
+
*
|
|
126
|
+
* 将渲染器添加到管理器,并为其设置必要的引用。
|
|
127
|
+
*
|
|
128
|
+
* @param renderers - 要注册的渲染器列表
|
|
129
|
+
*/
|
|
69
130
|
register(...renderers: Renderer[]): void;
|
|
70
131
|
componentChanged(changes: ComponentChanged[]): void;
|
|
71
132
|
update(gameObject: GameObject): void;
|
|
@@ -91,6 +152,10 @@ export declare class RendererSystem extends System<RendererSystemParams> {
|
|
|
91
152
|
lateUpdate(e: any): void;
|
|
92
153
|
onDestroy(): void;
|
|
93
154
|
resize(width: any, height: any): void;
|
|
155
|
+
private getApplicationByScene;
|
|
156
|
+
private onPauseScene;
|
|
157
|
+
private onStartScene;
|
|
158
|
+
resizeByScene(scene: any, width: number, height: number): void;
|
|
94
159
|
}
|
|
95
160
|
|
|
96
161
|
export declare interface RendererSystemParams extends Partial<ApplicationOptions> {
|
|
@@ -35,12 +35,45 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
/**
|
|
39
|
+
* 渲染管理器类
|
|
40
|
+
*
|
|
41
|
+
* RendererManager 负责管理和协调所有渲染器。
|
|
42
|
+
* 它将组件变化事件分发给相应的渲染器,
|
|
43
|
+
* 并在每帧调用渲染器的更新方法。
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const rendererManager = new RendererManager({
|
|
48
|
+
* game,
|
|
49
|
+
* rendererSystem
|
|
50
|
+
* });
|
|
51
|
+
*
|
|
52
|
+
* rendererManager.register(
|
|
53
|
+
* new SpriteRenderer(),
|
|
54
|
+
* new TextRenderer()
|
|
55
|
+
* );
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
38
58
|
class RendererManager {
|
|
59
|
+
/**
|
|
60
|
+
* 构造渲染管理器
|
|
61
|
+
* @param game - 游戏实例
|
|
62
|
+
* @param rendererSystem - 渲染系统实例
|
|
63
|
+
*/
|
|
39
64
|
constructor({ game, rendererSystem }) {
|
|
65
|
+
/** 注册的渲染器列表 */
|
|
40
66
|
this.renderers = [];
|
|
41
67
|
this.game = game;
|
|
42
68
|
this.rendererSystem = rendererSystem;
|
|
43
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* 注册渲染器
|
|
72
|
+
*
|
|
73
|
+
* 将渲染器添加到管理器,并为其设置必要的引用。
|
|
74
|
+
*
|
|
75
|
+
* @param renderers - 要注册的渲染器列表
|
|
76
|
+
*/
|
|
44
77
|
register(...renderers) {
|
|
45
78
|
for (const renderer of renderers) {
|
|
46
79
|
renderer.game = this.game;
|
|
@@ -122,9 +155,11 @@ class ContainerManager {
|
|
|
122
155
|
return;
|
|
123
156
|
const { anchor, origin, position, rotation, scale, size, skew } = transform;
|
|
124
157
|
container.rotation = rotation;
|
|
158
|
+
// @ts-ignore
|
|
125
159
|
container.scale = scale;
|
|
126
160
|
container.pivot.x = size.width * origin.x;
|
|
127
161
|
container.pivot.y = size.height * origin.y;
|
|
162
|
+
// @ts-ignore
|
|
128
163
|
container.skew = skew;
|
|
129
164
|
let x = position.x;
|
|
130
165
|
let y = position.y;
|
|
@@ -133,6 +168,7 @@ class ContainerManager {
|
|
|
133
168
|
x = x + parent.size.width * anchor.x;
|
|
134
169
|
y = y + parent.size.height * anchor.y;
|
|
135
170
|
}
|
|
171
|
+
// @ts-ignore
|
|
136
172
|
container.position = { x, y };
|
|
137
173
|
}
|
|
138
174
|
}
|
|
@@ -149,7 +185,12 @@ let Transform = class Transform extends EventEmitter {
|
|
|
149
185
|
init(system) {
|
|
150
186
|
this.system = system;
|
|
151
187
|
this.on('changeScene', ({ scene, mode, application }) => {
|
|
188
|
+
// switch (mode) {
|
|
189
|
+
// case LOAD_SCENE_MODE.SINGLE:
|
|
152
190
|
this.waitChangeScenes.push({ scene, mode, application });
|
|
191
|
+
// break;
|
|
192
|
+
// case LOAD_SCENE_MODE.MULTI_CANVAS:
|
|
193
|
+
// }
|
|
153
194
|
});
|
|
154
195
|
}
|
|
155
196
|
update() {
|
|
@@ -158,6 +199,7 @@ let Transform = class Transform extends EventEmitter {
|
|
|
158
199
|
}
|
|
159
200
|
this.waitRemoveIds = [];
|
|
160
201
|
for (const sceneInfo of this.waitChangeScenes) {
|
|
202
|
+
// set scene
|
|
161
203
|
const container = this.containerManager.getContainer(sceneInfo.scene.id);
|
|
162
204
|
if (container) {
|
|
163
205
|
sceneInfo.application.stage.removeChildren();
|
|
@@ -273,6 +315,12 @@ let Renderer$1 = class Renderer extends System {
|
|
|
273
315
|
application,
|
|
274
316
|
});
|
|
275
317
|
}));
|
|
318
|
+
this.game.on('pauseScene', ({ scene }) => {
|
|
319
|
+
this.onPauseScene(scene);
|
|
320
|
+
});
|
|
321
|
+
this.game.on('startScene', ({ scene }) => {
|
|
322
|
+
this.onStartScene(scene);
|
|
323
|
+
});
|
|
276
324
|
this.game.on('sceneDestroyed', ({ scene }) => __awaiter(this, void 0, void 0, function* () {
|
|
277
325
|
const index = this.multiApps.findIndex(app => app.canvas === scene.canvas);
|
|
278
326
|
if (index > -1) {
|
|
@@ -284,17 +332,20 @@ let Renderer$1 = class Renderer extends System {
|
|
|
284
332
|
});
|
|
285
333
|
}
|
|
286
334
|
registerObserver(observerInfo) {
|
|
335
|
+
// @ts-ignore
|
|
287
336
|
const thisObserverInfo = this.constructor.observerInfo;
|
|
288
337
|
for (const key in observerInfo) {
|
|
289
338
|
if (!thisObserverInfo[key]) {
|
|
290
339
|
thisObserverInfo[key] = [];
|
|
291
340
|
}
|
|
341
|
+
//@ts-ignore
|
|
292
342
|
thisObserverInfo[key].push(...observerInfo[key]);
|
|
293
343
|
}
|
|
294
344
|
}
|
|
295
345
|
createMultiApplication({ params }) {
|
|
296
346
|
return __awaiter(this, void 0, void 0, function* () {
|
|
297
347
|
const app = yield this.createApplication(params);
|
|
348
|
+
// @ts-ignore
|
|
298
349
|
this.multiApps.push(app);
|
|
299
350
|
return app;
|
|
300
351
|
});
|
|
@@ -328,13 +379,6 @@ let Renderer$1 = class Renderer extends System {
|
|
|
328
379
|
}
|
|
329
380
|
}
|
|
330
381
|
lateUpdate(e) {
|
|
331
|
-
for (const gameObject of this.game.gameObjects) {
|
|
332
|
-
this.containerManager.updateTransform({
|
|
333
|
-
name: gameObject.id,
|
|
334
|
-
transform: gameObject.transform,
|
|
335
|
-
});
|
|
336
|
-
this.rendererManager.update(gameObject);
|
|
337
|
-
}
|
|
338
382
|
this.transform.update();
|
|
339
383
|
this.application.ticker.update(e.time);
|
|
340
384
|
}
|
|
@@ -355,8 +399,38 @@ let Renderer$1 = class Renderer extends System {
|
|
|
355
399
|
resize(width, height) {
|
|
356
400
|
this.params.width = width;
|
|
357
401
|
this.params.height = height;
|
|
402
|
+
// @ts-ignore
|
|
358
403
|
this.application.renderer.resize(width, height);
|
|
359
404
|
}
|
|
405
|
+
getApplicationByScene(scene) {
|
|
406
|
+
const index = this.multiApps.findIndex(app => app.canvas === scene.canvas);
|
|
407
|
+
if (index > -1) {
|
|
408
|
+
const application = this.multiApps[index];
|
|
409
|
+
return application;
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
console.warn('application not found');
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
onPauseScene(scene) {
|
|
416
|
+
const app = this.getApplicationByScene(scene);
|
|
417
|
+
if (app) {
|
|
418
|
+
app.stop();
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
onStartScene(scene) {
|
|
422
|
+
const app = this.getApplicationByScene(scene);
|
|
423
|
+
if (app) {
|
|
424
|
+
app.start();
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
resizeByScene(scene, width, height) {
|
|
428
|
+
const app = this.getApplicationByScene(scene);
|
|
429
|
+
if (app) {
|
|
430
|
+
// @ts-ignore
|
|
431
|
+
app.renderer.resize(width, height);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
360
434
|
};
|
|
361
435
|
Renderer$1.systemName = 'Renderer';
|
|
362
436
|
Renderer$1 = __decorate([
|
|
@@ -373,7 +447,9 @@ function getSuportCompressedTextureFormats() {
|
|
|
373
447
|
const canvas = document.createElement('canvas');
|
|
374
448
|
const gl = canvas.getContext('webgl2');
|
|
375
449
|
if (!gl) {
|
|
450
|
+
// #if _DEBUG
|
|
376
451
|
console.warn('WebGL not available for compressed textures. Silently failing.');
|
|
452
|
+
// #endif
|
|
377
453
|
return {
|
|
378
454
|
s3tc: false,
|
|
379
455
|
etc: false,
|
|
@@ -426,14 +502,29 @@ function registerKtx2CompressedTexture(params) {
|
|
|
426
502
|
addPreProcessResourceHandler(resource);
|
|
427
503
|
}
|
|
428
504
|
|
|
505
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
429
506
|
class Renderer extends System {
|
|
430
507
|
constructor(params) {
|
|
431
508
|
super(params);
|
|
432
509
|
this.asyncIdMap = {};
|
|
510
|
+
// @ts-ignore
|
|
433
511
|
this.observerInfo = this.constructor.observerInfo;
|
|
434
512
|
}
|
|
513
|
+
// init(arg?: any): void;
|
|
514
|
+
/**
|
|
515
|
+
* 当监听的属性变化时候调用
|
|
516
|
+
*
|
|
517
|
+
* called while the observed component props change.
|
|
518
|
+
*/
|
|
435
519
|
componentChanged(_changed) { }
|
|
520
|
+
/**
|
|
521
|
+
* 每帧调用
|
|
522
|
+
*
|
|
523
|
+
* called by every loop
|
|
524
|
+
* @param _gameObject gameObject
|
|
525
|
+
*/
|
|
436
526
|
rendererUpdate(_gameObject) { }
|
|
527
|
+
// @ts-ignore
|
|
437
528
|
update(e) {
|
|
438
529
|
const changes = this.componentObserver.clear();
|
|
439
530
|
for (const changed of changes) {
|
|
@@ -449,7 +540,19 @@ class Renderer extends System {
|
|
|
449
540
|
}
|
|
450
541
|
}
|
|
451
542
|
|
|
543
|
+
// import { BaseTexture, utils } from 'pixi.js';
|
|
452
544
|
const mixinPIXI = () => {
|
|
545
|
+
// BaseTexture.prototype.destroy = function () {
|
|
546
|
+
// if (this.imageUrl) {
|
|
547
|
+
// delete utils.TextureCache[this.imageUrl];
|
|
548
|
+
// this.imageUrl = null;
|
|
549
|
+
// }
|
|
550
|
+
// this.source = null;
|
|
551
|
+
// this.dispose();
|
|
552
|
+
// BaseTexture.removeFromCache(this);
|
|
553
|
+
// this.textureCacheIds = null;
|
|
554
|
+
// this._destroyed = true;
|
|
555
|
+
// };
|
|
453
556
|
};
|
|
454
557
|
|
|
455
558
|
mixinPIXI();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eva/plugin-renderer",
|
|
3
|
-
"version": "2.0.1
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "@eva/plugin-renderer",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "dist/plugin-renderer.esm.js",
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"homepage": "https://eva.js.org",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@eva/eva.js": "2.0.1
|
|
22
|
-
"@eva/renderer-adapter": "2.0.1
|
|
21
|
+
"@eva/eva.js": "2.0.1",
|
|
22
|
+
"@eva/renderer-adapter": "2.0.1",
|
|
23
23
|
"eventemitter3": "^3.1.2",
|
|
24
24
|
"lodash-es": "^4.17.21",
|
|
25
|
-
"pixi.js": "^8.
|
|
25
|
+
"pixi.js": "^8.17.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"resource-loader": "^4.0.0-rc4"
|