@eva/plugin-renderer 2.0.0-beta.15 → 2.0.0-beta.16

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.
@@ -1189,7 +1189,7 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
1189
1189
  const transform = changed.component;
1190
1190
  Object.defineProperty(transform, 'worldTransform', {
1191
1191
  get() {
1192
- return container.worldTransform;
1192
+ return container.renderGroup || container.parentRenderGroup ? container.worldTransform : void 0;
1193
1193
  }
1194
1194
  });
1195
1195
  }
@@ -1301,16 +1301,19 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
1301
1301
  if (params.debugMode) {
1302
1302
  globalThis.__PIXI_APP__ = app;
1303
1303
  }
1304
+ const ticker = new pixi_js.Ticker();
1305
+ pixi_js.Ticker._system = pixi_js.Ticker._shared = ticker;
1306
+ ticker._protected = true;
1304
1307
  yield app.init(_extends(_extends({
1305
1308
  sharedTicker: true
1306
1309
  }, params), {
1307
1310
  hello: true
1308
1311
  }));
1309
- pixi_js.Ticker.shared.stop();
1310
- pixi_js.Ticker.shared.autoStart = false;
1311
1312
  if (params.enableScroll !== undefined) {
1312
1313
  params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
1313
1314
  }
1315
+ pixi_js.Ticker.shared.stop();
1316
+ pixi_js.Ticker.shared.autoStart = false;
1314
1317
  return app;
1315
1318
  });
1316
1319
  }
@@ -1328,6 +1331,13 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
1328
1331
  }
1329
1332
  }
1330
1333
  lateUpdate(e) {
1334
+ for (const gameObject of this.game.gameObjects) {
1335
+ this.containerManager.updateTransform({
1336
+ name: gameObject.id,
1337
+ transform: gameObject.transform
1338
+ });
1339
+ this.rendererManager.update(gameObject);
1340
+ }
1331
1341
  this.transform.update();
1332
1342
  this.application.ticker.update(e.time);
1333
1343
  }
@@ -1360,7 +1370,7 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
1360
1370
  function getSuportCompressedTextureFormats() {
1361
1371
  if (result) return result;
1362
1372
  const canvas = document.createElement('canvas');
1363
- const gl = canvas.getContext('webgl2') || canvas.getContext('webgl');
1373
+ const gl = canvas.getContext('webgl2');
1364
1374
  if (!gl) {
1365
1375
  console.warn('WebGL not available for compressed textures. Silently failing.');
1366
1376
  return {
@@ -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)}window.EVA=window.EVA||{},window.EVA.plugin=window.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 w,E=f["__core-js_shared__"],x=(w=/[^.]+$/.exec(E&&E.keys&&E.keys.IE_PROTO||""))?"Symbol(src)_1."+w:"";var A=Function.prototype.toString;function C(e){if(null!=e){try{return A.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var M=/^\[object .+?Constructor\]$/,S=Function.prototype,P=Object.prototype,R=S.toString,T=P.hasOwnProperty,I=RegExp("^"+R.call(T).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function z(e){return!(!j(e)||(t=e,x&&x 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 k=Object.prototype.hasOwnProperty;var B=Object.prototype.hasOwnProperty;function D(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 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])}}D.prototype.clear=function(){this.__data__=V?V(null):{},this.size=0},D.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},D.prototype.get=function(e){var t=this.__data__;if(V){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return k.call(t,e)?t[e]:void 0},D.prototype.has=function(e){var t=this.__data__;return V?void 0!==t[e]:B.call(t,e)},D.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},U.prototype.clear=function(){this.size=0,this.__data__={hash:new D,map:new(N||u),string:new D}},U.prototype.delete=function(e){var t=W(this,e).delete(e);return this.size-=t?1:0,t},U.prototype.get=function(e){return W(this,e).get(e)},U.prototype.has=function(e){return W(this,e).has(e)},U.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 G(e){var t=this.__data__=new u(e);this.size=t.size}G.prototype.clear=function(){this.__data__=new u,this.size=0},G.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},G.prototype.get=function(e){return this.__data__.get(e)},G.prototype.has=function(e){return this.__data__.has(e)},G.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 U(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 U;++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){}}(),we=Oe&&Oe.isTypedArray,Ee=we?(ge=we,function(e){return ge(e)}):function(e){return re(e)&&_e(e.length)&&!!ye[b(e)]},xe=Object.prototype.hasOwnProperty;function Ae(e,t){var n=Q(e),r=!n&&ue(e),o=!n&&!r&&he(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&&!xe.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,Pe=Object.prototype.hasOwnProperty;function Re(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))Pe.call(e,o)&&"constructor"!=o&&r.push(o);return r}function Te(e){return null!=(t=e)&&_e(t.length)&&!O(t)?Ae(e):Re(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,Te,ne)}var ze=Object.prototype.hasOwnProperty;var Le=L(f,"DataView"),Ne=L(f,"Promise"),Ve=L(f,"Set"),ke=L(f,"WeakMap"),Be="[object Map]",De="[object Promise]",We="[object Set]",Ue="[object WeakMap]",Ge="[object DataView]",$e=C(Le),Fe=C(N),Ye=C(Ne),Ke=C(Ve),Xe=C(ke),qe=b;(Le&&qe(new Le(new ArrayBuffer(1)))!=Ge||N&&qe(new N)!=Be||Ne&&qe(Ne.resolve())!=De||Ve&&qe(new Ve)!=We||ke&&qe(new ke)!=Ue)&&(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 Ge;case Fe:return Be;case Ye:return De;case Ke:return We;case Xe:return Ue}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 G),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=f&&et.call(t,"__wrapped__");if(d||v){var _=d?e.value():e,y=v?t.value():t;return a||(a=new G),o(_,y,n,r,a)}}return!!h&&(a||(a=new G),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}){this.containerMap[e]=t}getContainer(e){return this.containerMap[e]}removeContainer(e){var t;null===(t=this.containerMap[e])||void 0===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});const r=e.component;Object.defineProperty(r,"worldTransform",{get:()=>t.worldTransform})}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})=>{let o;switch(n){case t.LOAD_SCENE_MODE.SINGLE:o=this.application;break;case t.LOAD_SCENE_MODE.MULTI_CANVAS:o=this.createMultiApplication({params:r})}e.canvas=o.canvas,this.transform.emit("changeScene",{scene:e,mode:n,application:o})}))}))}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})),r.Ticker.shared.stop(),r.Ticker.shared.autoStart=!1,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)),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)}};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"),t=e.getContext("webgl2")||e.getContext("webgl");if(!t)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:!!t.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!t.getExtension("WEBGL_compressed_texture_etc"),etc1:!!t.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!t.getExtension("WEBGL_compressed_texture_pvrtc")||!!t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!t.getExtension("WEBGL_compressed_texture_atc"),astc:!!t.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);window.EVA.plugin.renderer=window.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)}window.EVA=window.EVA||{},window.EVA.plugin=window.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 w,E=f["__core-js_shared__"],x=(w=/[^.]+$/.exec(E&&E.keys&&E.keys.IE_PROTO||""))?"Symbol(src)_1."+w:"";var A=Function.prototype.toString;function C(e){if(null!=e){try{return A.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var M=/^\[object .+?Constructor\]$/,S=Function.prototype,P=Object.prototype,T=S.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,x&&x 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 k=L(f,"Map"),N=L(Object,"create");var V=Object.prototype.hasOwnProperty;var B=Object.prototype.hasOwnProperty;function D(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])}}D.prototype.clear=function(){this.__data__=N?N(null):{},this.size=0},D.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},D.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},D.prototype.has=function(e){var t=this.__data__;return N?void 0!==t[e]:B.call(t,e)},D.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 D,map:new(k||u),string:new D}},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(!k||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){}}(),we=Oe&&Oe.isTypedArray,Ee=we?(ge=we,function(e){return ge(e)}):function(e){return re(e)&&_e(e.length)&&!!ye[b(e)]},xe=Object.prototype.hasOwnProperty;function Ae(e,t){var n=Q(e),r=!n&&ue(e),o=!n&&!r&&he(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&&!xe.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,Pe=Object.prototype.hasOwnProperty;function Te(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))Pe.call(e,o)&&"constructor"!=o&&r.push(o);return r}function Re(e){return null!=(t=e)&&_e(t.length)&&!O(t)?Ae(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 Le=L(f,"DataView"),ke=L(f,"Promise"),Ne=L(f,"Set"),Ve=L(f,"WeakMap"),Be="[object Map]",De="[object Promise]",We="[object Set]",Ge="[object WeakMap]",Ue="[object DataView]",$e=C(Le),Fe=C(k),Ye=C(ke),Ke=C(Ne),Xe=C(Ve),qe=b;(Le&&qe(new Le(new ArrayBuffer(1)))!=Ue||k&&qe(new k)!=Be||ke&&qe(ke.resolve())!=De||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?C(n):"";if(r)switch(r){case $e:return Ue;case Fe:return Be;case Ye:return De;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||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=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}){this.containerMap[e]=t}getContainer(e){return this.containerMap[e]}removeContainer(e){var t;null===(t=this.containerMap[e])||void 0===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});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})=>{let o;switch(n){case t.LOAD_SCENE_MODE.SINGLE:o=this.application;break;case t.LOAD_SCENE_MODE.MULTI_CANVAS:o=this.createMultiApplication({params:r})}e.canvas=o.canvas,this.transform.emit("changeScene",{scene:e,mode:n,application:o})}))}))}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;e.debugMode&&(globalThis.__PIXI_APP__=t);const o=new r.Ticker;var a;return r.Ticker._system=r.Ticker._shared=o,o._protected=!0,yield t.init(_extends(_extends({sharedTicker:!0},e),{hello:!0})),void 0!==e.enableScroll&&(e.enableScroll?((a=t.renderer).events.autoPreventDefault=!1,a.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);window.EVA.plugin.renderer=window.EVA.plugin.renderer||_EVA_IIFE_renderer;
@@ -193,7 +193,7 @@ let Transform = class Transform extends EventEmitter__default {
193
193
  const transform = changed.component;
194
194
  Object.defineProperty(transform, 'worldTransform', {
195
195
  get() {
196
- return container.worldTransform;
196
+ return container.renderGroup || container.parentRenderGroup ? container.worldTransform : void 0;
197
197
  },
198
198
  });
199
199
  }
@@ -302,12 +302,15 @@ let Renderer$1 = class Renderer extends eva_js.System {
302
302
  if (params.debugMode) {
303
303
  globalThis.__PIXI_APP__ = app;
304
304
  }
305
+ const ticker = new pixi_js.Ticker();
306
+ pixi_js.Ticker._system = pixi_js.Ticker._shared = ticker;
307
+ ticker._protected = true;
305
308
  yield app.init(Object.assign(Object.assign({ sharedTicker: true }, params), { hello: true }));
306
- pixi_js.Ticker.shared.stop();
307
- pixi_js.Ticker.shared.autoStart = false;
308
309
  if (params.enableScroll !== undefined) {
309
310
  params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
310
311
  }
312
+ pixi_js.Ticker.shared.stop();
313
+ pixi_js.Ticker.shared.autoStart = false;
311
314
  return app;
312
315
  });
313
316
  }
@@ -325,6 +328,13 @@ let Renderer$1 = class Renderer extends eva_js.System {
325
328
  }
326
329
  }
327
330
  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
+ }
328
338
  this.transform.update();
329
339
  this.application.ticker.update(e.time);
330
340
  }
@@ -361,7 +371,7 @@ function getSuportCompressedTextureFormats() {
361
371
  if (result)
362
372
  return result;
363
373
  const canvas = document.createElement('canvas');
364
- const gl = canvas.getContext('webgl2') || canvas.getContext('webgl');
374
+ const gl = canvas.getContext('webgl2');
365
375
  if (!gl) {
366
376
  console.warn('WebGL not available for compressed textures. Silently failing.');
367
377
  return {
@@ -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 a,s=arguments.length,o=s<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--)(a=e[i])&&(o=(s<3?a(o):s>3?a(t,n,o):a(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}function d(e,t,n,r){return new(n||(n=Promise))((function(a,s){function o(e){try{c(r.next(e))}catch(e){s(e)}}function i(e){try{c(r.throw(e))}catch(e){s(e)}}function c(e){e.done?a(e.value):new n((function(t){t(e.value)})).then(o,i)}c((r=r.apply(e,t||[])).next())}))}var p=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}){this.containerMap[e]=t}getContainer(e){return this.containerMap[e]}removeContainer(e){var t;null===(t=this.containerMap[e])||void 0===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:a,position:s,rotation:o,scale:i,size:c,skew:d}=t;n.rotation=o,n.scale=i,n.pivot.x=c.width*a.x,n.pivot.y=c.height*a.y,n.skew=d;let p=s.x,h=s.y;if(t.parent){const e=t.parent;p+=e.size.width*r.x,h+=e.size.height*r.y}n.position={x:p,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});const r=e.component;Object.defineProperty(r,"worldTransform",{get:()=>n.worldTransform})}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 d(this,void 0,void 0,(function*(){this.params=t,this.application=yield this.createApplication(t),this.containerManager=new h,this.rendererManager=new p({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})=>{let a;switch(n){case e.LOAD_SCENE_MODE.SINGLE:a=this.application;break;case e.LOAD_SCENE_MODE.MULTI_CANVAS:a=this.createMultiApplication({params:r})}t.canvas=a.canvas,this.transform.emit("changeScene",{scene:t,mode:n,application:a})}))}))}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 d(this,void 0,void 0,(function*(){const t=yield this.createApplication(e);return this.multiApps.push(t),t}))}createApplication(e){return d(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})),a.Ticker.shared.stop(),a.Ticker.shared.autoStart=!1,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)),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)}};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 a=null===(n=null===(t=e.src)||void 0===t?void 0:t.image)||void 0===n?void 0:n.texture;if(!a)return;Array.isArray(a)||(a=[a]);const s=null!==(r=function(){if(v)return v;const e=document.createElement("canvas"),t=e.getContext("webgl2")||e.getContext("webgl");if(!t)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:!!t.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!t.getExtension("WEBGL_compressed_texture_etc"),etc1:!!t.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!t.getExtension("WEBGL_compressed_texture_pvrtc")||!!t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!t.getExtension("WEBGL_compressed_texture_atc"),astc:!!t.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=a.find((e=>s[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=p,exports.RendererSystem=f,exports.registerKtx2CompressedTexture=function(t){a.setKTXTranscoderPath(t),a.extensions.add(a.loadKTX2),a.extensions.add(a.resolveCompressedTextureUrl),a.extensions.add(a.detectCompressed),y(e.resource)};
16
+ function c(e,t,n,r){var a,s=arguments.length,o=s<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--)(a=e[i])&&(o=(s<3?a(o):s>3?a(t,n,o):a(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}function d(e,t,n,r){return new(n||(n=Promise))((function(a,s){function o(e){try{c(r.next(e))}catch(e){s(e)}}function i(e){try{c(r.throw(e))}catch(e){s(e)}}function c(e){e.done?a(e.value):new n((function(t){t(e.value)})).then(o,i)}c((r=r.apply(e,t||[])).next())}))}var p=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}){this.containerMap[e]=t}getContainer(e){return this.containerMap[e]}removeContainer(e){var t;null===(t=this.containerMap[e])||void 0===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:a,position:s,rotation:o,scale:i,size:c,skew:d}=t;n.rotation=o,n.scale=i,n.pivot.x=c.width*a.x,n.pivot.y=c.height*a.y,n.skew=d;let p=s.x,h=s.y;if(t.parent){const e=t.parent;p+=e.size.width*r.x,h+=e.size.height*r.y}n.position={x:p,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});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 d(this,void 0,void 0,(function*(){this.params=t,this.application=yield this.createApplication(t),this.containerManager=new h,this.rendererManager=new p({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})=>{let a;switch(n){case e.LOAD_SCENE_MODE.SINGLE:a=this.application;break;case e.LOAD_SCENE_MODE.MULTI_CANVAS:a=this.createMultiApplication({params:r})}t.canvas=a.canvas,this.transform.emit("changeScene",{scene:t,mode:n,application:a})}))}))}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 d(this,void 0,void 0,(function*(){const t=yield this.createApplication(e);return this.multiApps.push(t),t}))}createApplication(e){return d(this,void 0,void 0,(function*(){const n=new t.Application;e.debugMode&&(globalThis.__PIXI_APP__=n);const r=new a.Ticker;var s;return a.Ticker._system=a.Ticker._shared=r,r._protected=!0,yield n.init(Object.assign(Object.assign({sharedTicker:!0},e),{hello:!0})),void 0!==e.enableScroll&&(e.enableScroll?((s=n.renderer).events.autoPreventDefault=!1,s.canvas.style.touchAction="auto"):(e=>{e.events.autoPreventDefault=!0,e.canvas.style.touchAction="none"})(n.renderer)),a.Ticker.shared.stop(),a.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){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)}};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 a=null===(n=null===(t=e.src)||void 0===t?void 0:t.image)||void 0===n?void 0:n.texture;if(!a)return;Array.isArray(a)||(a=[a]);const s=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=a.find((e=>s[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=p,exports.RendererSystem=f,exports.registerKtx2CompressedTexture=function(t){a.setKTXTranscoderPath(t),a.extensions.add(a.loadKTX2),a.extensions.add(a.resolveCompressedTextureUrl),a.extensions.add(a.detectCompressed),y(e.resource)};
@@ -184,7 +184,7 @@ let Transform = class Transform extends EventEmitter {
184
184
  const transform = changed.component;
185
185
  Object.defineProperty(transform, 'worldTransform', {
186
186
  get() {
187
- return container.worldTransform;
187
+ return container.renderGroup || container.parentRenderGroup ? container.worldTransform : void 0;
188
188
  },
189
189
  });
190
190
  }
@@ -293,12 +293,15 @@ let Renderer$1 = class Renderer extends System {
293
293
  if (params.debugMode) {
294
294
  globalThis.__PIXI_APP__ = app;
295
295
  }
296
+ const ticker = new Ticker();
297
+ Ticker._system = Ticker._shared = ticker;
298
+ ticker._protected = true;
296
299
  yield app.init(Object.assign(Object.assign({ sharedTicker: true }, params), { hello: true }));
297
- Ticker.shared.stop();
298
- Ticker.shared.autoStart = false;
299
300
  if (params.enableScroll !== undefined) {
300
301
  params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
301
302
  }
303
+ Ticker.shared.stop();
304
+ Ticker.shared.autoStart = false;
302
305
  return app;
303
306
  });
304
307
  }
@@ -316,6 +319,13 @@ let Renderer$1 = class Renderer extends System {
316
319
  }
317
320
  }
318
321
  lateUpdate(e) {
322
+ for (const gameObject of this.game.gameObjects) {
323
+ this.containerManager.updateTransform({
324
+ name: gameObject.id,
325
+ transform: gameObject.transform,
326
+ });
327
+ this.rendererManager.update(gameObject);
328
+ }
319
329
  this.transform.update();
320
330
  this.application.ticker.update(e.time);
321
331
  }
@@ -352,7 +362,7 @@ function getSuportCompressedTextureFormats() {
352
362
  if (result)
353
363
  return result;
354
364
  const canvas = document.createElement('canvas');
355
- const gl = canvas.getContext('webgl2') || canvas.getContext('webgl');
365
+ const gl = canvas.getContext('webgl2');
356
366
  if (!gl) {
357
367
  console.warn('WebGL not available for compressed textures. Silently failing.');
358
368
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eva/plugin-renderer",
3
- "version": "2.0.0-beta.15",
3
+ "version": "2.0.0-beta.16",
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.0-beta.15",
22
- "@eva/renderer-adapter": "2.0.0-beta.15",
21
+ "@eva/eva.js": "2.0.0-beta.16",
22
+ "@eva/renderer-adapter": "2.0.0-beta.16",
23
23
  "eventemitter3": "^3.1.2",
24
24
  "lodash-es": "^4.17.21",
25
- "pixi.js": "^8.6.5"
25
+ "pixi.js": "^8.8.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "resource-loader": "^4.0.0-rc4"