2025-11-21 10:41:34 +08:00
/ * !
* pixi . js - v7 . 4.2
* Compiled Wed , 20 Mar 2024 19 : 55 : 28 UTC
*
* pixi . js is licensed under the MIT License .
* http : //www.opensource.org/licenses/mit-license
* / v a r P I X I = f u n c t i o n ( _ ) { " u s e s t r i c t " ; v a r _ e = ( i = > ( i [ i . W E B G L _ L E G A C Y = 0 ] = " W E B G L _ L E G A C Y " , i [ i . W E B G L = 1 ] = " W E B G L " , i [ i . W E B G L 2 = 2 ] = " W E B G L 2 " , i ) ) ( _ e | | { } ) , l r = ( i = > ( i [ i . U N K N O W N = 0 ] = " U N K N O W N " , i [ i . W E B G L = 1 ] = " W E B G L " , i [ i . C A N V A S = 2 ] = " C A N V A S " , i ) ) ( l r | | { } ) , J s = ( i = > ( i [ i . C O L O R = 1 6 3 8 4 ] = " C O L O R " , i [ i . D E P T H = 2 5 6 ] = " D E P T H " , i [ i . S T E N C I L = 1 0 2 4 ] = " S T E N C I L " , i ) ) ( J s | | { } ) , H = ( i = > ( i [ i . N O R M A L = 0 ] = " N O R M A L " , i [ i . A D D = 1 ] = " A D D " , i [ i . M U L T I P L Y = 2 ] = " M U L T I P L Y " , i [ i . S C R E E N = 3 ] = " S C R E E N " , i [ i . O V E R L A Y = 4 ] = " O V E R L A Y " , i [ i . D A R K E N = 5 ] = " D A R K E N " , i [ i . L I G H T E N = 6 ] = " L I G H T E N " , i [ i . C O L O R _ D O D G E = 7 ] = " C O L O R _ D O D G E " , i [ i . C O L O R _ B U R N = 8 ] = " C O L O R _ B U R N " , i [ i . H A R D _ L I G H T = 9 ] = " H A R D _ L I G H T " , i [ i . S O F T _ L I G H T = 1 0 ] = " S O F T _ L I G H T " , i [ i . D I F F E R E N C E = 1 1 ] = " D I F F E R E N C E " , i [ i . E X C L U S I O N = 1 2 ] = " E X C L U S I O N " , i [ i . H U E = 1 3 ] = " H U E " , i [ i . S A T U R A T I O N = 1 4 ] = " S A T U R A T I O N " , i [ i . C O L O R = 1 5 ] = " C O L O R " , i [ i . L U M I N O S I T Y = 1 6 ] = " L U M I N O S I T Y " , i [ i . N O R M A L _ N P M = 1 7 ] = " N O R M A L _ N P M " , i [ i . A D D _ N P M = 1 8 ] = " A D D _ N P M " , i [ i . S C R E E N _ N P M = 1 9 ] = " S C R E E N _ N P M " , i [ i . N O N E = 2 0 ] = " N O N E " , i [ i . S R C _ O V E R = 0 ] = " S R C _ O V E R " , i [ i . S R C _ I N = 2 1 ] = " S R C _ I N " , i [ i . S R C _ O U T = 2 2 ] = " S R C _ O U T " , i [ i . S R C _ A T O P = 2 3 ] = " S R C _ A T O P " , i [ i . D S T _ O V E R = 2 4 ] = " D S T _ O V E R " , i [ i . D S T _ I N = 2 5 ] = " D S T _ I N " , i [ i . D S T _ O U T = 2 6 ] = " D S T _ O U T " , i [ i . D S T _ A T O P = 2 7 ] = " D S T _ A T O P " , i [ i . E R A S E = 2 6 ] = " E R A S E " , i [ i . S U B T R A C T = 2 8 ] = " S U B T R A C T " , i [ i . X O R = 2 9 ] = " X O R " , i ) ) ( H | | { } ) , L t = ( i = > ( i [ i . P O I N T S = 0 ] = " P O I N T S " , i [ i . L I N E S = 1 ] = " L I N E S " , i [ i . L I N E _ L O O P = 2 ] = " L I N E _ L O O P " , i [ i . L I N E _ S T R I P = 3 ] = " L I N E _ S T R I P " , i [ i . T R I A N G L E S = 4 ] = " T R I A N G L E S " , i [ i . T R I A N G L E _ S T R I P = 5 ] = " T R I A N G L E _ S T R I P " , i [ i . T R I A N G L E _ F A N = 6 ] = " T R I A N G L E _ F A N " , i ) ) ( L t | | { } ) , A = ( i = > ( i [ i . R G B A = 6 4 0 8 ] = " R G B A " , i [ i . R G B = 6 4 0 7 ] = " R G B " , i [ i . R G = 3 3 3 1 9 ] = " R G " , i [ i . R E D = 6 4 0 3 ] = " R E D " , i [ i . R G B A _ I N T E G E R = 3 6 2 4 9 ] = " R G B A _ I N T E G E R " , i [ i . R G B _ I N T E G E R = 3 6 2 4 8 ] = " R G B _ I N T E G E R " , i [ i . R G _ I N T E G E R = 3 3 3 2 0 ] = " R G _ I N T E G E R " , i [ i . R E D _ I N T E G E R = 3 6 2 4 4 ] = " R E D _ I N T E G E R " , i [ i . A L P H A = 6 4 0 6 ] = " A L P H A " , i [ i . L U M I N A N C E = 6 4 0 9 ] = " L U M I N A N C E " , i [ i . L U M I N A N C E _ A L P H A = 6 4 1 0 ] = " L U M I N A N C E _ A L P H A " , i [ i . D E P T H _ C O M P O N E N T = 6 4 0 2 ] = " D E P T H _ C O M P O N E N T " , i [ i . D E P T H _ S T E N C I L = 3 4 0 4 1 ] = " D E P T H _ S T E N C I L " , i ) ) ( A | | { } ) , R e = ( i = > ( i [ i . T E X T U R E _ 2 D = 3 5 5 3 ] = " T E X T U R E _ 2 D " , i [ i . T E X T U R E _ C U B E _ M A P = 3 4 0 6 7 ] = " T E X T U R E _ C U B E _ M A P " , i [ i . T E X T U R E _ 2 D _ A R R A Y = 3 5 8 6 6 ] = " T E X T U R E _ 2 D _ A R R A Y " , i [ i . T E X T U R E _ C U B E _ M A P _ P O S I T I V E _ X = 3 4 0 6 9 ] = " T E X T U R E _ C U B E _ M A P _ P O S I T I V E _ X " , i [ i . T E X T U R E _ C U B E _ M A P _ N E G A T I V E _ X = 3 4 0 7 0 ] = " T E X T U R E _ C U B E _ M A P _ N E G A T I V E _ X " , i [ i . T E X T U R E _ C U B E _ M A P _ P O S I T I V E _ Y = 3 4 0 7 1 ] = " T E X T U R E _ C U B E _ M A P _ P O S I T I V E _ Y " , i [ i . T E X T U R E _ C U B E _ M A P _ N E G A T I V E _ Y = 3 4 0 7 2 ] = " T E X T U R E _ C U B E _ M A P _ N E G A T I V E _ Y " , i [ i . T E X T U R E _ C U B E _ M A P _ P O S I T I V E _ Z = 3 4 0 7 3 ] = " T E X T U R E _ C U B E _ M A P _ P O S I T I V E _ Z " , i [ i . T E X T U R E _ C U B E _ M A P _ N E G A T I V E _ Z = 3 4 0 7 4 ] = " T E X T U R E _ C U B E _ M A P _ N E G A T I V E _ Z " , i ) ) ( R e | | { } ) , k = ( i = > ( i [ i . U N S I G N E D _ B Y T E = 5 1 2 1 ] = " U N S I G N E D _ B Y T E " , i [ i . U N S I G N E D _ S H O R T = 5 1 2 3 ] = " U N S I G N E D _ S H O R T " , i [ i . U N S I G N E D _ S H O R T _ 5 _ 6 _ 5 = 3 3 6 3 5 ] = " U N S I G N E D _ S H O R T _ 5 _ 6 _ 5 " , i [ i . U N S I G N E D _ S H O R T _ 4 _ 4 _ 4 _ 4 = 3 2 8 1 9 ] = " U N S I G N E D _ S H O R T _ 4 _ 4 _ 4 _ 4 " , i [ i . U N S I G N E D _ S H O R T _ 5 _ 5 _ 5 _ 1 = 3 2 8 2 0 ] = " U N S I G N E D _ S H O R T _ 5 _ 5 _ 5 _ 1 " , i [ i . U N S I G N E D _ I N T = 5 1 2 5 ] = " U N S I G N E D _ I N T " , i [ i . U N S I G N E D _ I N T _ 1 0 F _ 1 1 F _ 1 1 F _ R E V = 3 5 8 9 9 ] = " U N S I G N E D _ I N T _ 1 0 F _ 1 1 F _ 1 1 F _ R E V " , i [ i . U N S I G N E D _ I N T _ 2 _ 1 0 _ 1 0 _ 1 0 _ R E V = 3 3 6 4 0 ] = " U N S I G N E D _ I N T _ 2 _ 1 0 _ 1 0 _ 1 0 _ R E V " , i [ i . U N S I G N E D _ I N T _ 2 4 _ 8 = 3 4 0 4 2 ] = " U N S I G N E D _ I N T _ 2 4 _ 8 " , i [ i . U N S I G N E D _ I N T _ 5 _ 9 _ 9 _ 9 _ R E V = 3 5 9 0 2 ] = " U N S I G N E D _ I N T _ 5 _ 9 _ 9 _ 9 _ R E V " , i [ i . B Y T E = 5 1 2 0 ] = " B Y T E " , i [ i . S H O R T = 5 1 2 2 ] = " S H O R T " , i [ i . I N T = 5 1 2 4 ] = " I N T " , i [ i . F L O A T = 5 1 2 6 ] = " F L O A T " , i [ i . F L O A T _ 3 2 _ U N S I G N E D _ I N T _ 2 4 _ 8 _ R E V = 3 6 2 6 9 ] = " F L O A T _ 3 2 _ U N S I G N E D _ I N T _ 2 4 _ 8 _ R E V " , i [ i . H A L F _ F L O A T = 3 6 1 9 3 ] = " H A L F _ F L O A T " , i ) ) ( k | | { } ) , D = ( i = > ( i [ i . F L O A T = 0 ] = " F L O A T " , i [ i . I N T = 1 ] = " I N T " , i [ i . U I N T = 2 ] = " U I N T " , i ) ) ( D | | { } ) , W t = ( i = > ( i [ i . N E A R E S T = 0 ] = " N E A R E S T " , i [ i . L I N E A R = 1 ] = " L I N E A R " , i ) ) ( W t | | { } ) , z t = ( i = > ( i [ i . C L A M P = 3 3 0 7 1 ] = " C L A M P " , i [ i . R E P E A T = 1 0 4 9 7 ] = " R E P E A T " , i [ i . M I R R O R E D _ R E P E A T = 3 3 6 4 8 ] = " M I R R O R E D _ R E P E A T " , i ) ) ( z t | | { } ) , U t = ( i = > ( i [ i . O F F = 0 ] = " O F F " , i [ i . P O W 2 = 1 ] = " P O W 2 " , i [ i . O N = 2 ] = " O N " , i [ i . O N _ M A N U A L = 3 ] = " O N _ M A N U A L " , i ) ) ( U t | | { } ) , T t = ( i = > ( i [ i . N P M = 0 ] = " N P M " , i [ i . U N P A C K = 1 ] = " U N P A C K " , i [ i . P M A = 2 ] = " P M A " , i [ i . N O _ P R E M U L T I P L I E D _ A L P H A = 0 ] = " N O _ P R E M U L T I P L I E D _ A L P H A " , i [ i . P R E M U L T I P L Y _ O N _ U P L O A D = 1 ] = " P R E M U L T I P L Y _ O N _ U P L O A D " , i [ i . P R E M U L T I P L I E D _ A L P H A = 2 ] = " P R E M U L T I P L I E D _ A L P H A " , i ) ) ( T t | | { } ) , k t = ( i = > ( i [ i . N O = 0 ] = " N O " , i [ i . Y E S = 1 ] = " Y E S " , i [ i . A U T O = 2 ] = " A U T O " , i [ i . B L E N D = 0 ] = " B L E N D " , i [ i . C L E A R = 1 ] = " C L E A R " , i [ i . B L I T = 2 ] = " B L I T " , i ) ) ( k t | | { } ) , t i = ( i = > ( i [ i . A U T O = 0 ] = " A U T O " , i [ i . M A N U A L = 1 ] = " M A N U A L " , i ) ) ( t i | | { } ) , A t = ( i = > ( i . L O W = " l o w p " , i . M E D I U M = " m e d i u m p " , i . H I G H = " h i g h p " , i ) ) ( A t | | { } ) , h t = ( i = > ( i [ i . N O N E = 0 ] = " N O N E " , i [ i . S C I S S O R = 1 ] = " S C I S S O R " , i [ i . S T E N C I L = 2 ] = " S
` ," "],ju=["{","}","|"," \\ ","^"," ` "].concat(Vu),_r=[" '"].concat(ju),Ma=["%","/","?",";","#"].concat(_r),Da=["/","?","#"],Wu=255,Oa=/^[+a-z0-9A-Z_-]{0,63}$/,zu=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Yu={javascript:!0,"javascript:":!0},vr={javascript:!0,"javascript:":!0},je={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},yr=cs;function fs(i,t,e){if(i&&Yt.isObject(i)&&i instanceof Mt)return i;var s=new Mt;return s.parse(i,t,e),s}Mt.prototype.parse=function(i,t,e){if(!Yt.isString(i))throw new TypeError("Parameter ' url ' must be a string , not "+typeof i);var s=i.indexOf(" ? "),r=s!==-1&&s<i.indexOf(" # ")?" ? ":" # ",n=i.split(r),a=/\\/g;n[0]=n[0].replace(a," / "),i=n.join(r);var o=i;if(o=o.trim(),!e&&i.split(" # ").length===1){var h=Xu.exec(o);if(h)return this.path=o,this.href=o,this.pathname=h[1],h[2]?(this.search=h[2],t?this.query=yr.parse(this.search.substr(1)):this.query=this.search.substr(1)):t&&(this.search=" ",this.query={}),this}var l=$u.exec(o);if(l){l=l[0];var u=l.toLowerCase();this.protocol=u,o=o.substr(l.length)}if(e||l||o.match(/^\/\/[^@\/]+@[^@\/]+/)){var c=o.substr(0,2)===" //";c&&!(l&&vr[l])&&(o=o.substr(2),this.slashes=!0)}if(!vr[l]&&(c||l&&!je[l])){for(var d=-1,f=0;f<Da.length;f++){var p=o.indexOf(Da[f]);p!==-1&&(d===-1||p<d)&&(d=p)}var m,g;d===-1?g=o.lastIndexOf("@"):g=o.lastIndexOf("@",d),g!==-1&&(m=o.slice(0,g),o=o.slice(g+1),this.auth=decodeURIComponent(m)),d=-1;for(var f=0;f<Ma.length;f++){var p=o.indexOf(Ma[f]);p!==-1&&(d===-1||p<d)&&(d=p)}d===-1&&(d=o.length),this.host=o.slice(0,d),o=o.slice(d),this.parseHost(),this.hostname=this.hostname||"";var y=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!y)for(var b=this.hostname.split(/\./),f=0,v=b.length;f<v;f++){var x=b[f];if(x&&!x.match(Oa)){for(var E="",M=0,S=x.length;M<S;M++)x.charCodeAt(M)>127?E+="x":E+=x[M];if(!E.match(Oa)){var w=b.slice(0,f),F=b.slice(f+1),G=x.match(zu);G&&(w.push(G[1]),F.unshift(G[2])),F.length&&(o="/"+F.join(".")+o),this.hostname=w.join(".");break}}}this.hostname.length>Wu?this.hostname="":this.hostname=this.hostname.toLowerCase(),y||(this.hostname=Lu.toASCII(this.hostname));var Y=this.port?":"+this.port:"",N=this.hostname||"";this.host=N+Y,this.href+=this.host,y&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),o[0]!=="/"&&(o="/"+o))}if(!Yu[u])for(var f=0,v=_r.length;f<v;f++){var T=_r[f];if(o.indexOf(T)!==-1){var R=encodeURIComponent(T);R===T&&(R=escape(T)),o=o.split(T).join(R)}}var $=o.indexOf("#");$!==-1&&(this.hash=o.substr($),o=o.slice(0,$));var z=o.indexOf("?");if(z!==-1?(this.search=o.substr(z),this.query=o.substr(z+1),t&&(this.query=yr.parse(this.query)),o=o.slice(0,z)):t&&(this.search="",this.query={}),o&&(this.pathname=o),je[u]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var Y=this.pathname||"",X=this.search||"";this.path=Y+X}return this.href=this.format(),this};function qu(i){return Yt.isString(i)&&(i=fs(i)),i instanceof Mt?i.format():Mt.prototype.format.call(i)}Mt.prototype.format=function(){var i=this.auth||"";i&&(i=encodeURIComponent(i),i=i.replace(/%3A/i,":"),i+="@");var t=this.protocol||"",e=this.pathname||"",s=this.hash||"",r=!1,n="";this.host?r=i+this.host:this.hostname&&(r=i+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(r+=":"+this.port)),this.query&&Yt.isObject(this.query)&&Object.keys(this.query).length&&(n=yr.stringify(this.query));var a=this.search||n&&"?"+n||"";return t&&t.substr(-1)!==":"&&(t+=":"),this.slashes||(!t||je[t])&&r!==!1?(r="//"+(r||""),e&&e.charAt(0)!=="/"&&(e="/"+e)):r||(r=""),s&&s.charAt(0)!=="#"&&(s="#"+s),a&&a.charAt(0)!=="?"&&(a="?"+a),e=e.replace(/[?#]/g,function(o){return encodeURIComponent(o)}),a=a.replace("#","%23"),t+r+e+a+s};function Ku(i,t){return fs(i,!1,!0).resolve(t)}Mt.prototype.resolve=function(i){return this.resolveObject(fs(i,!1,!0)).format()};function Zu(i,t){return i?fs(i,!1,!0).resolveObject(t):t}Mt.prototype.resolveObject=function(i){if(Yt.isString(i)){var t=new Mt;t.parse(i,!1,!0),i=t}for(var e=new Mt,s=Object.keys(this),r=0;r<s.l
Deprecated since v$ { i } ` ):(s=s.split( `
` ).splice(e).join( `
` ),console.groupCollapsed?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6", ` $ { t }
Deprecated since v$ { i } ` ),console.warn(s),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ", ` $ { t }
Deprecated since v$ { i } ` ),console.warn(s))),Ba[t]=!0}const Qu={get parse(){return Uu},get format(){return Gu},get resolve(){return ku}};function Ht(i){if(typeof i!="string")throw new TypeError( ` Path must be a string . Received $ { JSON . stringify ( i ) } ` )}function ps(i){return i.split("?")[0].split("#")[0]}function Ju(i){return i.replace(/[.*+?^ ${ } ()|[ \] \\ ]/g," \\ $ &")}function tc(i,t,e){return i.replace(new RegExp(Ju(t),"g"),e)}function ec(i,t){let e="",s=0,r=-1,n=0,a=-1;for(let o=0;o<=i.length;++o){if(o<i.length)a=i.charCodeAt(o);else{if(a===47)break;a=47}if(a===47){if(!(r===o-1||n===1))if(r!==o-1&&n===2){if(e.length<2||s!==2||e.charCodeAt(e.length-1)!==46||e.charCodeAt(e.length-2)!==46){if(e.length>2){const h=e.lastIndexOf("/");if(h!==e.length-1){h===-1?(e="",s=0):(e=e.slice(0,h),s=e.length-1-e.lastIndexOf("/")),r=o,n=0;continue}}else if(e.length===2||e.length===1){e="",s=0,r=o,n=0;continue}}t&&(e.length>0?e+="/..":e="..",s=2)}else e.length>0?e+= ` / $ { i . slice ( r + 1 , o ) } ` :e=i.slice(r+1,o),s=o-r-1;r=o,n=0}else a===46&&n!==-1?++n:n=-1}return e}const ct={toPosix(i){return tc(i," \\ ","/")},isUrl(i){return/^https?:/.test(this.toPosix(i))},isDataUrl(i){return/^data:([a-z]+ \/ [a-z0-9-+.]+(;[a-z0-9-.!# $ %*+.{}|~ ` ] += [ a - z0 - 9 - . ! # $ % * + . { } ( ) _ | ~ ` ]+)*)?(;base64)?,([a-z0-9! $ &',()*+;= \- ._~:@ \/ ?% \s <>]*?) $ /i.test(i)},isBlobUrl(i){return i.startsWith("blob:")},hasProtocol(i){return/^[^/:]+:/.test(this.toPosix(i))},getProtocol(i){Ht(i),i=this.toPosix(i);const t=/^file: \/ \/ \/ /.exec(i);if(t)return t[0];const e=/^[^/:]+: \/ {0,2}/.exec(i);return e?e[0]:""},toAbsolute(i,t,e){if(Ht(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;const s=ps(this.toPosix(t!=null?t:O.ADAPTER.getBaseUrl())),r=ps(this.toPosix(e!=null?e:this.rootname(s)));return i=this.toPosix(i),i.startsWith("/")?ct.join(r,i.slice(1)):this.isAbsolute(i)?i:this.join(s,i)},normalize(i){if(Ht(i),i.length===0)return".";if(this.isDataUrl(i)||this.isBlobUrl(i))return i;i=this.toPosix(i);let t="";const e=i.startsWith("/");this.hasProtocol(i)&&(t=this.rootname(i),i=i.slice(t.length));const s=i.endsWith("/");return i=ec(i,!1),i.length>0&&s&&(i+="/"),e? ` / $ { i } ` :t+i},isAbsolute(i){return Ht(i),i=this.toPosix(i),this.hasProtocol(i)?!0:i.startsWith("/")},join(...i){var t;if(i.length===0)return".";let e;for(let s=0;s<i.length;++s){const r=i[s];if(Ht(r),r.length>0)if(e===void 0)e=r;else{const n=(t=i[s-1])!=null?t:"";this.joinExtensions.includes(this.extname(n).toLowerCase())?e+= ` / . . / $ { r } ` :e+= ` / $ { r } ` }}return e===void 0?".":this.normalize(e)},dirname(i){if(Ht(i),i.length===0)return".";i=this.toPosix(i);let t=i.charCodeAt(0);const e=t===47;let s=-1,r=!0;const n=this.getProtocol(i),a=i;i=i.slice(n.length);for(let o=i.length-1;o>=1;--o)if(t=i.charCodeAt(o),t===47){if(!r){s=o;break}}else r=!1;return s===-1?e?"/":this.isUrl(a)?n+i:n:e&&s===1?"//":n+i.slice(0,s)},rootname(i){Ht(i),i=this.toPosix(i);let t="";if(i.startsWith("/")?t="/":t=this.getProtocol(i),this.isUrl(i)){const e=i.indexOf("/",t.length);e!==-1?t=i.slice(0,e):t=i,t.endsWith("/")||(t+="/")}return t},basename(i,t){Ht(i),t&&Ht(t),i=ps(this.toPosix(i));let e=0,s=-1,r=!0,n;if(t!==void 0&&t.length>0&&t.length<=i.length){if(t.length===i.length&&t===i)return"";let a=t.length-1,o=-1;for(n=i.length-1;n>=0;--n){const h=i.charCodeAt(n);if(h===47){if(!r){e=n+1;break}}else o===-1&&(r=!1,o=n+1),a>=0&&(h===t.charCodeAt(a)?--a===-1&&(s=n):(a=-1,s=o))}return e===s?s=o:s===-1&&(s=i.length),i.slice(e,s)}for(n=i.length-1;n>=0;--n)if(i.charCodeAt(n)===47){if(!r){e=n+1;break}}else s===-1&&(r=!1,s=n+1);return s===-1?"":i.slice(e,s)},extname(i){Ht(i),i=ps(this.toPosix(i));let t=-1,e=0,s=-1,r=!0,n=0;for(let a=i.length-1;a>=0;--a){const o=i.charCodeAt(a);if(o===47){if(!r){e=a+1;break}continue}s===-1&&(r=!1,s=a+1),o===46?t===-1?t=a:n!==1&&(n=1):t!==-1&&(n=-1)}return t===-1||s===-1||n===0||n===1&&t===s-1&&t===e+1?"":i.slice(t,s)},parse(i){Ht(i);const t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;i=ps(this.toPosix(i));let e=i.charCodeAt(0);const s=this.isAbsolute(i);let r;const n="";t.root=this.rootname(i),s||this.hasProtocol(i)?r=1:r=0;let a=-1,o=0,h=-1,l=!0,u=i.le
` );function Nc(i){let t="";for(let e=0;e<i;++e)e>0&&(t+= `
else ` ),e<i-1&&(t+= ` if ( test == $ { e } . 0 ) { } ` );return t}function co(i,t){if(i===0)throw new Error("Invalid value of ` 0 ` passed to ` checkMaxIfStatementsInShader ` ");const e=t.createShader(t.FRAGMENT_SHADER);for(;;){const s=Fc.replace(/%forloop%/gi,Nc(i));if(t.shaderSource(e,s),t.compileShader(e),!t.getShaderParameter(e,t.COMPILE_STATUS))i=i/2|0;else break}return i}const Br=0,Fr=1,Nr=2,Lr=3,Ur=4,kr=5;class Zt{constructor(){this.data=0,this.blendMode=H.NORMAL,this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<Br)}set blend(t){!!(this.data&1<<Br)!==t&&(this.data^=1<<Br)}get offsets(){return!!(this.data&1<<Fr)}set offsets(t){!!(this.data&1<<Fr)!==t&&(this.data^=1<<Fr)}get culling(){return!!(this.data&1<<Nr)}set culling(t){!!(this.data&1<<Nr)!==t&&(this.data^=1<<Nr)}get depthTest(){return!!(this.data&1<<Lr)}set depthTest(t){!!(this.data&1<<Lr)!==t&&(this.data^=1<<Lr)}get depthMask(){return!!(this.data&1<<kr)}set depthMask(t){!!(this.data&1<<kr)!==t&&(this.data^=1<<kr)}get clockwiseFrontFace(){return!!(this.data&1<<Ur)}set clockwiseFrontFace(t){!!(this.data&1<<Ur)!==t&&(this.data^=1<<Ur)}get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!==H.NONE,this._blendMode=t}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t}static for2d(){const t=new Zt;return t.depthTest=!1,t.blend=!0,t}}const di=[];function Gr(i,t){if(!i)return null;let e="";if(typeof i=="string"){const s=/ \. ( \w {3,4})(?: $ | \? |#)/i.exec(i);s&&(e=s[1].toLowerCase())}for(let s=di.length-1;s>=0;--s){const r=di[s];if(r.test&&r.test(i,e))return new r(i,t)}throw new Error("Unrecognized source type to auto-detect Resource")}class St{constructor(t){this.items=[],this._name=t,this._aliasCount=0}emit(t,e,s,r,n,a,o,h){if(arguments.length>8)throw new Error("max arguments reached");const{name:l,items:u}=this;this._aliasCount++;for(let c=0,d=u.length;c<d;c++)u[c][l](t,e,s,r,n,a,o,h);return u===this.items&&this._aliasCount--,this}ensureNonAliasedItems(){this._aliasCount>0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))}add(t){return t[this._name]&&(this.ensureNonAliasedItems(),this.remove(t),this.items.push(t)),this}remove(t){const e=this.items.indexOf(t);return e!==-1&&(this.ensureNonAliasedItems(),this.items.splice(e,1)),this}contains(t){return this.items.includes(t)}removeAll(){return this.ensureNonAliasedItems(),this.items.length=0,this}destroy(){this.removeAll(),this.items.length=0,this._name=""}get empty(){return this.items.length===0}get name(){return this._name}}Object.defineProperties(St.prototype,{dispatch:{value:St.prototype.emit},run:{value:St.prototype.emit}});class ze{constructor(t=0,e=0){this._width=t,this._height=e,this.destroyed=!1,this.internal=!1,this.onResize=new St("setRealSize"),this.onUpdate=new St("update"),this.onError=new St("onError")}bind(t){this.onResize.add(t),this.onUpdate.add(t),this.onError.add(t),(this._width||this._height)&&this.onResize.emit(this._width,this._height)}unbind(t){this.onResize.remove(t),this.onUpdate.remove(t),this.onError.remove(t)}resize(t,e){(t!==this._width||e!==this._height)&&(this._width=t,this._height=e,this.onResize.emit(t,e))}get valid(){return!!this._width&&!!this._height}update(){this.destroyed||this.onUpdate.emit()}load(){return Promise.resolve(this)}get width(){return this._width}get height(){return this._height}style(t,e,s){return!1}dispose(){}destroy(){this.destroyed||(this.destroyed=!0,this.dispose(),this.onError.removeAll(),this.onError=null,this.onResize.removeAll(),this.onResize=null,this.onUpdate.removeAll(),this.onUpdate=null)}static test(t,e){return!1}}class _s extends ze{constructor(t,e){var s;const{width:r,height:n}=e||{};if(!r||!n)throw new Error("BufferResource width or height invalid");super(r,n),this.data=t,this.unpackAlignment=(s=e.unpackAlignment)!=null?s:4}upload(t,e,s){const r=t.gl;r.pixelStorei(r.UNPACK_ALIGNMENT,this.unpackAlignment),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.alphaMode===Tt.UNPACK);const n=e.realWidth,a=e.realHeight;return s.width===n&&s.height===
uniform sampler2D uSampler ;
void main ( void ) {
gl _FragColor *= texture2D ( uSampler , vTextureCoord ) ;
} ` ,qc= ` attribute vec2 aVertexPosition ;
attribute vec2 aTextureCoord ;
uniform mat3 projectionMatrix ;
varying vec2 vTextureCoord ;
void main ( void ) {
gl _Position = vec4 ( ( projectionMatrix * vec3 ( aVertexPosition , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
vTextureCoord = aTextureCoord ;
}
` ;function yo(i,t,e){const s=i.createShader(t);return i.shaderSource(s,e),i.compileShader(s),s}function jr(i){const t=new Array(i);for(let e=0;e<t.length;e++)t[e]=!1;return t}function xo(i,t){switch(i){case"float":return 0;case"vec2":return new Float32Array(2*t);case"vec3":return new Float32Array(3*t);case"vec4":return new Float32Array(4*t);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*t);case"ivec3":return new Int32Array(3*t);case"ivec4":return new Int32Array(4*t);case"uvec2":return new Uint32Array(2*t);case"uvec3":return new Uint32Array(3*t);case"uvec4":return new Uint32Array(4*t);case"bool":return!1;case"bvec2":return jr(2*t);case"bvec3":return jr(3*t);case"bvec4":return jr(4*t);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}const Fe=[{test:i=>i.type==="float"&&i.size===1&&!i.isArray,code:i=> `
if ( uv [ "${i}" ] !== ud [ "${i}" ] . value )
{
ud [ "${i}" ] . value = uv [ "${i}" ]
gl . uniform1f ( ud [ "${i}" ] . location , uv [ "${i}" ] )
}
` },{test:(i,t)=>(i.type==="sampler2D"||i.type==="samplerCube"||i.type==="sampler2DArray")&&i.size===1&&!i.isArray&&(t==null||t.castToBaseTexture!==void 0),code:i=> ` t = syncData . textureCount ++ ;
renderer . texture . bind ( uv [ "${i}" ] , t ) ;
if ( ud [ "${i}" ] . value !== t )
{
ud [ "${i}" ] . value = t ;
gl . uniform1i ( ud [ "${i}" ] . location , t ) ;
; // eslint-disable-line max-len
} ` },{test:(i,t)=>i.type==="mat3"&&i.size===1&&!i.isArray&&t.a!==void 0,code:i=> `
gl . uniformMatrix3fv ( ud [ "${i}" ] . location , false , uv [ "${i}" ] . toArray ( true ) ) ;
` ,codeUbo:i=> `
var $ { i } _matrix = uv . $ { i } . toArray ( true ) ;
data [ offset ] = $ { i } _matrix [ 0 ] ;
data [ offset + 1 ] = $ { i } _matrix [ 1 ] ;
data [ offset + 2 ] = $ { i } _matrix [ 2 ] ;
data [ offset + 4 ] = $ { i } _matrix [ 3 ] ;
data [ offset + 5 ] = $ { i } _matrix [ 4 ] ;
data [ offset + 6 ] = $ { i } _matrix [ 5 ] ;
data [ offset + 8 ] = $ { i } _matrix [ 6 ] ;
data [ offset + 9 ] = $ { i } _matrix [ 7 ] ;
data [ offset + 10 ] = $ { i } _matrix [ 8 ] ;
` },{test:(i,t)=>i.type==="vec2"&&i.size===1&&!i.isArray&&t.x!==void 0,code:i=> `
cv = ud [ "${i}" ] . value ;
v = uv [ "${i}" ] ;
if ( cv [ 0 ] !== v . x || cv [ 1 ] !== v . y )
{
cv [ 0 ] = v . x ;
cv [ 1 ] = v . y ;
gl . uniform2f ( ud [ "${i}" ] . location , v . x , v . y ) ;
} ` ,codeUbo:i=> `
v = uv . $ { i } ;
data [ offset ] = v . x ;
data [ offset + 1 ] = v . y ;
` },{test:i=>i.type==="vec2"&&i.size===1&&!i.isArray,code:i=> `
cv = ud [ "${i}" ] . value ;
v = uv [ "${i}" ] ;
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
gl . uniform2f ( ud [ "${i}" ] . location , v [ 0 ] , v [ 1 ] ) ;
}
` },{test:(i,t)=>i.type==="vec4"&&i.size===1&&!i.isArray&&t.width!==void 0,code:i=> `
cv = ud [ "${i}" ] . value ;
v = uv [ "${i}" ] ;
if ( cv [ 0 ] !== v . x || cv [ 1 ] !== v . y || cv [ 2 ] !== v . width || cv [ 3 ] !== v . height )
{
cv [ 0 ] = v . x ;
cv [ 1 ] = v . y ;
cv [ 2 ] = v . width ;
cv [ 3 ] = v . height ;
gl . uniform4f ( ud [ "${i}" ] . location , v . x , v . y , v . width , v . height )
} ` ,codeUbo:i=> `
v = uv . $ { i } ;
data [ offset ] = v . x ;
data [ offset + 1 ] = v . y ;
data [ offset + 2 ] = v . width ;
data [ offset + 3 ] = v . height ;
` },{test:(i,t)=>i.type==="vec4"&&i.size===1&&!i.isArray&&t.red!==void 0,code:i=> `
cv = ud [ "${i}" ] . value ;
v = uv [ "${i}" ] ;
if ( cv [ 0 ] !== v . red || cv [ 1 ] !== v . green || cv [ 2 ] !== v . blue || cv [ 3 ] !== v . alpha )
{
cv [ 0 ] = v . red ;
cv [ 1 ] = v . green ;
cv [ 2 ] = v . blue ;
cv [ 3 ] = v . alpha ;
gl . uniform4f ( ud [ "${i}" ] . location , v . red , v . green , v . blue , v . alpha )
} ` ,codeUbo:i=> `
v = uv . $ { i } ;
data [ offset ] = v . red ;
data [ offset + 1 ] = v . green ;
data [ offset + 2 ] = v . blue ;
data [ offset + 3 ] = v . alpha ;
` },{test:(i,t)=>i.type==="vec3"&&i.size===1&&!i.isArray&&t.red!==void 0,code:i=> `
cv = ud [ "${i}" ] . value ;
v = uv [ "${i}" ] ;
if ( cv [ 0 ] !== v . red || cv [ 1 ] !== v . green || cv [ 2 ] !== v . blue || cv [ 3 ] !== v . a )
{
cv [ 0 ] = v . red ;
cv [ 1 ] = v . green ;
cv [ 2 ] = v . blue ;
gl . uniform3f ( ud [ "${i}" ] . location , v . red , v . green , v . blue )
} ` ,codeUbo:i=> `
v = uv . $ { i } ;
data [ offset ] = v . red ;
data [ offset + 1 ] = v . green ;
data [ offset + 2 ] = v . blue ;
` },{test:i=>i.type==="vec4"&&i.size===1&&!i.isArray,code:i=> `
cv = ud [ "${i}" ] . value ;
v = uv [ "${i}" ] ;
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] || cv [ 2 ] !== v [ 2 ] || cv [ 3 ] !== v [ 3 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
cv [ 2 ] = v [ 2 ] ;
cv [ 3 ] = v [ 3 ] ;
gl . uniform4f ( ud [ "${i}" ] . location , v [ 0 ] , v [ 1 ] , v [ 2 ] , v [ 3 ] )
} ` }],Kc={float: `
if ( cv !== v )
{
cu . value = v ;
gl . uniform1f ( location , v ) ;
} ` ,vec2: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
gl . uniform2f ( location , v [ 0 ] , v [ 1 ] )
} ` ,vec3: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] || cv [ 2 ] !== v [ 2 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
cv [ 2 ] = v [ 2 ] ;
gl . uniform3f ( location , v [ 0 ] , v [ 1 ] , v [ 2 ] )
} ` ,vec4: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] || cv [ 2 ] !== v [ 2 ] || cv [ 3 ] !== v [ 3 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
cv [ 2 ] = v [ 2 ] ;
cv [ 3 ] = v [ 3 ] ;
gl . uniform4f ( location , v [ 0 ] , v [ 1 ] , v [ 2 ] , v [ 3 ] ) ;
} ` ,int: `
if ( cv !== v )
{
cu . value = v ;
gl . uniform1i ( location , v ) ;
} ` ,ivec2: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
gl . uniform2i ( location , v [ 0 ] , v [ 1 ] ) ;
} ` ,ivec3: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] || cv [ 2 ] !== v [ 2 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
cv [ 2 ] = v [ 2 ] ;
gl . uniform3i ( location , v [ 0 ] , v [ 1 ] , v [ 2 ] ) ;
} ` ,ivec4: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] || cv [ 2 ] !== v [ 2 ] || cv [ 3 ] !== v [ 3 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
cv [ 2 ] = v [ 2 ] ;
cv [ 3 ] = v [ 3 ] ;
gl . uniform4i ( location , v [ 0 ] , v [ 1 ] , v [ 2 ] , v [ 3 ] ) ;
} ` ,uint: `
if ( cv !== v )
{
cu . value = v ;
gl . uniform1ui ( location , v ) ;
} ` ,uvec2: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
gl . uniform2ui ( location , v [ 0 ] , v [ 1 ] ) ;
} ` ,uvec3: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] || cv [ 2 ] !== v [ 2 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
cv [ 2 ] = v [ 2 ] ;
gl . uniform3ui ( location , v [ 0 ] , v [ 1 ] , v [ 2 ] ) ;
} ` ,uvec4: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] || cv [ 2 ] !== v [ 2 ] || cv [ 3 ] !== v [ 3 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
cv [ 2 ] = v [ 2 ] ;
cv [ 3 ] = v [ 3 ] ;
gl . uniform4ui ( location , v [ 0 ] , v [ 1 ] , v [ 2 ] , v [ 3 ] ) ;
} ` ,bool: `
if ( cv !== v )
{
cu . value = v ;
gl . uniform1i ( location , v ) ;
} ` ,bvec2: `
if ( cv [ 0 ] != v [ 0 ] || cv [ 1 ] != v [ 1 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
gl . uniform2i ( location , v [ 0 ] , v [ 1 ] ) ;
} ` ,bvec3: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] || cv [ 2 ] !== v [ 2 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
cv [ 2 ] = v [ 2 ] ;
gl . uniform3i ( location , v [ 0 ] , v [ 1 ] , v [ 2 ] ) ;
} ` ,bvec4: `
if ( cv [ 0 ] !== v [ 0 ] || cv [ 1 ] !== v [ 1 ] || cv [ 2 ] !== v [ 2 ] || cv [ 3 ] !== v [ 3 ] )
{
cv [ 0 ] = v [ 0 ] ;
cv [ 1 ] = v [ 1 ] ;
cv [ 2 ] = v [ 2 ] ;
cv [ 3 ] = v [ 3 ] ;
gl . uniform4i ( location , v [ 0 ] , v [ 1 ] , v [ 2 ] , v [ 3 ] ) ;
} ` ,mat2:"gl.uniformMatrix2fv(location, false, v)",mat3:"gl.uniformMatrix3fv(location, false, v)",mat4:"gl.uniformMatrix4fv(location, false, v)",sampler2D: `
if ( cv !== v )
{
cu . value = v ;
gl . uniform1i ( location , v ) ;
} ` ,samplerCube: `
if ( cv !== v )
{
cu . value = v ;
gl . uniform1i ( location , v ) ;
} ` ,sampler2DArray: `
if ( cv !== v )
{
cu . value = v ;
gl . uniform1i ( location , v ) ;
} ` },Zc={float:"gl.uniform1fv(location, v)",vec2:"gl.uniform2fv(location, v)",vec3:"gl.uniform3fv(location, v)",vec4:"gl.uniform4fv(location, v)",mat4:"gl.uniformMatrix4fv(location, false, v)",mat3:"gl.uniformMatrix3fv(location, false, v)",mat2:"gl.uniformMatrix2fv(location, false, v)",int:"gl.uniform1iv(location, v)",ivec2:"gl.uniform2iv(location, v)",ivec3:"gl.uniform3iv(location, v)",ivec4:"gl.uniform4iv(location, v)",uint:"gl.uniform1uiv(location, v)",uvec2:"gl.uniform2uiv(location, v)",uvec3:"gl.uniform3uiv(location, v)",uvec4:"gl.uniform4uiv(location, v)",bool:"gl.uniform1iv(location, v)",bvec2:"gl.uniform2iv(location, v)",bvec3:"gl.uniform3iv(location, v)",bvec4:"gl.uniform4iv(location, v)",sampler2D:"gl.uniform1iv(location, v)",samplerCube:"gl.uniform1iv(location, v)",sampler2DArray:"gl.uniform1iv(location, v)"};function Qc(i,t){var e;const s=[ `
var v = null ;
var cv = null ;
var cu = null ;
var t = 0 ;
var gl = renderer . gl ;
` ];for(const r in i.uniforms){const n=t[r];if(!n){((e=i.uniforms[r])==null?void 0:e.group)===!0&&(i.uniforms[r].ubo?s.push( `
renderer . shader . syncUniformBufferGroup ( uv . $ { r } , '${r}' ) ;
` ):s.push( `
renderer . shader . syncUniformGroup ( uv . $ { r } , syncData ) ;
` ));continue}const a=i.uniforms[r];let o=!1;for(let h=0;h<Fe.length;h++)if(Fe[h].test(n,a)){s.push(Fe[h].code(r,a)),o=!0;break}if(!o){const h=(n.size===1&&!n.isArray?Kc:Zc)[n.type].replace("location", ` ud [ "${r}" ] . location ` );s.push( `
cu = ud [ "${r}" ] ;
cv = cu . value ;
v = uv [ "${r}" ] ;
$ { h } ; ` )}}return new Function("ud","uv","renderer","syncData",s.join( `
` ))}const bo={};let xs=bo;function To(){if(xs===bo||xs!=null&&xs.isContextLost()){const i=O.ADAPTER.createCanvas();let t;O.PREFER_ENV>=_e.WEBGL2&&(t=i.getContext("webgl2",{})),t||(t=i.getContext("webgl",{})||i.getContext("experimental-webgl",{}),t?t.getExtension("WEBGL_draw_buffers"):t=null),xs=t}return xs}let xi;function Jc(){if(!xi){xi=At.MEDIUM;const i=To();if(i&&i.getShaderPrecisionFormat){const t=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT);t&&(xi=t.precision?At.HIGH:At.MEDIUM)}}return xi}function Eo(i,t){const e=i.getShaderSource(t).split( `
` ).map((l,u)=> ` $ { u } : $ { l } ` ),s=i.getShaderInfoLog(t),r=s.split( `
` ),n={},a=r.map(l=>parseFloat(l.replace(/^ERROR \: 0 \: ([ \d ]+) \: .* $ /," $ 1"))).filter(l=>l&&!n[l]?(n[l]=!0,!0):!1),o=[""];a.forEach(l=>{e[l-1]= ` % c$ { e [ l - 1 ] } % c ` ,o.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});const h=e.join( `
` );o[0]=h,console.error(s),console.groupCollapsed("click to view full shader code"),console.warn(...o),console.groupEnd()}function td(i,t,e,s){i.getProgramParameter(t,i.LINK_STATUS)||(i.getShaderParameter(e,i.COMPILE_STATUS)||Eo(i,e),i.getShaderParameter(s,i.COMPILE_STATUS)||Eo(i,s),console.error("PixiJS Error: Could not initialize shader."),i.getProgramInfoLog(t)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",i.getProgramInfoLog(t)))}const ed={float:1,vec2:2,vec3:3,vec4:4,int:1,ivec2:2,ivec3:3,ivec4:4,uint:1,uvec2:2,uvec3:3,uvec4:4,bool:1,bvec2:2,bvec3:3,bvec4:4,mat2:4,mat3:9,mat4:16,sampler2D:1};function Ao(i){return ed[i]}let bi=null;const wo={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray"};function So(i,t){if(!bi){const e=Object.keys(wo);bi={};for(let s=0;s<e.length;++s){const r=e[s];bi[i[r]]=wo[r]}}return bi[t]}function Ro(i,t,e){if(i.substring(0,9)!=="precision"){let s=t;return t===At.HIGH&&e!==At.HIGH&&(s=At.MEDIUM), ` precision $ { s } float ;
$ { i } ` }else if(e!==At.HIGH&&i.substring(0,15)==="precision highp")return i.replace("precision highp","precision mediump");return i}let bs;function Io(){if(typeof bs=="boolean")return bs;try{bs=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch(i){bs=!1}return bs}let sd=0;const Ti={},Wr=class rs{constructor(t,e,s="pixi-shader",r={}){this.extra={},this.id=sd++,this.vertexSrc=t||rs.defaultVertexSrc,this.fragmentSrc=e||rs.defaultFragmentSrc,this.vertexSrc=this.vertexSrc.trim(),this.fragmentSrc=this.fragmentSrc.trim(),this.extra=r,this.vertexSrc.substring(0,8)!=="#version"&&(s=s.replace(/ \s +/g,"-"),Ti[s]?(Ti[s]++,s+= ` - $ { Ti [ s ] } ` ):Ti[s]=1,this.vertexSrc= ` # define SHADER _NAME $ { s }
$ { this . vertexSrc } ` ,this.fragmentSrc= ` # define SHADER _NAME $ { s }
$ { this . fragmentSrc } ` ,this.vertexSrc=Ro(this.vertexSrc,rs.defaultVertexPrecision,At.HIGH),this.fragmentSrc=Ro(this.fragmentSrc,rs.defaultFragmentPrecision,Jc())),this.glPrograms={},this.syncUniforms=null}static get defaultVertexSrc(){return qc}static get defaultFragmentSrc(){return Yc}static from(t,e,s){const r=t+e;let n=Dr[r];return n||(Dr[r]=n=new rs(t,e,s)),n}};Wr.defaultVertexPrecision=At.HIGH,Wr.defaultFragmentPrecision= $ t.apple.device?At.HIGH:At.MEDIUM;let Qt=Wr,id=0;class Ot{constructor(t,e,s){this.group=!0,this.syncUniforms={},this.dirtyId=0,this.id=id++,this.static=!!e,this.ubo=!!s,t instanceof nt?(this.buffer=t,this.buffer.type=Gt.UNIFORM_BUFFER,this.autoManage=!1,this.ubo=!0):(this.uniforms=t,this.ubo&&(this.buffer=new nt(new Float32Array(1)),this.buffer.type=Gt.UNIFORM_BUFFER,this.autoManage=!0))}update(){this.dirtyId++,!this.autoManage&&this.buffer&&this.buffer.update()}add(t,e,s){if(!this.ubo)this.uniforms[t]=new Ot(e,s);else throw new Error("[UniformGroup] uniform groups in ubo mode cannot be modified, or have uniform groups nested in them")}static from(t,e,s){return new Ot(t,e,s)}static uboFrom(t,e){return new Ot(t,e!=null?e:!0,!0)}}class Xt{constructor(t,e){this.uniformBindCount=0,this.program=t,e?e instanceof Ot?this.uniformGroup=e:this.uniformGroup=new Ot(e):this.uniformGroup=new Ot({}),this.disposeRunner=new St("disposeShader")}checkUniformExists(t,e){if(e.uniforms[t])return!0;for(const s in e.uniforms){const r=e.uniforms[s];if(r.group===!0&&this.checkUniformExists(t,r))return!0}return!1}destroy(){this.uniformGroup=null,this.disposeRunner.emit(this),this.disposeRunner.destroy()}get uniforms(){return this.uniformGroup.uniforms}static from(t,e,s){const r=Qt.from(t,e);return new Xt(r,s)}}class Co{constructor(t,e){if(this.vertexSrc=t,this.fragTemplate=e,this.programCache={},this.defaultGroupCache={},!e.includes("%count%"))throw new Error('Fragment template must contain "%count%".');if(!e.includes("%forloop%"))throw new Error('Fragment template must contain "%forloop%".')}generateShader(t){if(!this.programCache[t]){const s=new Int32Array(t);for(let n=0;n<t;n++)s[n]=n;this.defaultGroupCache[t]=Ot.from({uSamplers:s},!0);let r=this.fragTemplate;r=r.replace(/%count%/gi, ` $ { t } ` ),r=r.replace(/%forloop%/gi,this.generateSampleSrc(t)),this.programCache[t]=new Qt(this.vertexSrc,r)}const e={tint:new Float32Array([1,1,1,1]),translationMatrix:new tt,default:this.defaultGroupCache[t]};return new Xt(this.programCache[t],e)}generateSampleSrc(t){let e="";e+= `
` ,e+= `
` ;for(let s=0;s<t;s++)s>0&&(e+= `
else ` ),s<t-1&&(e+= ` if ( vTextureId < $ { s } . 5 ) ` ),e+= `
{ ` ,e+= `
color = texture2D ( uSamplers [ $ { s } ] , vTextureCoord ) ; ` ,e+= `
} ` ;return e+= `
` ,e+= `
` ,e}}class Ei{constructor(){this.elements=[],this.ids=[],this.count=0}clear(){for(let t=0;t<this.count;t++)this.elements[t]=null;this.count=0}}function rd(){return! $ t.apple.device}function nd(i){let t=!0;const e=O.ADAPTER.getNavigator();if( $ t.tablet|| $ t.phone){if( $ t.apple.device){const s=e.userAgent.match(/OS ( \d +)_( \d +)?/);s&&parseInt(s[1],10)<11&&(t=!1)}if( $ t.android.device){const s=e.userAgent.match(/Android \s ([0-9.]*)/);s&&parseInt(s[1],10)<7&&(t=!1)}}return t?i:4}class Ts{constructor(t){this.renderer=t}flush(){}destroy(){this.renderer=null}start(){}stop(){this.flush()}render(t){}}var ad= ` varying vec2 vTextureCoord ;
varying vec4 vColor ;
varying float vTextureId ;
uniform sampler2D uSamplers [ % count % ] ;
void main ( void ) {
vec4 color ;
% forloop %
gl _FragColor = color * vColor ;
}
` ,od= ` precision highp float ;
attribute vec2 aVertexPosition ;
attribute vec2 aTextureCoord ;
attribute vec4 aColor ;
attribute float aTextureId ;
uniform mat3 projectionMatrix ;
uniform mat3 translationMatrix ;
uniform vec4 tint ;
varying vec2 vTextureCoord ;
varying vec4 vColor ;
varying float vTextureId ;
void main ( void ) {
gl _Position = vec4 ( ( projectionMatrix * translationMatrix * vec3 ( aVertexPosition , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
vTextureCoord = aTextureCoord ;
vTextureId = aTextureId ;
vColor = aColor * tint ;
}
` ;const Es=class jt extends Ts{constructor(t){super(t),this.setShaderGenerator(),this.geometryClass=Hr,this.vertexSize=6,this.state=Zt.for2d(),this.size=jt.defaultBatchSize*4,this._vertexCount=0,this._indexCount=0,this._bufferedElements=[],this._bufferedTextures=[],this._bufferSize=0,this._shader=null,this._packedGeometries=[],this._packedGeometryPoolSize=2,this._flushId=0,this._aBuffers={},this._iBuffers={},this.maxTextures=1,this.renderer.on("prerender",this.onPrerender,this),t.runners.contextChange.add(this),this._dcIndex=0,this._aIndex=0,this._iIndex=0,this._attributeBuffer=null,this._indexBuffer=null,this._tempBoundTextures=[]}static get defaultMaxTextures(){var t;return this._defaultMaxTextures=(t=this._defaultMaxTextures)!=null?t:nd(32),this._defaultMaxTextures}static set defaultMaxTextures(t){this._defaultMaxTextures=t}static get canUploadSameBuffer(){var t;return this._canUploadSameBuffer=(t=this._canUploadSameBuffer)!=null?t:rd(),this._canUploadSameBuffer}static set canUploadSameBuffer(t){this._canUploadSameBuffer=t}get MAX_TEXTURES(){return this.maxTextures}static get defaultVertexSrc(){return od}static get defaultFragmentTemplate(){return ad}setShaderGenerator({vertex:t=jt.defaultVertexSrc,fragment:e=jt.defaultFragmentTemplate}={}){this.shaderGenerator=new Co(t,e)}contextChange(){const t=this.renderer.gl;O.PREFER_ENV===_e.WEBGL_LEGACY?this.maxTextures=1:(this.maxTextures=Math.min(t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),jt.defaultMaxTextures),this.maxTextures=co(this.maxTextures,t)),this._shader=this.shaderGenerator.generateShader(this.maxTextures);for(let e=0;e<this._packedGeometryPoolSize;e++)this._packedGeometries[e]=new this.geometryClass;this.initFlushBuffers()}initFlushBuffers(){const{_drawCallPool:t,_textureArrayPool:e}=jt,s=this.size/4,r=Math.floor(s/this.maxTextures)+1;for(;t.length<s;)t.push(new fi);for(;e.length<r;)e.push(new Ei);for(let n=0;n<this.maxTextures;n++)this._tempBoundTextures[n]=null}onPrerender(){this._flushId=0}render(t){t._texture.valid&&(this._vertexCount+t.vertexData.length/2>this.size&&this.flush(),this._vertexCount+=t.vertexData.length/2,this._indexCount+=t.indices.length,this._bufferedTextures[this._bufferSize]=t._texture.baseTexture,this._bufferedElements[this._bufferSize++]=t)}buildTexturesAndDrawCalls(){const{_bufferedTextures:t,maxTextures:e}=this,s=jt._textureArrayPool,r=this.renderer.batch,n=this._tempBoundTextures,a=this.renderer.textureGC.count;let o=++V._globalBatch,h=0,l=s[0],u=0;r.copyBoundTextures(n,e);for(let c=0;c<this._bufferSize;++c){const d=t[c];t[c]=null,d._batchEnabled!==o&&(l.count>=e&&(r.boundArray(l,n,o,e),this.buildDrawCalls(l,u,c),u=c,l=s[++h],++o),d._batchEnabled=o,d.touched=a,l.elements[l.count++]=d)}l.count>0&&(r.boundArray(l,n,o,e),this.buildDrawCalls(l,u,this._bufferSize),++h,++o);for(let c=0;c<n.length;c++)n[c]=null;V._globalBatch=o}buildDrawCalls(t,e,s){const{_bufferedElements:r,_attributeBuffer:n,_indexBuffer:a,vertexSize:o}=this,h=jt._drawCallPool;let l=this._dcIndex,u=this._aIndex,c=this._iIndex,d=h[l];d.start=this._iIndex,d.texArray=t;for(let f=e;f<s;++f){const p=r[f],m=p._texture.baseTexture,g=Sr[m.alphaMode?1:0][p.blendMode];r[f]=null,e<f&&d.blend!==g&&(d.size=c-d.start,e=f,d=h[++l],d.texArray=t,d.start=c),this.packInterleavedGeometry(p,n,a,u,c),u+=p.vertexData.length/2*o,c+=p.indices.length,d.blend=g}e<s&&(d.size=c-d.start,++l),this._dcIndex=l,this._aIndex=u,this._iIndex=c}bindAndClearTexArray(t){const e=this.renderer.texture;for(let s=0;s<t.count;s++)e.bind(t.elements[s],t.ids[s]),t.elements[s]=null;t.count=0}updateGeometry(){const{_packedGeometries:t,_attributeBuffer:e,_indexBuffer:s}=this;jt.canUploadSameBuffer?(t[this._flushId]._buffer.update(e.rawBinaryData),t[this._flushId]._indexBuffer.update(s),this.renderer.geometry.updateBuffers()):(this._packedGeometryPoolSize<=this._flushId&&(this._packedGeometryPoolSize++,t[this._flushId]=new this.geometryClass),t[this._flushId]._buffer.update(e.rawBinaryData),t[this._flushId]._indexBuffer.update(s),this.renderer.geometry.bind(t[this._flushId]),this.renderer.geometry.updateBuffers(),this._
uniform sampler2D uSampler ;
void main ( void ) {
gl _FragColor = texture2D ( uSampler , vTextureCoord ) ;
}
` ,ld= ` attribute vec2 aVertexPosition ;
uniform mat3 projectionMatrix ;
varying vec2 vTextureCoord ;
uniform vec4 inputSize ;
uniform vec4 outputFrame ;
vec4 filterVertexPosition ( void )
{
vec2 position = aVertexPosition * max ( outputFrame . zw , vec2 ( 0. ) ) + outputFrame . xy ;
return vec4 ( ( projectionMatrix * vec3 ( position , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
}
vec2 filterTextureCoord ( void )
{
return aVertexPosition * ( outputFrame . zw * inputSize . zw ) ;
}
void main ( void )
{
gl _Position = filterVertexPosition ( ) ;
vTextureCoord = filterTextureCoord ( ) ;
}
` ;const zr=class Ys extends Xt{constructor(t,e,s){const r=Qt.from(t||Ys.defaultVertexSrc,e||Ys.defaultFragmentSrc);super(r,s),this.padding=0,this.resolution=Ys.defaultResolution,this.multisample=Ys.defaultMultisample,this.enabled=!0,this.autoFit=!0,this.state=new Zt}apply(t,e,s,r,n){t.applyFilter(this,e,s,r)}get blendMode(){return this.state.blendMode}set blendMode(t){this.state.blendMode=t}get resolution(){return this._resolution}set resolution(t){this._resolution=t}static get defaultVertexSrc(){return ld}static get defaultFragmentSrc(){return hd}};zr.defaultResolution=1,zr.defaultMultisample=at.NONE;let xt=zr;class As{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new Z(0),this.alpha=1}init(t){this.clearBeforeRender=t.clearBeforeRender;const{backgroundColor:e,background:s,backgroundAlpha:r}=t,n=s!=null?s:e;n!==void 0&&(this.color=n),this.alpha=r}get color(){return this._backgroundColor.value}set color(t){this._backgroundColor.setValue(t)}get alpha(){return this._backgroundColor.alpha}set alpha(t){this._backgroundColor.setAlpha(t)}get backgroundColor(){return this._backgroundColor}destroy(){}}As.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0},As.extension={type:[I.RendererSystem,I.CanvasRendererSystem],name:"background"},L.add(As);class Yr{constructor(t){this.renderer=t,this.emptyRenderer=new Ts(t),this.currentRenderer=this.emptyRenderer}setObjectRenderer(t){this.currentRenderer!==t&&(this.currentRenderer.stop(),this.currentRenderer=t,this.currentRenderer.start())}flush(){this.setObjectRenderer(this.emptyRenderer)}reset(){this.setObjectRenderer(this.emptyRenderer)}copyBoundTextures(t,e){const{boundTextures:s}=this.renderer.texture;for(let r=e-1;r>=0;--r)t[r]=s[r]||null,t[r]&&(t[r]._batchLocation=r)}boundArray(t,e,s,r){const{elements:n,ids:a,count:o}=t;let h=0;for(let l=0;l<o;l++){const u=n[l],c=u._batchLocation;if(c>=0&&c<r&&e[c]===u){a[l]=c;continue}for(;h<r;){const d=e[h];if(d&&d._batchEnabled===s&&d._batchLocation===h){h++;continue}a[l]=h,u._batchLocation=h,e[h]=u;break}}}destroy(){this.renderer=null}}Yr.extension={type:I.RendererSystem,name:"batch"},L.add(Yr);let Po=0;class ws{constructor(t){this.renderer=t,this.webGLVersion=1,this.extensions={},this.supports={uint32Indices:!1},this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(t){this.gl=t,this.renderer.gl=t,this.renderer.CONTEXT_UID=Po++}init(t){if(t.context)this.initFromContext(t.context);else{const e=this.renderer.background.alpha<1,s=t.premultipliedAlpha;this.preserveDrawingBuffer=t.preserveDrawingBuffer,this.useContextAlpha=t.useContextAlpha,this.powerPreference=t.powerPreference,this.initFromOptions({alpha:e,premultipliedAlpha:s,antialias:t.antialias,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference})}}initFromContext(t){this.gl=t,this.validateContext(t),this.renderer.gl=t,this.renderer.CONTEXT_UID=Po++,this.renderer.runners.contextChange.emit(t);const e=this.renderer.view;e.addEventListener!==void 0&&(e.addEventListener("webglcontextlost",this.handleContextLost,!1),e.addEventListener("webglcontextrestored",this.handleContextRestored,!1))}initFromOptions(t){const e=this.createContext(this.renderer.view,t);this.initFromContext(e)}createContext(t,e){let s;if(O.PREFER_ENV>=_e.WEBGL2&&(s=t.getContext("webgl2",e)),s)this.webGLVersion=2;else if(this.webGLVersion=1,s=t.getContext("webgl",e)||t.getContext("experimental-webgl",e),!s)throw new Error("This browser does not support WebGL. Try using the canvas renderer");return this.gl=s,this.getExtensions(),this.gl}getExtensions(){const{gl:t}=this,e={loseContext:t.getExtension("WEBGL_lose_context"),anisotropicFiltering:t.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),s3tc:t.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:t.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:t.getExtension("WEBGL_compressed_texture_etc"),etc1:t.g
varying vec2 vTextureCoord ;
uniform sampler2D uSampler ;
uniform sampler2D mask ;
uniform float alpha ;
uniform float npmAlpha ;
uniform vec4 maskClamp ;
void main ( void )
{
float clip = step ( 3.5 ,
step ( maskClamp . x , vMaskCoord . x ) +
step ( maskClamp . y , vMaskCoord . y ) +
step ( vMaskCoord . x , maskClamp . z ) +
step ( vMaskCoord . y , maskClamp . w ) ) ;
vec4 original = texture2D ( uSampler , vTextureCoord ) ;
vec4 masky = texture2D ( mask , vMaskCoord ) ;
float alphaMul = 1.0 - npmAlpha * ( 1.0 - masky . a ) ;
original *= ( alphaMul * masky . r * alpha * clip ) ;
gl _FragColor = original ;
}
` ,dd= ` attribute vec2 aVertexPosition ;
attribute vec2 aTextureCoord ;
uniform mat3 projectionMatrix ;
uniform mat3 otherMatrix ;
varying vec2 vMaskCoord ;
varying vec2 vTextureCoord ;
void main ( void )
{
gl _Position = vec4 ( ( projectionMatrix * vec3 ( aVertexPosition , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
vTextureCoord = aTextureCoord ;
vMaskCoord = ( otherMatrix * vec3 ( aTextureCoord , 1.0 ) ) . xy ;
}
` ;class No extends xt{constructor(t,e,s){let r=null;typeof t!="string"&&e===void 0&&s===void 0&&(r=t,t=void 0,e=void 0,s=void 0),super(t||dd,e||cd,s),this.maskSprite=r,this.maskMatrix=new tt}get maskSprite(){return this._maskSprite}set maskSprite(t){this._maskSprite=t,this._maskSprite&&(this._maskSprite.renderable=!1)}apply(t,e,s,r){const n=this._maskSprite,a=n._texture;a.valid&&(a.uvMatrix||(a.uvMatrix=new Ri(a,0)),a.uvMatrix.update(),this.uniforms.npmAlpha=a.baseTexture.alphaMode?0:1,this.uniforms.mask=a,this.uniforms.otherMatrix=t.calculateSpriteMatrix(this.maskMatrix,n).prepend(a.uvMatrix.mapCoord),this.uniforms.alpha=n.worldAlpha,this.uniforms.maskClamp=a.uvMatrix.uClampFrame,t.applyFilter(this,e,s,r))}}class Lo{constructor(t=null){this.type=ht.NONE,this.autoDetect=!0,this.maskObject=t||null,this.pooled=!1,this.isMaskData=!0,this.resolution=null,this.multisample=xt.defaultMultisample,this.enabled=!0,this.colorMask=15,this._filters=null,this._stencilCounter=0,this._scissorCounter=0,this._scissorRect=null,this._scissorRectLocal=null,this._colorMask=15,this._target=null}get filter(){return this._filters?this._filters[0]:null}set filter(t){t?this._filters?this._filters[0]=t:this._filters=[t]:this._filters=null}reset(){this.pooled&&(this.maskObject=null,this.type=ht.NONE,this.autoDetect=!0),this._target=null,this._scissorRectLocal=null}copyCountersOrReset(t){t?(this._stencilCounter=t._stencilCounter,this._scissorCounter=t._scissorCounter,this._scissorRect=t._scissorRect):(this._stencilCounter=0,this._scissorCounter=0,this._scissorRect=null)}}class an{constructor(t){this.renderer=t,this.enableScissor=!0,this.alphaMaskPool=[],this.maskDataPool=[],this.maskStack=[],this.alphaMaskIndex=0}setMaskStack(t){this.maskStack=t,this.renderer.scissor.setMaskStack(t),this.renderer.stencil.setMaskStack(t)}push(t,e){let s=e;if(!s.isMaskData){const n=this.maskDataPool.pop()||new Lo;n.pooled=!0,n.maskObject=e,s=n}const r=this.maskStack.length!==0?this.maskStack[this.maskStack.length-1]:null;if(s.copyCountersOrReset(r),s._colorMask=r?r._colorMask:15,s.autoDetect&&this.detect(s),s._target=t,s.type!==ht.SPRITE&&this.maskStack.push(s),s.enabled)switch(s.type){case ht.SCISSOR:this.renderer.scissor.push(s);break;case ht.STENCIL:this.renderer.stencil.push(s);break;case ht.SPRITE:s.copyCountersOrReset(null),this.pushSpriteMask(s);break;case ht.COLOR:this.pushColorMask(s);break;default:break}s.type===ht.SPRITE&&this.maskStack.push(s)}pop(t){const e=this.maskStack.pop();if(!(!e||e._target!==t)){if(e.enabled)switch(e.type){case ht.SCISSOR:this.renderer.scissor.pop(e);break;case ht.STENCIL:this.renderer.stencil.pop(e.maskObject);break;case ht.SPRITE:this.popSpriteMask(e);break;case ht.COLOR:this.popColorMask(e);break;default:break}if(e.reset(),e.pooled&&this.maskDataPool.push(e),this.maskStack.length!==0){const s=this.maskStack[this.maskStack.length-1];s.type===ht.SPRITE&&s._filters&&(s._filters[0].maskSprite=s.maskObject)}}}detect(t){const e=t.maskObject;e?e.isSprite?t.type=ht.SPRITE:this.enableScissor&&this.renderer.scissor.testScissor(t)?t.type=ht.SCISSOR:t.type=ht.STENCIL:t.type=ht.COLOR}pushSpriteMask(t){const{maskObject:e}=t,s=t._target;let r=t._filters;r||(r=this.alphaMaskPool[this.alphaMaskIndex],r||(r=this.alphaMaskPool[this.alphaMaskIndex]=[new No])),r[0].resolution=t.resolution,r[0].multisample=t.multisample,r[0].maskSprite=e;const n=s.filterArea;s.filterArea=e.getBounds(!0),this.renderer.filter.push(s,r),s.filterArea=n,t._filters||this.alphaMaskIndex++}popSpriteMask(t){this.renderer.filter.pop(),t._filters?t._filters[0].maskSprite=null:(this.alphaMaskIndex--,this.alphaMaskPool[this.alphaMaskIndex][0].maskSprite=null)}pushColorMask(t){const e=t._colorMask,s=t._colorMask=e&t.colorMask;s!==e&&this.renderer.gl.colorMask((s&1)!==0,(s&2)!==0,(s&4)!==0,(s&8)!==0)}popColorMask(t){const e=t._colorMask,s=this.maskStack.length>0?this.maskStack[this.maskStack.length-1]._colorMask:15;s!==e&&this.renderer.gl.colorMask((s&1)!==0,(s&2)!==0,(s&4)!==0,(s&8)!==0)}destroy(){this.renderer=null}}an.extension={type:I.RendererSystem,name:"mask"},L.add(an);c
data [ offset ] = v ;
` ,vec2: `
data [ offset ] = v [ 0 ] ;
data [ offset + 1 ] = v [ 1 ] ;
` ,vec3: `
data [ offset ] = v [ 0 ] ;
data [ offset + 1 ] = v [ 1 ] ;
data [ offset + 2 ] = v [ 2 ] ;
` ,vec4: `
data [ offset ] = v [ 0 ] ;
data [ offset + 1 ] = v [ 1 ] ;
data [ offset + 2 ] = v [ 2 ] ;
data [ offset + 3 ] = v [ 3 ] ;
` ,mat2: `
data [ offset ] = v [ 0 ] ;
data [ offset + 1 ] = v [ 1 ] ;
data [ offset + 4 ] = v [ 2 ] ;
data [ offset + 5 ] = v [ 3 ] ;
` ,mat3: `
data [ offset ] = v [ 0 ] ;
data [ offset + 1 ] = v [ 1 ] ;
data [ offset + 2 ] = v [ 2 ] ;
data [ offset + 4 ] = v [ 3 ] ;
data [ offset + 5 ] = v [ 4 ] ;
data [ offset + 6 ] = v [ 5 ] ;
data [ offset + 8 ] = v [ 6 ] ;
data [ offset + 9 ] = v [ 7 ] ;
data [ offset + 10 ] = v [ 8 ] ;
` ,mat4: `
for ( var i = 0 ; i < 16 ; i ++ )
{
data [ offset + i ] = v [ i ] ;
}
` },zo={float:4,vec2:8,vec3:12,vec4:16,int:4,ivec2:8,ivec3:12,ivec4:16,uint:4,uvec2:8,uvec3:12,uvec4:16,bool:4,bvec2:8,bvec3:12,bvec4:16,mat2:16*2,mat3:16*3,mat4:16*4};function Yo(i){const t=i.map(n=>({data:n,offset:0,dataLen:0,dirty:0}));let e=0,s=0,r=0;for(let n=0;n<t.length;n++){const a=t[n];if(e=zo[a.data.type],a.data.size>1&&(e=Math.max(e,16)*a.data.size),a.dataLen=e,s%e!==0&&s<16){const o=s%e%16;s+=o,r+=o}s+e>16?(r=Math.ceil(r/16)*16,a.offset=r,r+=e,s=e):(a.offset=r,s+=e,r+=e)}return r=Math.ceil(r/16)*16,{uboElements:t,size:r}}function qo(i,t){const e=[];for(const s in i)t[s]&&e.push(t[s]);return e.sort((s,r)=>s.index-r.index),e}function Ko(i,t){if(!i.autoManage)return{size:0,syncFunc:xd};const e=qo(i.uniforms,t),{uboElements:s,size:r}=Yo(e),n=[ `
var v = null ;
var v2 = null ;
var cv = null ;
var t = 0 ;
var gl = renderer . gl
var index = 0 ;
var data = buffer . data ;
` ];for(let a=0;a<s.length;a++){const o=s[a],h=i.uniforms[o.data.name],l=o.data.name;let u=!1;for(let c=0;c<Fe.length;c++){const d=Fe[c];if(d.codeUbo&&d.test(o.data,h)){n.push( ` offset = $ { o . offset / 4 } ; ` ,Fe[c].codeUbo(o.data.name,h)),u=!0;break}}if(!u)if(o.data.size>1){const c=Ao(o.data.type),d=Math.max(zo[o.data.type]/16,1),f=c/d,p=(4-f%4)%4;n.push( `
cv = ud . $ { l } . value ;
v = uv . $ { l } ;
offset = $ { o . offset / 4 } ;
t = 0 ;
for ( var i = 0 ; i < $ { o . data . size * d } ; i ++ )
{
for ( var j = 0 ; j < $ { f } ; j ++ )
{
data [ offset ++ ] = v [ t ++ ] ;
}
offset += $ { p } ;
}
` )}else{const c=bd[o.data.type];n.push( `
cv = ud . $ { l } . value ;
v = uv . $ { l } ;
offset = $ { o . offset / 4 } ;
$ { c } ;
` )}}return n.push( `
renderer . buffer . update ( buffer ) ;
` ),{size:r,syncFunc:new Function("ud","uv","renderer","syncData","buffer",n.join( `
` ))}}let Td=0;const Ii={textureCount:0,uboCount:0};class dn{constructor(t){this.destroyed=!1,this.renderer=t,this.systemCheck(),this.gl=null,this.shader=null,this.program=null,this.cache={},this._uboCache={},this.id=Td++}systemCheck(){if(!Io())throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.")}contextChange(t){this.gl=t,this.reset()}bind(t,e){t.disposeRunner.add(this),t.uniforms.globals=this.renderer.globalUniforms;const s=t.program,r=s.glPrograms[this.renderer.CONTEXT_UID]||this.generateProgram(t);return this.shader=t,this.program!==s&&(this.program=s,this.gl.useProgram(r.program)),e||(Ii.textureCount=0,Ii.uboCount=0,this.syncUniformGroup(t.uniformGroup,Ii)),r}setUniforms(t){const e=this.shader.program,s=e.glPrograms[this.renderer.CONTEXT_UID];e.syncUniforms(s.uniformData,t,this.renderer)}syncUniformGroup(t,e){const s=this.getGlProgram();(!t.static||t.dirtyId!==s.uniformDirtyGroups[t.id])&&(s.uniformDirtyGroups[t.id]=t.dirtyId,this.syncUniforms(t,s,e))}syncUniforms(t,e,s){(t.syncUniforms[this.shader.program.id]||this.createSyncGroups(t))(e.uniformData,t.uniforms,this.renderer,s)}createSyncGroups(t){const e=this.getSignature(t,this.shader.program.uniformData,"u");return this.cache[e]||(this.cache[e]=Qc(t,this.shader.program.uniformData)),t.syncUniforms[this.shader.program.id]=this.cache[e],t.syncUniforms[this.shader.program.id]}syncUniformBufferGroup(t,e){const s=this.getGlProgram();if(!t.static||t.dirtyId!==0||!s.uniformGroups[t.id]){t.dirtyId=0;const r=s.uniformGroups[t.id]||this.createSyncBufferGroup(t,s,e);t.buffer.update(),r(s.uniformData,t.uniforms,this.renderer,Ii,t.buffer)}this.renderer.buffer.bindBufferBase(t.buffer,s.uniformBufferBindings[e])}createSyncBufferGroup(t,e,s){const{gl:r}=this.renderer;this.renderer.buffer.bind(t.buffer);const n=this.gl.getUniformBlockIndex(e.program,s);e.uniformBufferBindings[s]=this.shader.uniformBindCount,r.uniformBlockBinding(e.program,n,this.shader.uniformBindCount),this.shader.uniformBindCount++;const a=this.getSignature(t,this.shader.program.uniformData,"ubo");let o=this._uboCache[a];if(o||(o=this._uboCache[a]=Ko(t,this.shader.program.uniformData)),t.autoManage){const h=new Float32Array(o.size/4);t.buffer.update(h)}return e.uniformGroups[t.id]=o.syncFunc,e.uniformGroups[t.id]}getSignature(t,e,s){const r=t.uniforms,n=[ ` $ { s } - ` ];for(const a in r)n.push(a),e[a]&&n.push(e[a].type);return n.join("-")}getGlProgram(){return this.shader?this.shader.program.glPrograms[this.renderer.CONTEXT_UID]:null}generateProgram(t){const e=this.gl,s=t.program,r=Wo(e,s);return s.glPrograms[this.renderer.CONTEXT_UID]=r,r}reset(){this.program=null,this.shader=null}disposeShader(t){this.shader===t&&(this.shader=null)}destroy(){this.renderer=null,this.destroyed=!0}}dn.extension={type:I.RendererSystem,name:"shader"},L.add(dn);class Rs{constructor(t){this.renderer=t}run(t){const{renderer:e}=this;e.runners.init.emit(e.options),t.hello&&console.log( ` PixiJS 7.4 . 2 - $ { e . rendererLogId } - https : //pixijs.com`),e.resize(e.screen.width,e.screen.height)}destroy(){}}Rs.defaultOptions={hello:!1},Rs.extension={type:[I.RendererSystem,I.CanvasRendererSystem],name:"startup"},L.add(Rs);function Ed(i,t=[]){return t[H.NORMAL]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.ADD]=[i.ONE,i.ONE],t[H.MULTIPLY]=[i.DST_COLOR,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.SCREEN]=[i.ONE,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.OVERLAY]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.DARKEN]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.LIGHTEN]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.COLOR_DODGE]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.COLOR_BURN]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.HARD_LIGHT]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.SOFT_LIGHT]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.DIFFERENCE]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.EXCLUSION]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.HUE]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.SATURATION]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.COLOR]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.LUMINOSITY]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t[H.NONE]=[0,0],t[H.NORMAL_NPM]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_ALP
attribute vec2 aTextureCoord ;
uniform mat3 projectionMatrix ;
varying vec2 vTextureCoord ;
void main ( void )
{
gl _Position = vec4 ( ( projectionMatrix * vec3 ( aVertexPosition , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
vTextureCoord = aTextureCoord ;
} ` ,Nd= ` attribute vec2 aVertexPosition ;
uniform mat3 projectionMatrix ;
varying vec2 vTextureCoord ;
uniform vec4 inputSize ;
uniform vec4 outputFrame ;
vec4 filterVertexPosition ( void )
{
vec2 position = aVertexPosition * max ( outputFrame . zw , vec2 ( 0. ) ) + outputFrame . xy ;
return vec4 ( ( projectionMatrix * vec3 ( position , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
}
vec2 filterTextureCoord ( void )
{
return aVertexPosition * ( outputFrame . zw * inputSize . zw ) ;
}
void main ( void )
{
gl _Position = filterVertexPosition ( ) ;
vTextureCoord = filterTextureCoord ( ) ;
}
` ;const nh=Fd,_n=Nd;class vn{constructor(t){this.renderer=t}contextChange(t){let e;if(this.renderer.context.webGLVersion===1){const s=t.getParameter(t.FRAMEBUFFER_BINDING);t.bindFramebuffer(t.FRAMEBUFFER,null),e=t.getParameter(t.SAMPLES),t.bindFramebuffer(t.FRAMEBUFFER,s)}else{const s=t.getParameter(t.DRAW_FRAMEBUFFER_BINDING);t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),e=t.getParameter(t.SAMPLES),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,s)}e>=at.HIGH?this.multisample=at.HIGH:e>=at.MEDIUM?this.multisample=at.MEDIUM:e>=at.LOW?this.multisample=at.LOW:this.multisample=at.NONE}destroy(){}}vn.extension={type:I.RendererSystem,name:"_multisample"},L.add(vn);class Ld{constructor(t){this.buffer=t||null,this.updateID=-1,this.byteLength=-1,this.refCount=0}}class yn{constructor(t){this.renderer=t,this.managedBuffers={},this.boundBufferBases={}}destroy(){this.renderer=null}contextChange(){this.disposeAll(!0),this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(t){const{gl:e,CONTEXT_UID:s}=this,r=t._glBuffers[s]||this.createGLBuffer(t);e.bindBuffer(t.type,r.buffer)}unbind(t){const{gl:e}=this;e.bindBuffer(t,null)}bindBufferBase(t,e){const{gl:s,CONTEXT_UID:r}=this;if(this.boundBufferBases[e]!==t){const n=t._glBuffers[r]||this.createGLBuffer(t);this.boundBufferBases[e]=t,s.bindBufferBase(s.UNIFORM_BUFFER,e,n.buffer)}}bindBufferRange(t,e,s){const{gl:r,CONTEXT_UID:n}=this;s=s||0;const a=t._glBuffers[n]||this.createGLBuffer(t);r.bindBufferRange(r.UNIFORM_BUFFER,e||0,a.buffer,s*256,256)}update(t){const{gl:e,CONTEXT_UID:s}=this,r=t._glBuffers[s]||this.createGLBuffer(t);if(t._updateID!==r.updateID)if(r.updateID=t._updateID,e.bindBuffer(t.type,r.buffer),r.byteLength>=t.data.byteLength)e.bufferSubData(t.type,0,t.data);else{const n=t.static?e.STATIC_DRAW:e.DYNAMIC_DRAW;r.byteLength=t.data.byteLength,e.bufferData(t.type,t.data,n)}}dispose(t,e){if(!this.managedBuffers[t.id])return;delete this.managedBuffers[t.id];const s=t._glBuffers[this.CONTEXT_UID],r=this.gl;t.disposeRunner.remove(this),s&&(e||r.deleteBuffer(s.buffer),delete t._glBuffers[this.CONTEXT_UID])}disposeAll(t){const e=Object.keys(this.managedBuffers);for(let s=0;s<e.length;s++)this.dispose(this.managedBuffers[e[s]],t)}createGLBuffer(t){const{CONTEXT_UID:e,gl:s}=this;return t._glBuffers[e]=new Ld(s.createBuffer()),this.managedBuffers[t.id]=t,t.disposeRunner.add(this),t._glBuffers[e]}}yn.extension={type:I.RendererSystem,name:"buffer"},L.add(yn);class xn{constructor(t){this.renderer=t}render(t,e){const s=this.renderer;let r,n,a,o;if(e&&(r=e.renderTexture,n=e.clear,a=e.transform,o=e.skipUpdateTransform),this.renderingToScreen=!r,s.runners.prerender.emit(),s.emit("prerender"),s.projection.transform=a,!s.context.isLost){if(r||(this.lastObjectRendered=t),!o){const h=t.enableTempParent();t.updateTransform(),t.disableTempParent(h)}s.renderTexture.bind(r),s.batch.currentRenderer.start(),(n!=null?n:s.background.clearBeforeRender)&&s.renderTexture.clear(),t.render(s),s.batch.currentRenderer.flush(),r&&(e.blit&&s.framebuffer.blit(),r.baseTexture.update()),s.runners.postrender.emit(),s.projection.transform=null,s.emit("postrender")}}destroy(){this.renderer=null,this.lastObjectRendered=null}}xn.extension={type:I.RendererSystem,name:"objectRenderer"},L.add(xn);const Mi=class ea extends Jo{constructor(t){super(),this.type=lr.WEBGL,t=Object.assign({},O.RENDER_OPTIONS,t),this.gl=null,this.CONTEXT_UID=0,this.globalUniforms=new Ot({projectionMatrix:new tt},!0);const e={runners:["init","destroy","contextChange","resolutionChange","reset","update","postrender","prerender","resize"],systems:ea.__systems,priority:["_view","textureGenerator","background","_plugin","startup","context","state","texture","buffer","geometry","framebuffer","transformFeedback","mask","scissor","stencil","projection","textureGC","filter","renderTexture","batch","objectRenderer","_multisample"]};this.setup(e),"useContextAlpha"in t&&(t.premultipliedAlpha=t.useContextAlpha&&t.useContextAlpha!=="notMultiplied",t.backgroundAlpha=t.useContextAlpha===!1?1:t.backgroundAlpha),this._plugin.rendererPlugins=ea.__plugins,this.o
uniform sampler2D uSampler ;
uniform float uAlpha ;
void main ( void )
{
gl _FragColor = texture2D ( uSampler , vTextureCoord ) * uAlpha ;
}
` ;class fh extends xt{constructor(t=1){super(nh,jd,{uAlpha:1}),this.alpha=t}get alpha(){return this.uniforms.uAlpha}set alpha(t){this.uniforms.uAlpha=t}}const Wd={5:[.153388,.221461,.250301],7:[.071303,.131514,.189879,.214607],9:[.028532,.067234,.124009,.179044,.20236],11:[.0093,.028002,.065984,.121703,.175713,.198596],13:[.002406,.009255,.027867,.065666,.121117,.174868,.197641],15:[489e-6,.002403,.009246,.02784,.065602,.120999,.174697,.197448]},zd=["varying vec2 vBlurTexCoords[%size%];","uniform sampler2D uSampler;","void main(void)","{"," gl_FragColor = vec4(0.0);"," %blur%","}"].join( `
` );function Yd(i){const t=Wd[i],e=t.length;let s=zd,r="";const n="gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;";let a;for(let o=0;o<i;o++){let h=n.replace("%index%",o.toString());a=o,o>=e&&(a=i-o-1),h=h.replace("%value%",t[a].toString()),r+=h,r+= `
` }return s=s.replace("%blur%",r),s=s.replace("%size%",i.toString()),s}const qd= `
attribute vec2 aVertexPosition ;
uniform mat3 projectionMatrix ;
uniform float strength ;
varying vec2 vBlurTexCoords [ % size % ] ;
uniform vec4 inputSize ;
uniform vec4 outputFrame ;
vec4 filterVertexPosition ( void )
{
vec2 position = aVertexPosition * max ( outputFrame . zw , vec2 ( 0. ) ) + outputFrame . xy ;
return vec4 ( ( projectionMatrix * vec3 ( position , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
}
vec2 filterTextureCoord ( void )
{
return aVertexPosition * ( outputFrame . zw * inputSize . zw ) ;
}
void main ( void )
{
gl _Position = filterVertexPosition ( ) ;
vec2 textureCoord = filterTextureCoord ( ) ;
% blur %
} ` ;function Kd(i,t){const e=Math.ceil(i/2);let s=qd,r="",n;t?n="vBlurTexCoords[%index%] = textureCoord + vec2(%sampleIndex% * strength, 0.0);":n="vBlurTexCoords[%index%] = textureCoord + vec2(0.0, %sampleIndex% * strength);";for(let a=0;a<i;a++){let o=n.replace("%index%",a.toString());o=o.replace("%sampleIndex%", ` $ { a - ( e - 1 ) } . 0 ` ),r+=o,r+= `
` }return s=s.replace("%blur%",r),s=s.replace("%size%",i.toString()),s}class Bi extends xt{constructor(t,e=8,s=4,r=xt.defaultResolution,n=5){const a=Kd(n,t),o=Yd(n);super(a,o),this.horizontal=t,this.resolution=r,this._quality=0,this.quality=s,this.blur=e}apply(t,e,s,r){if(s?this.horizontal?this.uniforms.strength=1/s.width*(s.width/e.width):this.uniforms.strength=1/s.height*(s.height/e.height):this.horizontal?this.uniforms.strength=1/t.renderer.width*(t.renderer.width/e.width):this.uniforms.strength=1/t.renderer.height*(t.renderer.height/e.height),this.uniforms.strength*=this.strength,this.uniforms.strength/=this.passes,this.passes===1)t.applyFilter(this,e,s,r);else{const n=t.getFilterTexture(),a=t.renderer;let o=e,h=n;this.state.blend=!1,t.applyFilter(this,o,h,kt.CLEAR);for(let l=1;l<this.passes-1;l++){t.bindAndClear(o,kt.BLIT),this.uniforms.uSampler=h;const u=h;h=o,o=u,a.shader.bind(this),a.geometry.draw(5)}this.state.blend=!0,t.applyFilter(this,h,s,r),t.returnFilterTexture(n)}}get blur(){return this.strength}set blur(t){this.padding=1+Math.abs(t)*2,this.strength=t}get quality(){return this._quality}set quality(t){this._quality=t,this.passes=t}}class ph extends xt{constructor(t=8,e=4,s=xt.defaultResolution,r=5){super(),this._repeatEdgePixels=!1,this.blurXFilter=new Bi(!0,t,e,s,r),this.blurYFilter=new Bi(!1,t,e,s,r),this.resolution=s,this.quality=e,this.blur=t,this.repeatEdgePixels=!1}apply(t,e,s,r){const n=Math.abs(this.blurXFilter.strength),a=Math.abs(this.blurYFilter.strength);if(n&&a){const o=t.getFilterTexture();this.blurXFilter.apply(t,e,o,kt.CLEAR),this.blurYFilter.apply(t,o,s,r),t.returnFilterTexture(o)}else a?this.blurYFilter.apply(t,e,s,r):this.blurXFilter.apply(t,e,s,r)}updatePadding(){this._repeatEdgePixels?this.padding=0:this.padding=Math.max(Math.abs(this.blurXFilter.strength),Math.abs(this.blurYFilter.strength))*2}get blur(){return this.blurXFilter.blur}set blur(t){this.blurXFilter.blur=this.blurYFilter.blur=t,this.updatePadding()}get quality(){return this.blurXFilter.quality}set quality(t){this.blurXFilter.quality=this.blurYFilter.quality=t}get blurX(){return this.blurXFilter.blur}set blurX(t){this.blurXFilter.blur=t,this.updatePadding()}get blurY(){return this.blurYFilter.blur}set blurY(t){this.blurYFilter.blur=t,this.updatePadding()}get blendMode(){return this.blurYFilter.blendMode}set blendMode(t){this.blurYFilter.blendMode=t}get repeatEdgePixels(){return this._repeatEdgePixels}set repeatEdgePixels(t){this._repeatEdgePixels=t,this.updatePadding()}}var Zd= ` varying vec2 vTextureCoord ;
uniform sampler2D uSampler ;
uniform float m [ 20 ] ;
uniform float uAlpha ;
void main ( void )
{
vec4 c = texture2D ( uSampler , vTextureCoord ) ;
if ( uAlpha == 0.0 ) {
gl _FragColor = c ;
return ;
}
// Un-premultiply alpha before applying the color matrix. See issue #3539.
if ( c . a > 0.0 ) {
c . rgb /= c . a ;
}
vec4 result ;
result . r = ( m [ 0 ] * c . r ) ;
result . r += ( m [ 1 ] * c . g ) ;
result . r += ( m [ 2 ] * c . b ) ;
result . r += ( m [ 3 ] * c . a ) ;
result . r += m [ 4 ] ;
result . g = ( m [ 5 ] * c . r ) ;
result . g += ( m [ 6 ] * c . g ) ;
result . g += ( m [ 7 ] * c . b ) ;
result . g += ( m [ 8 ] * c . a ) ;
result . g += m [ 9 ] ;
result . b = ( m [ 10 ] * c . r ) ;
result . b += ( m [ 11 ] * c . g ) ;
result . b += ( m [ 12 ] * c . b ) ;
result . b += ( m [ 13 ] * c . a ) ;
result . b += m [ 14 ] ;
result . a = ( m [ 15 ] * c . r ) ;
result . a += ( m [ 16 ] * c . g ) ;
result . a += ( m [ 17 ] * c . b ) ;
result . a += ( m [ 18 ] * c . a ) ;
result . a += m [ 19 ] ;
vec3 rgb = mix ( c . rgb , result . rgb , uAlpha ) ;
// Premultiply alpha again.
rgb *= result . a ;
gl _FragColor = vec4 ( rgb , result . a ) ;
}
` ;class Fi extends xt{constructor(){const t={m:new Float32Array([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]),uAlpha:1};super(_n,Zd,t),this.alpha=1}_loadMatrix(t,e=!1){let s=t;e&&(this._multiply(s,this.uniforms.m,t),s=this._colorMatrix(s)),this.uniforms.m=s}_multiply(t,e,s){return t[0]=e[0]*s[0]+e[1]*s[5]+e[2]*s[10]+e[3]*s[15],t[1]=e[0]*s[1]+e[1]*s[6]+e[2]*s[11]+e[3]*s[16],t[2]=e[0]*s[2]+e[1]*s[7]+e[2]*s[12]+e[3]*s[17],t[3]=e[0]*s[3]+e[1]*s[8]+e[2]*s[13]+e[3]*s[18],t[4]=e[0]*s[4]+e[1]*s[9]+e[2]*s[14]+e[3]*s[19]+e[4],t[5]=e[5]*s[0]+e[6]*s[5]+e[7]*s[10]+e[8]*s[15],t[6]=e[5]*s[1]+e[6]*s[6]+e[7]*s[11]+e[8]*s[16],t[7]=e[5]*s[2]+e[6]*s[7]+e[7]*s[12]+e[8]*s[17],t[8]=e[5]*s[3]+e[6]*s[8]+e[7]*s[13]+e[8]*s[18],t[9]=e[5]*s[4]+e[6]*s[9]+e[7]*s[14]+e[8]*s[19]+e[9],t[10]=e[10]*s[0]+e[11]*s[5]+e[12]*s[10]+e[13]*s[15],t[11]=e[10]*s[1]+e[11]*s[6]+e[12]*s[11]+e[13]*s[16],t[12]=e[10]*s[2]+e[11]*s[7]+e[12]*s[12]+e[13]*s[17],t[13]=e[10]*s[3]+e[11]*s[8]+e[12]*s[13]+e[13]*s[18],t[14]=e[10]*s[4]+e[11]*s[9]+e[12]*s[14]+e[13]*s[19]+e[14],t[15]=e[15]*s[0]+e[16]*s[5]+e[17]*s[10]+e[18]*s[15],t[16]=e[15]*s[1]+e[16]*s[6]+e[17]*s[11]+e[18]*s[16],t[17]=e[15]*s[2]+e[16]*s[7]+e[17]*s[12]+e[18]*s[17],t[18]=e[15]*s[3]+e[16]*s[8]+e[17]*s[13]+e[18]*s[18],t[19]=e[15]*s[4]+e[16]*s[9]+e[17]*s[14]+e[18]*s[19]+e[19],t}_colorMatrix(t){const e=new Float32Array(t);return e[4]/=255,e[9]/=255,e[14]/=255,e[19]/=255,e}brightness(t,e){const s=[t,0,0,0,0,0,t,0,0,0,0,0,t,0,0,0,0,0,1,0];this._loadMatrix(s,e)}tint(t,e){const[s,r,n]=Z.shared.setValue(t).toArray(),a=[s,0,0,0,0,0,r,0,0,0,0,0,n,0,0,0,0,0,1,0];this._loadMatrix(a,e)}greyscale(t,e){const s=[t,t,t,0,0,t,t,t,0,0,t,t,t,0,0,0,0,0,1,0];this._loadMatrix(s,e)}blackAndWhite(t){const e=[.3,.6,.1,0,0,.3,.6,.1,0,0,.3,.6,.1,0,0,0,0,0,1,0];this._loadMatrix(e,t)}hue(t,e){t=(t||0)/180*Math.PI;const s=Math.cos(t),r=Math.sin(t),n=Math.sqrt,a=1/3,o=n(a),h=s+(1-s)*a,l=a*(1-s)-o*r,u=a*(1-s)+o*r,c=a*(1-s)+o*r,d=s+a*(1-s),f=a*(1-s)-o*r,p=a*(1-s)-o*r,m=a*(1-s)+o*r,g=s+a*(1-s),y=[h,l,u,0,0,c,d,f,0,0,p,m,g,0,0,0,0,0,1,0];this._loadMatrix(y,e)}contrast(t,e){const s=(t||0)+1,r=-.5*(s-1),n=[s,0,0,0,r,0,s,0,0,r,0,0,s,0,r,0,0,0,1,0];this._loadMatrix(n,e)}saturate(t=0,e){const s=t*2/3+1,r=(s-1)*-.5,n=[s,r,r,0,0,r,s,r,0,0,r,r,s,0,0,0,0,0,1,0];this._loadMatrix(n,e)}desaturate(){this.saturate(-1)}negative(t){const e=[-1,0,0,1,0,0,-1,0,1,0,0,0,-1,1,0,0,0,0,1,0];this._loadMatrix(e,t)}sepia(t){const e=[.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0];this._loadMatrix(e,t)}technicolor(t){const e=[1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0];this._loadMatrix(e,t)}polaroid(t){const e=[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0];this._loadMatrix(e,t)}toBGR(t){const e=[0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0];this._loadMatrix(e,t)}kodachrome(t){const e=[1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0];this._loadMatrix(e,t)}browni(t){const e=[.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0];this._loadMatrix(e,t)}vintage(t){const e=[.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0];this._loadMatrix(e,t)}colorTone(t,e,s,r,n){t=t||.2,e=e||.15,s=s||16770432,r=r||3375104;const a=Z.shared,[o,h,l]=a.setValue(s).toArray(),[u,c,d]=a.setValue(r).toArray(),f=[.3,.59,.11,0,0,o,h,l,t,0,u,c,d,e,0,o-u,h-c,l-d,0,0];this._loadMa
varying vec2 vTextureCoord ;
uniform vec2 scale ;
uniform mat2 rotation ;
uniform sampler2D uSampler ;
uniform sampler2D mapSampler ;
uniform highp vec4 inputSize ;
uniform vec4 inputClamp ;
void main ( void )
{
vec4 map = texture2D ( mapSampler , vFilterCoord ) ;
map -= 0.5 ;
map . xy = scale * inputSize . zw * ( rotation * map . xy ) ;
gl _FragColor = texture2D ( uSampler , clamp ( vec2 ( vTextureCoord . x + map . x , vTextureCoord . y + map . y ) , inputClamp . xy , inputClamp . zw ) ) ;
}
` ,Jd= ` attribute vec2 aVertexPosition ;
uniform mat3 projectionMatrix ;
uniform mat3 filterMatrix ;
varying vec2 vTextureCoord ;
varying vec2 vFilterCoord ;
uniform vec4 inputSize ;
uniform vec4 outputFrame ;
vec4 filterVertexPosition ( void )
{
vec2 position = aVertexPosition * max ( outputFrame . zw , vec2 ( 0. ) ) + outputFrame . xy ;
return vec4 ( ( projectionMatrix * vec3 ( position , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
}
vec2 filterTextureCoord ( void )
{
return aVertexPosition * ( outputFrame . zw * inputSize . zw ) ;
}
void main ( void )
{
gl _Position = filterVertexPosition ( ) ;
vTextureCoord = filterTextureCoord ( ) ;
vFilterCoord = ( filterMatrix * vec3 ( vTextureCoord , 1.0 ) ) . xy ;
}
` ;class mh extends xt{constructor(t,e){const s=new tt;t.renderable=!1,super(Jd,Qd,{mapSampler:t._texture,filterMatrix:s,scale:{x:1,y:1},rotation:new Float32Array([1,0,0,1])}),this.maskSprite=t,this.maskMatrix=s,e==null&&(e=20),this.scale=new q(e,e)}apply(t,e,s,r){this.uniforms.filterMatrix=t.calculateSpriteMatrix(this.maskMatrix,this.maskSprite),this.uniforms.scale.x=this.scale.x,this.uniforms.scale.y=this.scale.y;const n=this.maskSprite.worldTransform,a=Math.sqrt(n.a*n.a+n.b*n.b),o=Math.sqrt(n.c*n.c+n.d*n.d);a!==0&&o!==0&&(this.uniforms.rotation[0]=n.a/a,this.uniforms.rotation[1]=n.b/a,this.uniforms.rotation[2]=n.c/o,this.uniforms.rotation[3]=n.d/o),t.applyFilter(this,e,s,r)}get map(){return this.uniforms.mapSampler}set map(t){this.uniforms.mapSampler=t}}var tf= ` varying vec2 v _rgbNW ;
varying vec2 v _rgbNE ;
varying vec2 v _rgbSW ;
varying vec2 v _rgbSE ;
varying vec2 v _rgbM ;
varying vec2 vFragCoord ;
uniform sampler2D uSampler ;
uniform highp vec4 inputSize ;
/ * *
Basic FXAA implementation based on the code on geeks3d . com with the
modification that the texture2DLod stuff was removed since it ' s
unsupported by WebGL .
--
From :
https : //github.com/mitsuhiko/webgl-meincraft
Copyright ( c ) 2011 by Armin Ronacher .
Some rights reserved .
Redistribution and use in source and binary forms , with or without
modification , are permitted provided that the following conditions are
met :
* Redistributions of source code must retain the above copyright
notice , this list of conditions and the following disclaimer .
* Redistributions in binary form must reproduce the above
copyright notice , this list of conditions and the following
disclaimer in the documentation and / or other materials provided
with the distribution .
* The names of the contributors may not be used to endorse or
promote products derived from this software without specific
prior written permission .
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT
LIMITED TO , THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL ,
SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT
LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE ,
DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT
( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
* /
# ifndef FXAA _REDUCE _MIN
# define FXAA _REDUCE _MIN ( 1.0 / 128.0 )
# endif
# ifndef FXAA _REDUCE _MUL
# define FXAA _REDUCE _MUL ( 1.0 / 8.0 )
# endif
# ifndef FXAA _SPAN _MAX
# define FXAA _SPAN _MAX 8.0
# endif
//optimized version for mobile, where dependent
//texture reads can be a bottleneck
vec4 fxaa ( sampler2D tex , vec2 fragCoord , vec2 inverseVP ,
vec2 v _rgbNW , vec2 v _rgbNE ,
vec2 v _rgbSW , vec2 v _rgbSE ,
vec2 v _rgbM ) {
vec4 color ;
vec3 rgbNW = texture2D ( tex , v _rgbNW ) . xyz ;
vec3 rgbNE = texture2D ( tex , v _rgbNE ) . xyz ;
vec3 rgbSW = texture2D ( tex , v _rgbSW ) . xyz ;
vec3 rgbSE = texture2D ( tex , v _rgbSE ) . xyz ;
vec4 texColor = texture2D ( tex , v _rgbM ) ;
vec3 rgbM = texColor . xyz ;
vec3 luma = vec3 ( 0.299 , 0.587 , 0.114 ) ;
float lumaNW = dot ( rgbNW , luma ) ;
float lumaNE = dot ( rgbNE , luma ) ;
float lumaSW = dot ( rgbSW , luma ) ;
float lumaSE = dot ( rgbSE , luma ) ;
float lumaM = dot ( rgbM , luma ) ;
float lumaMin = min ( lumaM , min ( min ( lumaNW , lumaNE ) , min ( lumaSW , lumaSE ) ) ) ;
float lumaMax = max ( lumaM , max ( max ( lumaNW , lumaNE ) , max ( lumaSW , lumaSE ) ) ) ;
mediump vec2 dir ;
dir . x = - ( ( lumaNW + lumaNE ) - ( lumaSW + lumaSE ) ) ;
dir . y = ( ( lumaNW + lumaSW ) - ( lumaNE + lumaSE ) ) ;
float dirReduce = max ( ( lumaNW + lumaNE + lumaSW + lumaSE ) *
( 0.25 * FXAA _REDUCE _MUL ) , FXAA _REDUCE _MIN ) ;
float rcpDirMin = 1.0 / ( min ( abs ( dir . x ) , abs ( dir . y ) ) + dirReduce ) ;
dir = min ( vec2 ( FXAA _SPAN _MAX , FXAA _SPAN _MAX ) ,
max ( vec2 ( - FXAA _SPAN _MAX , - FXAA _SPAN _MAX ) ,
dir * rcpDirMin ) ) * inverseVP ;
vec3 rgbA = 0.5 * (
texture2D ( tex , fragCoord * inverseVP + dir * ( 1.0 / 3.0 - 0.5 ) ) . xyz +
texture2D ( tex , fragCoord * inverseVP + dir * ( 2.0 / 3.0 - 0.5 ) ) . xyz ) ;
vec3 rgbB = rgbA * 0.5 + 0.25 * (
texture2D ( tex , fragCoord * inverseVP + dir * - 0.5 ) . xyz +
texture2D ( tex , fragCoord * inverseVP + dir * 0.5 ) . xyz ) ;
float lumaB = dot ( rgbB , luma ) ;
if ( ( lumaB < lumaMin ) || ( lumaB > lumaMax ) )
color = vec4 ( rgbA , texColor . a ) ;
else
color = vec4 ( rgbB , texColor . a ) ;
return color ;
}
void main ( ) {
vec4 color ;
color = fxaa ( uSampler , vFragCoord , inputSize . zw , v _rgbNW , v _rgbNE , v _rgbSW , v _rgbSE , v _rgbM ) ;
gl _FragColor = color ;
}
` ,ef= `
attribute vec2 aVertexPosition ;
uniform mat3 projectionMatrix ;
varying vec2 v _rgbNW ;
varying vec2 v _rgbNE ;
varying vec2 v _rgbSW ;
varying vec2 v _rgbSE ;
varying vec2 v _rgbM ;
varying vec2 vFragCoord ;
uniform vec4 inputSize ;
uniform vec4 outputFrame ;
vec4 filterVertexPosition ( void )
{
vec2 position = aVertexPosition * max ( outputFrame . zw , vec2 ( 0. ) ) + outputFrame . xy ;
return vec4 ( ( projectionMatrix * vec3 ( position , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
}
void texcoords ( vec2 fragCoord , vec2 inverseVP ,
out vec2 v _rgbNW , out vec2 v _rgbNE ,
out vec2 v _rgbSW , out vec2 v _rgbSE ,
out vec2 v _rgbM ) {
v _rgbNW = ( fragCoord + vec2 ( - 1.0 , - 1.0 ) ) * inverseVP ;
v _rgbNE = ( fragCoord + vec2 ( 1.0 , - 1.0 ) ) * inverseVP ;
v _rgbSW = ( fragCoord + vec2 ( - 1.0 , 1.0 ) ) * inverseVP ;
v _rgbSE = ( fragCoord + vec2 ( 1.0 , 1.0 ) ) * inverseVP ;
v _rgbM = vec2 ( fragCoord * inverseVP ) ;
}
void main ( void ) {
gl _Position = filterVertexPosition ( ) ;
vFragCoord = aVertexPosition * outputFrame . zw ;
texcoords ( vFragCoord , inputSize . zw , v _rgbNW , v _rgbNE , v _rgbSW , v _rgbSE , v _rgbM ) ;
}
` ;class gh extends xt{constructor(){super(ef,tf)}}var sf= ` precision highp float ;
varying vec2 vTextureCoord ;
varying vec4 vColor ;
uniform float uNoise ;
uniform float uSeed ;
uniform sampler2D uSampler ;
float rand ( vec2 co )
{
return fract ( sin ( dot ( co . xy , vec2 ( 12.9898 , 78.233 ) ) ) * 43758.5453 ) ;
}
void main ( )
{
vec4 color = texture2D ( uSampler , vTextureCoord ) ;
float randomValue = rand ( gl _FragCoord . xy * uSeed ) ;
float diff = ( randomValue - 0.5 ) * uNoise ;
// Un-premultiply alpha before applying the color matrix. See issue #3539.
if ( color . a > 0.0 ) {
color . rgb /= color . a ;
}
color . r += diff ;
color . g += diff ;
color . b += diff ;
// Premultiply alpha again.
color . rgb *= color . a ;
gl _FragColor = color ;
}
2025-11-27 10:22:45 +08:00
` ;class _h extends xt{constructor(t=.5,e=Math.random()){super(_n,sf,{uNoise:0,uSeed:0}),this.noise=t,this.seed=e}get noise(){return this.uniforms.uNoise}set noise(t){this.uniforms.uNoise=t}get seed(){return this.uniforms.uSeed}set seed(t){this.uniforms.uSeed=t}}const wn={AlphaFilter:fh,BlurFilter:ph,BlurFilterPass:Bi,ColorMatrixFilter:Fi,DisplacementFilter:mh,FXAAFilter:gh,NoiseFilter:_h};Object.entries(wn).forEach(([i,t])=>{Object.defineProperty(wn,i,{get(){return Fa("7.1.0", ` filters . $ { i } has moved to $ { i } ` ),t}})});let rf=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this.tickerAdded=!1,this._pauseUpdate=!0}init(t){this.removeTickerListener(),this.events=t,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this.tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(t){this._pauseUpdate=t}addTickerListener(){this.tickerAdded||!this.domElement||(mt.system.add(this.tickerUpdate,this,ue.INTERACTION),this.tickerAdded=!0)}removeTickerListener(){this.tickerAdded&&(mt.system.remove(this.tickerUpdate,this),this.tickerAdded=!1)}pointerMoved(){this._didMove=!0}update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}const t=this.events.rootPointerEvent;this.events.supportsTouchEvents&&t.pointerType==="touch"||globalThis.document.dispatchEvent(new PointerEvent("pointermove",{clientX:t.clientX,clientY:t.clientY}))}tickerUpdate(t){this._deltaTime+=t,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this.update())}};const Te=new rf;class Ye{constructor(t){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=Ye.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new q,this.page=new q,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=t}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(t,e,s){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(t,e,s,r,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}class Ds extends Ye{constructor(){super(...arguments),this.client=new q,this.movement=new q,this.offset=new q,this.global=new q,this.screen=new q}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(t,e,s){return t.worldTransform.applyInverse(s||this.global,e)}getModifierState(t){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(t)}initMouseEvent(t,e,s,r,n,a,o,h,l,u,c,d,f,p,m){throw new Error("Method not implemented.")}}class Bt extends Ds{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}class Ue extends Ds{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}}Ue.DOM_DELTA_PIXEL=0,Ue.DOM_DELTA_LINE=1,Ue.DOM_DELTA_PAGE=2;const nf=2048,af=new q,Sn=new q
2025-11-21 10:41:34 +08:00
$ { c } ` )}});return await Promise.all(h),n?r[a[0].src]:r}async unload(t){const e=Ft(t,s=>({alias:[s],src:s})).map(async s=>{var r,n;const a=ct.toAbsolute(s.src),o=this.promiseCache[a];if(o){const h=await o.promise;delete this.promiseCache[a],(n=(r=o.parser)==null?void 0:r.unload)==null||n.call(r,h,s,this)}});await Promise.all(e)}_validateParsers(){this._parsersValidated=!0,this._parserHash=this._parsers.filter(t=>t.name).reduce((t,e)=>(t[e.name],Rf(Sf({},t),{[e.name]:e})),{})}}var Nt=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Nt||{});const Cf=".json",Pf="application/json",Oh={extension:{type:I.LoadParser,priority:Nt.Low},name:"loadJson",test(i){return ke(i,Pf)||de(i,Cf)},async load(i){return await(await O.ADAPTER.fetch(i)).json()}};L.add(Oh);const Mf=".txt",Df="text/plain",Bh={name:"loadTxt",extension:{type:I.LoadParser,priority:Nt.Low},test(i){return ke(i,Df)||de(i,Mf)},async load(i){return await(await O.ADAPTER.fetch(i)).text()}};L.add(Bh);var Of=Object.defineProperty,Bf=Object.defineProperties,Ff=Object.getOwnPropertyDescriptors,Fh=Object.getOwnPropertySymbols,Nf=Object.prototype.hasOwnProperty,Lf=Object.prototype.propertyIsEnumerable,Nh=(i,t,e)=>t in i?Of(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Uf=(i,t)=>{for(var e in t||(t={}))Nf.call(t,e)&&Nh(i,e,t[e]);if(Fh)for(var e of Fh(t))Lf.call(t,e)&&Nh(i,e,t[e]);return i},kf=(i,t)=>Bf(i,Ff(t));const Gf=["normal","bold","100","200","300","400","500","600","700","800","900"], $ f=[".ttf",".otf",".woff",".woff2"],Hf=["font/ttf","font/otf","font/woff","font/woff2"],Xf=/^(--|-?[A-Z_])[0-9A-Z_-]* $ /i;function Lh(i){const t=ct.extname(i),e=ct.basename(i,t).replace(/(-|_)/g," ").toLowerCase().split(" ").map(n=>n.charAt(0).toUpperCase()+n.slice(1));let s=e.length>0;for(const n of e)if(!n.match(Xf)){s=!1;break}let r=e.join(" ");return s||(r= ` "${r.replace(/[\\" ] / g , "\\$&" ) } "`),r}const Vf=/^[0-9A-Za-z%:/?#\[\]@!\$&'()\*\+,;=\-._~]*$/;function jf(i){return Vf.test(i)?i:encodeURI(i)}const Uh={extension:{type:I.LoadParser,priority:Nt.Low},name:" loadWebFont ",test(i){return ke(i,Hf)||de(i,$f)},async load(i,t){var e,s,r,n,a,o;const h=O.ADAPTER.getFontFaceSet();if(h){const l=[],u=(s=(e=t.data)==null?void 0:e.family)!=null?s:Lh(i),c=(a=(n=(r=t.data)==null?void 0:r.weights)==null?void 0:n.filter(f=>Gf.includes(f)))!=null?a:[" normal "],d=(o=t.data)!=null?o:{};for(let f=0;f<c.length;f++){const p=c[f],m=new FontFace(u,`url(${jf(i)})`,kf(Uf({},d),{weight:p}));await m.load(),h.add(m),l.push(m)}return l.length===1?l[0]:l}return null},unload(i){(Array.isArray(i)?i:[i]).forEach(t=>O.ADAPTER.getFontFaceSet().delete(t))}};L.add(Uh);const Wf=`(function(){" use strict ";const e=" data : image / png ; base64 , iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8 / x8AAwMCAO + ip1sAAAAASUVORK5CYII = ";async function a(){try{if(typeof createImageBitmap!=" function " ) return ! 1 ; const A = await ( await fetch ( e ) ) . blob ( ) , t = await createImageBitmap ( A ) ; return t . width === 1 && t . height === 1 } catch ( A ) { return ! 1 } } a ( ) . then ( A => { self . postMessage ( A ) } ) } ) ( ) ;
` ;let qe=null,Pn=class{constructor(){qe||(qe=URL.createObjectURL(new Blob([Wf],{type:"application/javascript"}))),this.worker=new Worker(qe)}};Pn.revokeObjectURL=function(){qe&&(URL.revokeObjectURL(qe),qe=null)};const zf='(function(){"use strict";async function e(t){const a=await fetch(t);if(!a.ok)throw new Error( ` [ WorkerManager . loadImageBitmap ] Failed to fetch $ { t } : $ { a . status } $ { a . statusText } ` );const s=await a.blob();return await createImageBitmap(s)}self.onmessage=async t=>{try{const a=await e(t.data.data[0]);self.postMessage({data:a,uuid:t.data.uuid,id:t.data.id},[a])}catch(a){self.postMessage({error:a,uuid:t.data.uuid,id:t.data.id})}}})(); \n ';let Ke=null;class kh{constructor(){Ke||(Ke=URL.createObjectURL(new Blob([zf],{type:"application/javascript"}))),this.worker=new Worker(Ke)}}kh.revokeObjectURL=function(){Ke&&(URL.revokeObjectURL(Ke),Ke=null)};let Gh=0,Mn,Yf=class{constructor(){this._initialized=!1,this._createdWorkers=0,this.workerPool=[],this.queue=[],this.resolveHash={}}isImageBitmapSupported(){return this._isImageBitmapSupported!==void 0?this._isImageBitmapSupported:(this._isImageBitmapSupported=new Promise(t=>{const{worker:e}=new Pn;e.addEventListener("message",s=>{e.terminate(),Pn.revokeObjectURL(),t(s.data)})}),this._isImageBitmapSupported)}loadImageBitmap(t){return this._run("loadImageBitmap",[t])}async _initWorkers(){this._initialized||(this._initialized=!0)}getWorker(){Mn===void 0&&(Mn=navigator.hardwareConcurrency||4);let t=this.workerPool.pop();return!t&&this._createdWorkers<Mn&&(this._createdWorkers++,t=new kh().worker,t.addEventListener("message",e=>{this.complete(e.data),this.returnWorker(e.target),this.next()})),t}returnWorker(t){this.workerPool.push(t)}complete(t){t.error!==void 0?this.resolveHash[t.uuid].reject(t.error):this.resolveHash[t.uuid].resolve(t.data),this.resolveHash[t.uuid]=null}async _run(t,e){await this._initWorkers();const s=new Promise((r,n)=>{this.queue.push({id:t,arguments:e,resolve:r,reject:n})});return this.next(),s}next(){if(!this.queue.length)return;const t=this.getWorker();if(!t)return;const e=this.queue.pop(),s=e.id;this.resolveHash[Gh]={resolve:e.resolve,reject:e.reject},t.postMessage({data:e.arguments,uuid:Gh++,id:s})}};const $ h=new Yf;function Ze(i,t,e){i.resource.internal=!0;const s=new B(i),r=()=>{delete t.promiseCache[e],Ee.has(e)&&Ee.remove(e)};return s.baseTexture.once("destroyed",()=>{e in t.promiseCache&&(console.warn("[Assets] A BaseTexture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the BaseTexture."),r())}),s.once("destroyed",()=>{i.destroyed||(console.warn("[Assets] A Texture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the Texture."),r())}),s}var qf=Object.defineProperty,Hh=Object.getOwnPropertySymbols,Kf=Object.prototype.hasOwnProperty,Zf=Object.prototype.propertyIsEnumerable,Xh=(i,t,e)=>t in i?qf(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Vh=(i,t)=>{for(var e in t||(t={}))Kf.call(t,e)&&Xh(i,e,t[e]);if(Hh)for(var e of Hh(t))Zf.call(t,e)&&Xh(i,e,t[e]);return i};const Qf=[".jpeg",".jpg",".png",".webp",".avif"],Jf=["image/jpeg","image/png","image/webp","image/avif"];async function jh(i){const t=await O.ADAPTER.fetch(i);if(!t.ok)throw new Error( ` [ loadImageBitmap ] Failed to fetch $ { i } : $ { t . status } $ { t . statusText } ` );const e=await t.blob();return await createImageBitmap(e)}const Bs={name:"loadTextures",extension:{type:I.LoadParser,priority:Nt.High},config:{preferWorkers:!0,preferCreateImageBitmap:!0,crossOrigin:"anonymous"},test(i){return ke(i,Jf)||de(i,Qf)},async load(i,t,e){var s,r;const n=globalThis.createImageBitmap&&this.config.preferCreateImageBitmap;let a;n?this.config.preferWorkers&&await $ h.isImageBitmapSupported()?a=await $ h.loadImageBitmap(i):a=await jh(i):a=await new Promise((l,u)=>{const c=new Image;c.crossOrigin=this.config.crossOrigin,c.src=i,c.complete?l(c):(c.onload=()=>l(c),c.onerror=d=>u(d))});const o=Vh({},t.data);(s=o.resolution)!=null||(o.resolution=Kt(i)),n&&((r=o.resourceOptions)==null?void 0:r.ownsImageBitmap)===v
uniform vec4 uColor ;
uniform sampler2D uSampler ;
void main ( void )
{
gl _FragColor = texture2D ( uSampler , vTextureCoord ) * uColor ;
}
` ,sm= ` attribute vec2 aVertexPosition ;
attribute vec2 aTextureCoord ;
uniform mat3 projectionMatrix ;
uniform mat3 translationMatrix ;
uniform mat3 uTextureMatrix ;
varying vec2 vTextureCoord ;
void main ( void )
{
gl _Position = vec4 ( ( projectionMatrix * translationMatrix * vec3 ( aVertexPosition , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
vTextureCoord = ( uTextureMatrix * vec3 ( aTextureCoord , 1.0 ) ) . xy ;
}
` ;class ss extends Xt{constructor(t,e){const s={uSampler:t,alpha:1,uTextureMatrix:tt.IDENTITY,uColor:new Float32Array([1,1,1,1])};e=Object.assign({tint:16777215,alpha:1,pluginName:"batch"},e),e.uniforms&&Object.assign(s,e.uniforms),super(e.program||Qt.from(sm,em),s),this._colorDirty=!1,this.uvMatrix=new Ri(t),this.batchable=e.program===void 0,this.pluginName=e.pluginName,this._tintColor=new Z(e.tint),this._tintRGB=this._tintColor.toLittleEndianNumber(),this._colorDirty=!0,this.alpha=e.alpha}get texture(){return this.uniforms.uSampler}set texture(t){this.uniforms.uSampler!==t&&(!this.uniforms.uSampler.baseTexture.alphaMode!=!t.baseTexture.alphaMode&&(this._colorDirty=!0),this.uniforms.uSampler=t,this.uvMatrix.texture=t)}set alpha(t){t!==this._alpha&&(this._alpha=t,this._colorDirty=!0)}get alpha(){return this._alpha}set tint(t){t!==this.tint&&(this._tintColor.setValue(t),this._tintRGB=this._tintColor.toLittleEndianNumber(),this._colorDirty=!0)}get tint(){return this._tintColor.value}get tintValue(){return this._tintColor.toNumber()}update(){if(this._colorDirty){this._colorDirty=!1;const t=this.texture.baseTexture.alphaMode;Z.shared.setValue(this._tintColor).premultiply(this._alpha,t).toArray(this.uniforms.uColor)}this.uvMatrix.update()&&(this.uniforms.uTextureMatrix=this.uvMatrix.mapCoord)}}class $ l extends $ s{constructor(t=100,e=100,s=10,r=10){super(),this.segWidth=s,this.segHeight=r,this.width=t,this.height=e,this.build()}build(){const t=this.segWidth*this.segHeight,e=[],s=[],r=[],n=this.segWidth-1,a=this.segHeight-1,o=this.width/n,h=this.height/a;for(let u=0;u<t;u++){const c=u%this.segWidth,d=u/this.segWidth|0;e.push(c*o,d*h),s.push(c/n,d/a)}const l=n*a;for(let u=0;u<l;u++){const c=u%n,d=u/n|0,f=d*this.segWidth+c,p=d*this.segWidth+c+1,m=(d+1)*this.segWidth+c,g=(d+1)*this.segWidth+c+1;r.push(f,p,m,p,g,m)}this.buffers[0].data=new Float32Array(e),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint16Array(r),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update()}}class Hl extends $ s{constructor(t=200,e,s=0){super(new Float32Array(e.length*4),new Float32Array(e.length*4),new Uint16Array((e.length-1)*6)),this.points=e,this._width=t,this.textureScale=s,this.build()}get width(){return this._width}build(){const t=this.points;if(!t)return;const e=this.getBuffer("aVertexPosition"),s=this.getBuffer("aTextureCoord"),r=this.getIndex();if(t.length<1)return;e.data.length/4!==t.length&&(e.data=new Float32Array(t.length*4),s.data=new Float32Array(t.length*4),r.data=new Uint16Array((t.length-1)*6));const n=s.data,a=r.data;n[0]=0,n[1]=0,n[2]=0,n[3]=1;let o=0,h=t[0];const l=this._width*this.textureScale,u=t.length;for(let d=0;d<u;d++){const f=d*4;if(this.textureScale>0){const p=h.x-t[d].x,m=h.y-t[d].y,g=Math.sqrt(p*p+m*m);h=t[d],o+=g/l}else o=d/(u-1);n[f]=o,n[f+1]=0,n[f+2]=o,n[f+3]=1}let c=0;for(let d=0;d<u-1;d++){const f=d*2;a[c++]=f,a[c++]=f+1,a[c++]=f+2,a[c++]=f+2,a[c++]=f+1,a[c++]=f+3}s.update(),r.update(),this.updateVertices()}updateVertices(){const t=this.points;if(t.length<1)return;let e=t[0],s,r=0,n=0;const a=this.buffers[0].data,o=t.length,h=this.textureScale>0?this.textureScale*this._width/2:this._width/2;for(let l=0;l<o;l++){const u=t[l],c=l*4;l<t.length-1?s=t[l+1]:s=u,n=-(s.x-e.x),r=s.y-e.y;let d=(1-l/(o-1))*10;d>1&&(d=1);const f=Math.sqrt(r*r+n*n);f<1e-6?(r=0,n=0):(r/=f,n/=f,r*=h,n*=h),a[c]=u.x+r,a[c+1]=u.y+n,a[c+2]=u.x-r,a[c+3]=u.y-n,e=u}this.buffers[0].update()}update(){this.textureScale>0?this.build():this.updateVertices()}}class Xl extends es{constructor(t,e,s){const r=new $ l(t.width,t.height,e,s),n=new ss(B.WHITE);super(r,n),this.texture=t,this.autoResize=!0}textureUpdated(){this._textureID=this.shader.texture._updateID;const t=this.geometry,{width:e,height:s}=this.shader.texture;this.autoResize&&(t.width!==e||t.height!==s)&&(t.width=this.shader.texture.width,t.height=this.shader.texture.height,t.build())}set texture(t){this.shader.texture!==t&&(this.shader.texture=t,this._textureID=-1,t.baseTexture.valid?this.textureUpdated():t.once("update",this.textureUpdated,this))}get text
varying vec4 vColor ;
uniform sampler2D uSampler ;
void main ( void ) {
vec4 color = texture2D ( uSampler , vTextureCoord ) * vColor ;
gl _FragColor = color ;
} ` ,hm= ` attribute vec2 aVertexPosition ;
attribute vec2 aTextureCoord ;
attribute vec4 aColor ;
attribute vec2 aPositionCoord ;
attribute float aRotation ;
uniform mat3 translationMatrix ;
uniform vec4 uColor ;
varying vec2 vTextureCoord ;
varying vec4 vColor ;
void main ( void ) {
float x = ( aVertexPosition . x ) * cos ( aRotation ) - ( aVertexPosition . y ) * sin ( aRotation ) ;
float y = ( aVertexPosition . x ) * sin ( aRotation ) + ( aVertexPosition . y ) * cos ( aRotation ) ;
vec2 v = vec2 ( x , y ) ;
v = v + aPositionCoord ;
gl _Position = vec4 ( ( translationMatrix * vec3 ( v , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
vTextureCoord = aTextureCoord ;
vColor = aColor * uColor ;
}
` ;class Vn extends Ts{constructor(t){super(t),this.shader=null,this.properties=null,this.tempMatrix=new tt,this.properties=[{attributeName:"aVertexPosition",size:2,uploadFunction:this.uploadVertices,offset:0},{attributeName:"aPositionCoord",size:2,uploadFunction:this.uploadPosition,offset:0},{attributeName:"aRotation",size:1,uploadFunction:this.uploadRotation,offset:0},{attributeName:"aTextureCoord",size:2,uploadFunction:this.uploadUvs,offset:0},{attributeName:"aColor",size:1,type:k.UNSIGNED_BYTE,uploadFunction:this.uploadTint,offset:0}],this.shader=Xt.from(hm,om,{}),this.state=Zt.for2d()}render(t){const e=t.children,s=t._maxSize,r=t._batchSize,n=this.renderer;let a=e.length;if(a===0)return;a>s&&!t.autoResize&&(a=s);let o=t._buffers;o||(o=t._buffers=this.generateBuffers(t));const h=e[0]._texture.baseTexture,l=h.alphaMode>0;this.state.blendMode=Rr(t.blendMode,l),n.state.set(this.state);const u=n.gl,c=t.worldTransform.copyTo(this.tempMatrix);c.prepend(n.globalUniforms.uniforms.projectionMatrix),this.shader.uniforms.translationMatrix=c.toArray(!0),this.shader.uniforms.uColor=Z.shared.setValue(t.tintRgb).premultiply(t.worldAlpha,l).toArray(this.shader.uniforms.uColor),this.shader.uniforms.uSampler=h,this.renderer.shader.bind(this.shader);let d=!1;for(let f=0,p=0;f<a;f+=r,p+=1){let m=a-f;m>r&&(m=r),p>=o.length&&o.push(this._generateOneMoreBuffer(t));const g=o[p];g.uploadDynamic(e,f,m);const y=t._bufferUpdateIDs[p]||0;d=d||g._updateID<y,d&&(g._updateID=t._updateID,g.uploadStatic(e,f,m)),n.geometry.bind(g.geometry),u.drawElements(u.TRIANGLES,m*6,u.UNSIGNED_SHORT,0)}}generateBuffers(t){const e=[],s=t._maxSize,r=t._batchSize,n=t._properties;for(let a=0;a<s;a+=r)e.push(new Vl(this.properties,n,r));return e}_generateOneMoreBuffer(t){const e=t._batchSize,s=t._properties;return new Vl(this.properties,s,e)}uploadVertices(t,e,s,r,n,a){let o=0,h=0,l=0,u=0;for(let c=0;c<s;++c){const d=t[e+c],f=d._texture,p=d.scale.x,m=d.scale.y,g=f.trim,y=f.orig;g?(h=g.x-d.anchor.x*y.width,o=h+g.width,u=g.y-d.anchor.y*y.height,l=u+g.height):(o=y.width*(1-d.anchor.x),h=y.width*-d.anchor.x,l=y.height*(1-d.anchor.y),u=y.height*-d.anchor.y),r[a]=h*p,r[a+1]=u*m,r[a+n]=o*p,r[a+n+1]=u*m,r[a+n*2]=o*p,r[a+n*2+1]=l*m,r[a+n*3]=h*p,r[a+n*3+1]=l*m,a+=n*4}}uploadPosition(t,e,s,r,n,a){for(let o=0;o<s;o++){const h=t[e+o].position;r[a]=h.x,r[a+1]=h.y,r[a+n]=h.x,r[a+n+1]=h.y,r[a+n*2]=h.x,r[a+n*2+1]=h.y,r[a+n*3]=h.x,r[a+n*3+1]=h.y,a+=n*4}}uploadRotation(t,e,s,r,n,a){for(let o=0;o<s;o++){const h=t[e+o].rotation;r[a]=h,r[a+n]=h,r[a+n*2]=h,r[a+n*3]=h,a+=n*4}}uploadUvs(t,e,s,r,n,a){for(let o=0;o<s;++o){const h=t[e+o]._texture._uvs;h?(r[a]=h.x0,r[a+1]=h.y0,r[a+n]=h.x1,r[a+n+1]=h.y1,r[a+n*2]=h.x2,r[a+n*2+1]=h.y2,r[a+n*3]=h.x3,r[a+n*3+1]=h.y3,a+=n*4):(r[a]=0,r[a+1]=0,r[a+n]=0,r[a+n+1]=0,r[a+n*2]=0,r[a+n*2+1]=0,r[a+n*3]=0,r[a+n*3+1]=0,a+=n*4)}}uploadTint(t,e,s,r,n,a){for(let o=0;o<s;++o){const h=t[e+o],l=Z.shared.setValue(h._tintRGB).toPremultiplied(h.alpha,h.texture.baseTexture.alphaMode>0);r[a]=l,r[a+n]=l,r[a+n*2]=l,r[a+n*3]=l,a+=n*4}}destroy(){super.destroy(),this.shader&&(this.shader.destroy(),this.shader=null),this.tempMatrix=null}}Vn.extension={name:"particle",type:I.RendererPlugin},L.add(Vn);var Hs=(i=>(i[i.LINEAR_VERTICAL=0]="LINEAR_VERTICAL",i[i.LINEAR_HORIZONTAL=1]="LINEAR_HORIZONTAL",i))(Hs||{});const Yi={willReadFrequently:!0},ee=class U{static get experimentalLetterSpacingSupported(){let t=U._experimentalLetterSpacingSupported;if(t!==void 0){const e=O.ADAPTER.getCanvasRenderingContext2D().prototype;t=U._experimentalLetterSpacingSupported="letterSpacing"in e||"textLetterSpacing"in e}return t}constructor(t,e,s,r,n,a,o,h,l){this.text=t,this.style=e,this.width=s,this.height=r,this.lines=n,this.lineWidths=a,this.lineHeight=o,this.maxLineWidth=h,this.fontProperties=l}static measureText(t,e,s,r=U._canvas){s=s==null?e.wordWrap:s;const n=e.toFontString(),a=U.measureFont(n);a.fontSize===0&&(a.fontSize=e.fontSize,a.ascent=e.fontSize);const o=r.getContext("2d",Yi);o.font=n;const h=(s?U.wordWrap(t,e,r):t).split(/(?: \r \n | \r | \n )/),l=new Array(h.length);let u=0;for(let p=0;p<h.l
` :t,t}static getFromCache(t,e,s,r){let n=s[t];return typeof n!="number"&&(n=U._measureText(t,e,r)+e,s[t]=n),n}static collapseSpaces(t){return t==="normal"||t==="pre-line"}static collapseNewlines(t){return t==="normal"}static trimRight(t){if(typeof t!="string")return"";for(let e=t.length-1;e>=0;e--){const s=t[e];if(!U.isBreakingSpace(s))break;t=t.slice(0,-1)}return t}static isNewline(t){return typeof t!="string"?!1:U._newlines.includes(t.charCodeAt(0))}static isBreakingSpace(t,e){return typeof t!="string"?!1:U._breakingSpaces.includes(t.charCodeAt(0))}static tokenize(t){const e=[];let s="";if(typeof t!="string")return e;for(let r=0;r<t.length;r++){const n=t[r],a=t[r+1];if(U.isBreakingSpace(n,a)||U.isNewline(n)){s!==""&&(e.push(s),s=""),e.push(n);continue}s+=n}return s!==""&&e.push(s),e}static canBreakWords(t,e){return e}static canBreakChars(t,e,s,r,n){return!0}static wordWrapSplit(t){return U.graphemeSegmenter(t)}static measureFont(t){if(U._fonts[t])return U._fonts[t];const e={ascent:0,descent:0,fontSize:0},s=U._canvas,r=U._context;r.font=t;const n=U.METRICS_STRING+U.BASELINE_SYMBOL,a=Math.ceil(r.measureText(n).width);let o=Math.ceil(r.measureText(U.BASELINE_SYMBOL).width);const h=Math.ceil(U.HEIGHT_MULTIPLIER*o);if(o=o*U.BASELINE_MULTIPLIER|0,a===0||h===0)return U._fonts[t]=e,e;s.width=a,s.height=h,r.fillStyle="#f00",r.fillRect(0,0,a,h),r.font=t,r.textBaseline="alphabetic",r.fillStyle="#000",r.fillText(n,0,o);const l=r.getImageData(0,0,a,h).data,u=l.length,c=a*4;let d=0,f=0,p=!1;for(d=0;d<o;++d){for(let m=0;m<c;m+=4)if(l[f+m]!==255){p=!0;break}if(!p)f+=c;else break}for(e.ascent=o-d,f=u-c,p=!1,d=h;d>o;--d){for(let m=0;m<c;m+=4)if(l[f+m]!==255){p=!0;break}if(!p)f-=c;else break}return e.descent=d-o,e.fontSize=e.ascent+e.descent,U._fonts[t]=e,e}static clearMetrics(t=""){t?delete U._fonts[t]:U._fonts={}}static get _canvas(){if(!U.__canvas){let t;try{const e=new OffscreenCanvas(0,0),s=e.getContext("2d",Yi);if(s!=null&&s.measureText)return U.__canvas=e,e;t=O.ADAPTER.createCanvas()}catch(e){t=O.ADAPTER.createCanvas()}t.width=t.height=10,U.__canvas=t}return U.__canvas}static get _context(){return U.__context||(U.__context=U._canvas.getContext("2d",Yi)),U.__context}};ee.METRICS_STRING="| \x C9q \x C5",ee.BASELINE_SYMBOL="M",ee.BASELINE_MULTIPLIER=1.4,ee.HEIGHT_MULTIPLIER=2,ee.graphemeSegmenter=(()=>{if(typeof(Intl==null?void 0:Intl.Segmenter)=="function"){const i=new Intl.Segmenter;return t=>[...i.segment(t)].map(e=>e.segment)}return i=>[...i]})(),ee.experimentalLetterSpacing=!1,ee._fonts={},ee._newlines=[10,13],ee._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];let pe=ee;const lm=["serif","sans-serif","monospace","cursive","fantasy","system-ui"],jl=class Zs{constructor(t){this.styleID=0,this.reset(),Wn(this,t,t)}clone(){const t={};return Wn(t,this,Zs.defaultStyle),new Zs(t)}reset(){Wn(this,Zs.defaultStyle,Zs.defaultStyle)}get align(){return this._align}set align(t){this._align!==t&&(this._align=t,this.styleID++)}get breakWords(){return this._breakWords}set breakWords(t){this._breakWords!==t&&(this._breakWords=t,this.styleID++)}get dropShadow(){return this._dropShadow}set dropShadow(t){this._dropShadow!==t&&(this._dropShadow=t,this.styleID++)}get dropShadowAlpha(){return this._dropShadowAlpha}set dropShadowAlpha(t){this._dropShadowAlpha!==t&&(this._dropShadowAlpha=t,this.styleID++)}get dropShadowAngle(){return this._dropShadowAngle}set dropShadowAngle(t){this._dropShadowAngle!==t&&(this._dropShadowAngle=t,this.styleID++)}get dropShadowBlur(){return this._dropShadowBlur}set dropShadowBlur(t){this._dropShadowBlur!==t&&(this._dropShadowBlur=t,this.styleID++)}get dropShadowColor(){return this._dropShadowColor}set dropShadowColor(t){const e=jn(t);this._dropShadowColor!==e&&(this._dropShadowColor=e,this.styleID++)}get dropShadowDistance(){return this._dropShadowDistance}set dropShadowDistance(t){this._dropShadowDistance!==t&&(this._dropShadowDistance=t,this.styleID++)}get fill(){return this._fill}set fill(t){const e=jn(t);this._fill!==e&&(this._fill=e,this.styleID++)}get fillGradientType(){return thi
# define SHADER _NAME Tiling - Sprite - 100
precision lowp float ;
in vec2 vTextureCoord ;
out vec4 fragmentColor ;
uniform sampler2D uSampler ;
uniform vec4 uColor ;
uniform mat3 uMapCoord ;
uniform vec4 uClampFrame ;
uniform vec2 uClampOffset ;
void main ( void )
{
vec2 coord = vTextureCoord + ceil ( uClampOffset - vTextureCoord ) ;
coord = ( uMapCoord * vec3 ( coord , 1.0 ) ) . xy ;
vec2 unclamped = coord ;
coord = clamp ( coord , uClampFrame . xy , uClampFrame . zw ) ;
vec4 texSample = texture ( uSampler , coord , unclamped == coord ? 0.0 f : - 32.0 f ) ; // lod-bias very negative to force lod 0
fragmentColor = texSample * uColor ;
}
` ,Em= ` # version 300 es
# define SHADER _NAME Tiling - Sprite - 300
precision lowp float ;
in vec2 aVertexPosition ;
in vec2 aTextureCoord ;
uniform mat3 projectionMatrix ;
uniform mat3 translationMatrix ;
uniform mat3 uTransform ;
out vec2 vTextureCoord ;
void main ( void )
{
gl _Position = vec4 ( ( projectionMatrix * translationMatrix * vec3 ( aVertexPosition , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
vTextureCoord = ( uTransform * vec3 ( aTextureCoord , 1.0 ) ) . xy ;
}
` ,Am= ` # version 100
# ifdef GL _EXT _shader _texture _lod
# extension GL _EXT _shader _texture _lod : enable
# endif
# define SHADER _NAME Tiling - Sprite - 100
precision lowp float ;
varying vec2 vTextureCoord ;
uniform sampler2D uSampler ;
uniform vec4 uColor ;
uniform mat3 uMapCoord ;
uniform vec4 uClampFrame ;
uniform vec2 uClampOffset ;
void main ( void )
{
vec2 coord = vTextureCoord + ceil ( uClampOffset - vTextureCoord ) ;
coord = ( uMapCoord * vec3 ( coord , 1.0 ) ) . xy ;
vec2 unclamped = coord ;
coord = clamp ( coord , uClampFrame . xy , uClampFrame . zw ) ;
# ifdef GL _EXT _shader _texture _lod
vec4 texSample = unclamped == coord
? texture2D ( uSampler , coord )
: texture2DLodEXT ( uSampler , coord , 0 ) ;
# else
vec4 texSample = texture2D ( uSampler , coord ) ;
# endif
gl _FragColor = texSample * uColor ;
}
` ,Kl= ` # version 100
# define SHADER _NAME Tiling - Sprite - 100
precision lowp float ;
attribute vec2 aVertexPosition ;
attribute vec2 aTextureCoord ;
uniform mat3 projectionMatrix ;
uniform mat3 translationMatrix ;
uniform mat3 uTransform ;
varying vec2 vTextureCoord ;
void main ( void )
{
gl _Position = vec4 ( ( projectionMatrix * translationMatrix * vec3 ( aVertexPosition , 1.0 ) ) . xy , 0.0 , 1.0 ) ;
vTextureCoord = ( uTransform * vec3 ( aTextureCoord , 1.0 ) ) . xy ;
}
` ,wm= ` # version 100
# define SHADER _NAME Tiling - Sprite - Simple - 100
precision lowp float ;
varying vec2 vTextureCoord ;
uniform sampler2D uSampler ;
uniform vec4 uColor ;
void main ( void )
{
vec4 texSample = texture2D ( uSampler , vTextureCoord ) ;
gl _FragColor = texSample * uColor ;
}
` ;const Zi=new tt;class Kn extends Ts{constructor(t){super(t),t.runners.contextChange.add(this),this.quad=new Jr,this.state=Zt.for2d()}contextChange(){const t=this.renderer,e={globals:t.globalUniforms};this.simpleShader=Xt.from(Kl,wm,e),this.shader=t.context.webGLVersion>1?Xt.from(Em,Tm,e):Xt.from(Kl,Am,e)}render(t){const e=this.renderer,s=this.quad;let r=s.vertices;r[0]=r[6]=t._width*-t.anchor.x,r[1]=r[3]=t._height*-t.anchor.y,r[2]=r[4]=t._width*(1-t.anchor.x),r[5]=r[7]=t._height*(1-t.anchor.y);const n=t.uvRespectAnchor?t.anchor.x:0,a=t.uvRespectAnchor?t.anchor.y:0;r=s.uvs,r[0]=r[6]=-n,r[1]=r[3]=-a,r[2]=r[4]=1-n,r[5]=r[7]=1-a,s.invalidate();const o=t._texture,h=o.baseTexture,l=h.alphaMode>0,u=t.tileTransform.localTransform,c=t.uvMatrix;let d=h.isPowerOfTwo&&o.frame.width===h.width&&o.frame.height===h.height;d&&(h._glTextures[e.CONTEXT_UID]?d=h.wrapMode!==zt.CLAMP:h.wrapMode===zt.CLAMP&&(h.wrapMode=zt.REPEAT));const f=d?this.simpleShader:this.shader,p=o.width,m=o.height,g=t._width,y=t._height;Zi.set(u.a*p/g,u.b*p/y,u.c*m/g,u.d*m/y,u.tx/g,u.ty/y),Zi.invert(),d?Zi.prepend(c.mapCoord):(f.uniforms.uMapCoord=c.mapCoord.toArray(!0),f.uniforms.uClampFrame=c.uClampFrame,f.uniforms.uClampOffset=c.uClampOffset),f.uniforms.uTransform=Zi.toArray(!0),f.uniforms.uColor=Z.shared.setValue(t.tint).premultiply(t.worldAlpha,l).toArray(f.uniforms.uColor),f.uniforms.translationMatrix=t.transform.worldTransform.toArray(!0),f.uniforms.uSampler=o,e.shader.bind(f),e.geometry.bind(s),this.state.blendMode=Rr(t.blendMode,l),e.state.set(this.state),e.geometry.draw(this.renderer.gl.TRIANGLES,6,0)}}Kn.extension={name:"tilingSprite",type:I.RendererPlugin},L.add(Kn);const Zl=class Qs{constructor(t,e,s){this.linkedSheets=[],(t instanceof V||t instanceof B)&&(t={texture:t,data:e,resolutionFilename:s});const{texture:r,data:n,resolutionFilename:a=null,cachePrefix:o=""}=t;this.cachePrefix=o,this._texture=r instanceof B?r:null,this.baseTexture=r instanceof V?r:this._texture.baseTexture,this.textures={},this.animations={},this.data=n;const h=this.baseTexture.resource;this.resolution=this._updateResolution(a||(h?h.url:null)),this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}_updateResolution(t=null){const{scale:e}=this.data.meta;let s=Kt(t,null);return s===null&&(s=typeof e=="number"?e:parseFloat(e!=null?e:"1")),s!==1&&this.baseTexture.setResolution(s),s}parse(){return new Promise(t=>{this._callback=t,this._batchIndex=0,this._frameKeys.length<=Qs.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(t){let e=t;const s=Qs.BATCH_SIZE;for(;e-t<s&&e<this._frameKeys.length;){const r=this._frameKeys[e],n=this._frames[r],a=n.frame;if(a){let o=null,h=null;const l=n.trimmed!==!1&&n.sourceSize?n.sourceSize:n.frame,u=new j(0,0,Math.floor(l.w)/this.resolution,Math.floor(l.h)/this.resolution);n.rotated?o=new j(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.h)/this.resolution,Math.floor(a.w)/this.resolution):o=new j(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution),n.trimmed!==!1&&n.spriteSourceSize&&(h=new j(Math.floor(n.spriteSourceSize.x)/this.resolution,Math.floor(n.spriteSourceSize.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution)),this.textures[r]=new B(this.baseTexture,o,u,h,n.rotated?2:0,n.anchor,n.borders),B.addToCache(this.textures[r],this.cachePrefix+r.toString())}e++}}_processAnimations(){const t=this.data.animations||{};for(const e in t){this.animations[e]=[];for(let s=0;s<t[e].length;s++){const r=t[e][s];this.animations[e].push(this.textures[r])}}}_parseComplete(){const t=this._callback;this._callback=null,this._batchIndex=0,t.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*Qs.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Qs.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(t=!1){var e
varying vec2 vTextureCoord ; \ r
uniform sampler2D uSampler ; \ r
\ r
// Tint\r
uniform vec4 uColor ; \ r
\ r
// on 2D applications fwidth is screenScale / glyphAtlasScale * distanceFieldRange\r
uniform float uFWidth ; \ r
\ r
void main ( void ) { \ r
\ r
// To stack MSDF and SDF we need a non-pre-multiplied-alpha texture.\r
vec4 texColor = texture2D ( uSampler , vTextureCoord ) ; \ r
\ r
// MSDF\r
float median = texColor . r + texColor . g + texColor . b - \ r
min ( texColor . r , min ( texColor . g , texColor . b ) ) - \ r
max ( texColor . r , max ( texColor . g , texColor . b ) ) ; \ r
// SDF\r
median = min ( median , texColor . a ) ; \ r
\ r
float screenPxDistance = uFWidth * ( median - 0.5 ) ; \ r
float alpha = clamp ( screenPxDistance + 0.5 , 0.0 , 1.0 ) ; \ r
if ( median < 0.01 ) { \ r
alpha = 0.0 ; \ r
} else if ( median > 0.99 ) { \ r
alpha = 1.0 ; \ r
} \ r
\ r
// Gamma correction for coverage-like alpha\r
float luma = dot ( uColor . rgb , vec3 ( 0.299 , 0.587 , 0.114 ) ) ; \ r
float gamma = mix ( 1.0 , 1.0 / 2.2 , luma ) ; \ r
float coverage = pow ( uColor . a * alpha , gamma ) ; \ r
\ r
// NPM Textures, NPM outputs\r
gl _FragColor = vec4 ( uColor . rgb , coverage ) ; \ r
} \ r
` ,Bm= ` // Mesh material default fragment\r
attribute vec2 aVertexPosition ; \ r
attribute vec2 aTextureCoord ; \ r
\ r
uniform mat3 projectionMatrix ; \ r
uniform mat3 translationMatrix ; \ r
uniform mat3 uTextureMatrix ; \ r
\ r
varying vec2 vTextureCoord ; \ r
\ r
void main ( void ) \ r
{ \ r
gl _Position = vec4 ( ( projectionMatrix * translationMatrix * vec3 ( aVertexPosition , 1.0 ) ) . xy , 0.0 , 1.0 ) ; \ r
\ r
vTextureCoord = ( uTextureMatrix * vec3 ( aTextureCoord , 1.0 ) ) . xy ; \ r
} \ r
` ;const nu=[],au=[],ou=[],hu=class mu extends Rt{constructor(t,e={}){super();const{align:s,tint:r,maxWidth:n,letterSpacing:a,fontName:o,fontSize:h}=Object.assign({},mu.styleDefaults,e);if(!ge.available[o])throw new Error( ` Missing BitmapFont "${o}" ` );this._activePagesMeshData=[],this._textWidth=0,this._textHeight=0,this._align=s,this._tintColor=new Z(r),this._font=void 0,this._fontName=o,this._fontSize=h,this.text=t,this._maxWidth=n,this._maxLineHeight=0,this._letterSpacing=a,this._anchor=new le(()=>{this.dirty=!0},this,0,0),this._roundPixels=O.ROUND_PIXELS,this.dirty=!0,this._resolution=O.RESOLUTION,this._autoResolution=!0,this._textureCache={}}updateText(){var t;const e=ge.available[this._fontName],s=this.fontSize,r=s/e.size,n=new q,a=[],o=[],h=[],l=this._text.replace(/(?: \r \n | \r )/g, `
` )||" ",u=eu(l),c=this._maxWidth*e.size/s,d=e.distanceFieldType==="none"?nu:au;let f=null,p=0,m=0,g=0,y=-1,b=0,v=0,x=0,E=0;for(let N=0;N<u.length;N++){const T=u[N],R=tr(T);if(/(?: \s )/.test(T)&&(y=N,b=p,E++),T===" \r "||T=== `
` ){o.push(p),h.push(-1),m=Math.max(m,p),++g,++v,n.x=0,n.y+=e.lineHeight,f=null,E=0;continue}const $ =e.chars[R];if(! $ )continue;f&& $ .kerning[f]&&(n.x+= $ .kerning[f]);const z=ou.pop()||{texture:B.EMPTY,line:0,charCode:0,prevSpaces:0,position:new q};z.texture= $ .texture,z.line=g,z.charCode=R,z.position.x=Math.round(n.x+ $ .xOffset+this._letterSpacing/2),z.position.y=Math.round(n.y+ $ .yOffset),z.prevSpaces=E,a.push(z),p=z.position.x+Math.max( $ .xAdvance- $ .xOffset, $ .texture.orig.width),n.x+= $ .xAdvance+this._letterSpacing,x=Math.max(x, $ .yOffset+ $ .texture.height),f=R,y!==-1&&c>0&&n.x>c&&(++v,Ce(a,1+y-v,1+N-y),N=y,y=-1,o.push(b),h.push(a.length>0?a[a.length-1].prevSpaces:0),m=Math.max(m,b),g++,n.x=0,n.y+=e.lineHeight,f=null,E=0)}const M=u[u.length-1];M!==" \r "&&M!== `
` &&(/(?: \s )/.test(M)&&(p=b),o.push(p),m=Math.max(m,p),h.push(-1));const S=[];for(let N=0;N<=g;N++){let T=0;this._align==="right"?T=m-o[N]:this._align==="center"?T=(m-o[N])/2:this._align==="justify"&&(T=h[N]<0?0:(m-o[N])/h[N]),S.push(T)}const w=a.length,F={},G=[],Y=this._activePagesMeshData;d.push(...Y);for(let N=0;N<w;N++){const T=a[N].texture,R=T.baseTexture.uid;if(!F[R]){let $ =d.pop();if(! $ ){const X=new $ s;let W,ot;e.distanceFieldType==="none"?(W=new ss(B.EMPTY),ot=H.NORMAL):(W=new ss(B.EMPTY,{program:Qt.from(Bm,Om),uniforms:{uFWidth:0}}),ot=H.NORMAL_NPM);const P=new es(X,W);P.blendMode=ot, $ ={index:0,indexCount:0,vertexCount:0,uvsCount:0,total:0,mesh:P,vertices:null,uvs:null,indices:null}} $ .index=0, $ .indexCount=0, $ .vertexCount=0, $ .uvsCount=0, $ .total=0;const{_textureCache:z}=this;z[R]=z[R]||new B(T.baseTexture), $ .mesh.texture=z[R], $ .mesh.tint=this._tintColor.value,G.push( $ ),F[R]= $ }F[R].total++}for(let N=0;N<Y.length;N++)G.includes(Y[N])||this.removeChild(Y[N].mesh);for(let N=0;N<G.length;N++)G[N].mesh.parent!==this&&this.addChild(G[N].mesh);this._activePagesMeshData=G;for(const N in F){const T=F[N],R=T.total;if(!(((t=T.indices)==null?void 0:t.length)>6*R)||T.vertices.length<es.BATCHABLE_SIZE*2)T.vertices=new Float32Array(4*2*R),T.uvs=new Float32Array(4*2*R),T.indices=new Uint16Array(6*R);else{const $ =T.total,z=T.vertices;for(let X= $ *4*2;X<z.length;X++)z[X]=0}T.mesh.size=6*R}for(let N=0;N<w;N++){const T=a[N];let R=T.position.x+S[T.line]*(this._align==="justify"?T.prevSpaces:1);this._roundPixels&&(R=Math.round(R));const $ =R*r,z=T.position.y*r,X=T.texture,W=F[X.baseTexture.uid],ot=X.frame,P=X._uvs,C=W.index++;W.indices[C*6+0]=0+C*4,W.indices[C*6+1]=1+C*4,W.indices[C*6+2]=2+C*4,W.indices[C*6+3]=0+C*4,W.indices[C*6+4]=2+C*4,W.indices[C*6+5]=3+C*4,W.vertices[C*8+0]= $ ,W.vertices[C*8+1]=z,W.vertices[C*8+2]= $ +ot.width*r,W.vertices[C*8+3]=z,W.vertices[C*8+4]= $ +ot.width*r,W.vertices[C*8+5]=z+ot.height*r,W.vertices[C*8+6]= $ ,W.vertices[C*8+7]=z+ot.height*r,W.uvs[C*8+0]=P.x0,W.uvs[C*8+1]=P.y0,W.uvs[C*8+2]=P.x1,W.uvs[C*8+3]=P.y1,W.uvs[C*8+4]=P.x2,W.uvs[C*8+5]=P.y2,W.uvs[C*8+6]=P.x3,W.uvs[C*8+7]=P.y3}this._textWidth=m*r,this._textHeight=(n.y+e.lineHeight)*r;for(const N in F){const T=F[N];if(this.anchor.x!==0||this.anchor.y!==0){let X=0;const W=this._textWidth*this.anchor.x,ot=this._textHeight*this.anchor.y;for(let P=0;P<T.total;P++)T.vertices[X++]-=W,T.vertices[X++]-=ot,T.vertices[X++]-=W,T.vertices[X++]-=ot,T.vertices[X++]-=W,T.vertices[X++]-=ot,T.vertices[X++]-=W,T.vertices[X++]-=ot}this._maxLineHeight=x*r;const R=T.mesh.geometry.getBuffer("aVertexPosition"), $ =T.mesh.geometry.getBuffer("aTextureCoord"),z=T.mesh.geometry.getIndex();R.data=T.vertices, $ .data=T.uvs,z.data=T.indices,R.update(), $ .update(),z.update()}for(let N=0;N<a.length;N++)ou.push(a[N]);this._font=e,this.dirty=!1}updateTransform(){this.validate(),this.containerUpdateTransform()}_render(t){this._autoResolution&&this._resolution!==t.resolution&&(this._resolution=t.resolution,this.dirty=!0);const{distanceFieldRange:e,distanceFieldType:s,size:r}=ge.available[this._fontName];if(s!=="none"){const{a:n,b:a,c:o,d:h}=this.worldTransform,l=Math.sqrt(n*n+a*a),u=Math.sqrt(o*o+h*h),c=(Math.abs(l)+Math.abs(u))/2,d=this.fontSize/r,f=t._view.resolution;for(const p of this._activePagesMeshData)p.mesh.shader.uniforms.uFWidth=c*e*d*f}super._render(t)}getLocalBounds(){return this.validate(),super.getLocalBounds()}validate(){const t=ge.available[this._fontName];if(!t)throw new Error( ` Missing BitmapFont "${this._fontName}" ` );this._font!==t&&(this.dirty=!0),this.dirty&&this.updateText()}get tint(){return this._tintColor.value}set tint(t){if(this.tint!==t){this._tintColor.setValue(t);for(let e=0;e<this._activePagesMeshData.length;e++)this._activePagesMeshData[e].mesh.tint=t}}get align(){return this._align}set align(t){this._align!==t&&(this._align=t,this.dirty=!0)}get fontName(){return this._fontName}set fontName(t){if(!ge.available[t])throw new Error( ` Missing BitmapFont "${t}" ` );this._fontName!==t&&(this._fontName=t,this.dirty=!0)}get fontSize(){var t;return(t=this._fontSize)!=null?t:ge.a
@ font - face {
font - family : "${e.family}" ;
src : url ( '${e.dataSrc}' ) ;
font - weight : $ { e . weight } ;
font - style : $ { e . style } ;
font - display : $ { e . display } ;
} ` ,this._stylesheet)}get stylesheet(){return this._stylesheet}set stylesheet(t){this._stylesheet!==t&&(this._stylesheet=t,this.styleID++)}normalizeColor(t){return Array.isArray(t)&&(t=Qa(t)),typeof t=="number"?Za(t):t}dropShadowToCSS(){let t=this.normalizeColor(this.dropShadowColor);const e=this.dropShadowAlpha,s=Math.round(Math.cos(this.dropShadowAngle)*this.dropShadowDistance),r=Math.round(Math.sin(this.dropShadowAngle)*this.dropShadowDistance);t.startsWith("#")&&e<1&&(t+=(e*255|0).toString(16).padStart(2,"0"));const n= ` $ { s } px $ { r } px ` ;return this.dropShadowBlur>0? ` text - shadow : $ { n } $ { this . dropShadowBlur } px $ { t } ` : ` text - shadow : $ { n } $ { t } ` }reset(){Object.assign(this,ns.defaultOptions)}onBeforeDraw(){const{fontsDirty:t}=this;return this.fontsDirty=!1,this.isSafari&&this._fonts.length>0&&t?new Promise(e=>setTimeout(e,100)):Promise.resolve()}get isSafari(){const{userAgent:t}=O.ADAPTER.getNavigator();return/^((?!chrome|android).)*safari/i.test(t)}set fillGradientStops(t){console.warn("[HTMLTextStyle] fillGradientStops is not supported by HTMLText")}get fillGradientStops(){return super.fillGradientStops}set fillGradientType(t){console.warn("[HTMLTextStyle] fillGradientType is not supported by HTMLText")}get fillGradientType(){return super.fillGradientType}set miterLimit(t){console.warn("[HTMLTextStyle] miterLimit is not supported by HTMLText")}get miterLimit(){return super.miterLimit}set trim(t){console.warn("[HTMLTextStyle] trim is not supported by HTMLText")}get trim(){return super.trim}set textBaseline(t){console.warn("[HTMLTextStyle] textBaseline is not supported by HTMLText")}get textBaseline(){return super.textBaseline}set leading(t){console.warn("[HTMLTextStyle] leading is not supported by HTMLText")}get leading(){return super.leading}set lineJoin(t){console.warn("[HTMLTextStyle] lineJoin is not supported by HTMLText")}get lineJoin(){return super.lineJoin}};Jn.availableFonts={},Jn.defaultOptions={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",letterSpacing:0,lineHeight:0,padding:0,stroke:"black",strokeThickness:0,whiteSpace:"normal",wordWrap:!1,wordWrapWidth:100};let sr=Jn;const Ws=class as extends ce{constructor(t="",e={}){var s;super(B.EMPTY),this._text=null,this._style=null,this._autoResolution=!0,this.localStyleID=-1,this.dirty=!1,this._updateID=0,this.ownsStyle=!1;const r=new Image,n=B.from(r,{scaleMode:O.SCALE_MODE,resourceOptions:{autoLoad:!1}});n.orig=new j,n.trim=new j,this.texture=n;const a="http://www.w3.org/2000/svg",o="http://www.w3.org/1999/xhtml",h=document.createElementNS(a,"svg"),l=document.createElementNS(a,"foreignObject"),u=document.createElementNS(o,"div"),c=document.createElementNS(o,"style");l.setAttribute("width","10000"),l.setAttribute("height","10000"),l.style.overflow="hidden",h.appendChild(l),this.maxWidth=as.defaultMaxWidth,this.maxHeight=as.defaultMaxHeight,this._domElement=u,this._styleElement=c,this._svgRoot=h,this._foreignObject=l,this._foreignObject.appendChild(c),this._foreignObject.appendChild(u),this._image=r,this._loadImage=new Image,this._autoResolution=as.defaultAutoResolution,this._resolution=(s=as.defaultResolution)!=null?s:O.RESOLUTION,this.text=t,this.style=e}measureText(t){var e,s;const{text:r,style:n,resolution:a}=Object.assign({text:this._text,style:this._style,resolution:this._resolution},t);Object.assign(this._domElement,{innerHTML:r,style:n.toCSS(a)}),this._styleElement.textContent=n.toGlobalCSS(),document.body.appendChild(this._svgRoot);const o=this._domElement.getBoundingClientRect();this._svgRoot.remove();const{width:h,height:l}=o,u=Math.min(this.maxWidth,Math.ceil(h)),c=Math.min(this.maxHeight,Math.ceil(l));return this._svgRoot.setAttribute("width",u.toString()),this._svgRoot.setAttribute("height",c.toString()),r!==this._text&&(this._domElement.innerHTML=this._text),n!==this._style&&(Object.assign(this._domElement,{style:(e=this._style)==null?void 0:
//# sourceMappingURL=pixi.min.js.map