shadow-function
Version:
ioing lib - shadow Function, worker Function
1 lines • 177 kB
JavaScript
!function(t,e,T){T.un,T.uns;var n=T.static,c=T.class,r=T.getset,a=T.__newvec,l=laya.maths.Arith,u=laya.maths.Bezier,i=laya.resource.Bitmap,f=laya.utils.Browser,h=laya.utils.Byte,d=laya.utils.Color,A=(laya.filters.ColorFilter,T.Config),s=laya.resource.Context,E=(laya.events.Event,laya.filters.Filter),o=laya.display.Graphics,_=laya.resource.HTMLCanvas,m=(laya.utils.HTMLChar,laya.resource.HTMLImage),p=laya.resource.HTMLSubImage,S=(laya.utils.Handler,laya.net.Loader,laya.maths.Matrix),w=laya.maths.Point,R=laya.maths.Rectangle,g=laya.renders.Render,v=(laya.renders.RenderContext,laya.renders.RenderSprite),x=laya.resource.Resource,b=laya.resource.ResourceManager,y=laya.utils.RunDriver,I=laya.display.Sprite,M=laya.display.Stage,C=laya.utils.Stat,L=laya.utils.StringKey,P=(laya.display.css.Style,laya.system.System),D=laya.display.Text,F=laya.resource.Texture,B=(laya.display.css.TransformInfo,laya.net.URL,laya.utils.Utils),N=laya.utils.VectorGraphManager;laya.utils.WordText;T.interface("laya.webgl.shapes.IShape"),T.interface("laya.webgl.submit.ISubmit"),T.interface("laya.webgl.text.ICharSegment"),T.interface("laya.webgl.canvas.save.ISaveData"),T.interface("laya.webgl.resource.IMergeAtlasBitmap"),T.interface("laya.filters.IFilterActionGL","laya.filters.IFilterAction");var O=function(){function t(){}c(t,"laya.filters.webgl.FilterActionGL");var e=t.prototype;return T.imps(e,{"laya.filters.IFilterActionGL":!0}),e.setValue=function(t){},e.setValueMix=function(t){},e.apply3d=function(t,e,i,r,s){return null},e.apply=function(t){return null},r(0,e,"typeMix",function(){return 0}),t}(),V=function(){function t(){}return c(t,"laya.webgl.shader.ShaderValue"),t}(),U=function(){var r,s;function t(t,e,i){this._atlasID=0,this._width=0,this._height=0,this._texCount=0,this._rowInfo=null,this._cells=null,this._failSize=new s,void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),this._cells=null,this._rowInfo=null,this._init(t,e),this._atlasID=i}c(t,"laya.webgl.atlas.AtlasGrid");var e=t.prototype;return e.getAltasID=function(){return this._atlasID},e.setAltasID=function(t){0<=t&&(this._atlasID=t)},e.addTex=function(t,e,i){var r=this._get(e,i);return 0==r.ret||(this._fill(r.x,r.y,e,i,t),this._texCount++),r},e._release=function(){null!=this._cells&&(this._cells.length=0,this._cells=null),this._rowInfo&&(this._rowInfo.length=0,this._rowInfo=null)},e._init=function(t,e){if(this._width=t,this._height=e,this._release(),0==this._width)return!1;this._cells=new Uint8Array(this._width*this._height*3),this._rowInfo=a(this._height);for(var i=0;i<this._height;i++)this._rowInfo[i]=new r;return this._clear(),!0},e._get=function(t,e){var i=new H;if(t>=this._failSize.width&&e>=this._failSize.height)return i;for(var r=-1,s=-1,a=this._width,n=this._height,h=this._cells,l=0;l<n;l++)if(!(this._rowInfo[l].spaceCount<t))for(var o=0;o<a;){var u=3*(l*a+o);if(0!=h[u]||h[u+1]<t||h[u+2]<e)o+=h[u+1];else{r=o,s=l;for(var _=0;_<t;_++)if(h[3*_+u+2]<e){r=-1;break}if(!(r<0))return i.ret=!0,i.x=r,i.y=s,i;o+=h[u+1]}}return i},e._fill=function(t,e,i,r,s){var a=this._width,n=this._height;this._check(t+i<=a&&e+r<=n);for(var h=e;h<r+e;++h){this._check(this._rowInfo[h].spaceCount>=i),this._rowInfo[h].spaceCount-=i;for(var l=0;l<i;l++){var o=3*(t+h*a+l);this._check(0==this._cells[o]),this._cells[o]=s,this._cells[o+1]=i,this._cells[o+2]=r}}if(0<t)for(h=0;h<r;++h){var u=0;for(l=t-1;0<=l&&0==this._cells[3*((e+h)*a+l)];--l,++u);for(l=u;0<l;--l)this._cells[3*((e+h)*a+t-l)+1]=l,this._check(0<l)}if(0<e)for(l=t;l<t+i;++l){for(u=0,h=e-1;0<=h&&0==this._cells[3*(l+h*a)];--h,u++);for(h=u;0<h;--h)this._cells[3*(l+(e-h)*a)+2]=h,this._check(0<h)}},e._check=function(t){0==t&&console.log("xtexMerger 错误啦")},e._clear=function(){for(var t=this._texCount=0;t<this._height;t++)this._rowInfo[t].spaceCount=this._width;for(var e=0;e<this._height;e++)for(var i=0;i<this._width;i++){var r=3*(e*this._width+i);this._cells[r]=0,this._cells[r+1]=this._width-i,this._cells[r+2]=this._width-e}this._failSize.width=this._width+1,this._failSize.height=this._height+1},t.__init$=function(){r=function(){function t(){this.spaceCount=0}return c(t,""),t}(),s=function(){function t(){this.width=0,this.height=0}return c(t,""),t}()},t}(),k=function(){function g(t,e,i,r){this._currentAtlasCount=0,this._maxAtlaserCount=0,this._width=0,this._height=0,this._gridSize=0,this._gridNumX=0,this._gridNumY=0,this._init=!1,this._curAtlasIndex=0,this._setAtlasParam=!1,this._atlaserArray=null,this._needGC=!1,this._setAtlasParam=!0,this._width=t,this._height=e,this._gridSize=i,this._maxAtlaserCount=r,this._gridNumX=t/i,this._gridNumY=e/i,this._curAtlasIndex=0,this._atlaserArray=[]}c(g,"laya.webgl.atlas.AtlasResourceManager");var t=g.prototype;return t.setAtlasParam=function(t,e,i,r){if(1==this._setAtlasParam)return g._sid_=0,this._width=t,this._height=e,this._gridSize=i,this._maxAtlaserCount=r,this._gridNumX=t/i,this._gridNumY=e/i,this._curAtlasIndex=0,this.freeAll(),!0;throw console.log("设置大图合集参数错误,只能在开始页面设置各种参数"),-1},t.pushData=function(t){var e,i=t.bitmap,r=-1,s=null,a=0,n=0;for(a=0,e=this._atlaserArray.length;a<e&&(n=(this._curAtlasIndex+a)%e,-1==(r=(s=this._atlaserArray[n]).findBitmapIsExist(i)));a++);if(-1!=r){var h=s.InAtlasWebGLImagesOffsetValue[r];return d=h[0],m=h[1],s.addToAtlas(t,d,m),!0}this._setAtlasParam=!1;for(var l=Math.ceil((t.bitmap.width+2)/this._gridSize),o=Math.ceil((t.bitmap.height+2)/this._gridSize),u=!1,_=0;_<2;_++){var c=this._maxAtlaserCount;for(a=0;a<c;a++){n=(this._curAtlasIndex+a)%c,this._atlaserArray.length-1>=n||this._atlaserArray.push(new Rt(this._gridNumX,this._gridNumY,this._width,this._height,g._sid_++));var f=this._atlaserArray[n],d=0,m=0,p=f.addTex(1,l,o);if(p.ret){d=p.x*this._gridSize+1,m=p.y*this._gridSize+1,i.lock=!0,f.addToAtlasTexture(i,d,m),f.addToAtlas(t,d,m),u=!0,this._curAtlasIndex=n;break}}if(u)break;this._atlaserArray.push(new Rt(this._gridNumX,this._gridNumY,this._width,this._height,g._sid_++)),this._needGC=!0,this.garbageCollection(),this._curAtlasIndex=this._atlaserArray.length-1}return u||console.log(">>>AtlasManager pushData error"),u},t.addToAtlas=function(t){laya.webgl.atlas.AtlasResourceManager.instance.pushData(t)},t.garbageCollection=function(){if(!0===this._needGC){for(var t=this._atlaserArray.length-this._maxAtlaserCount,e=0;e<t;e++)this._atlaserArray[e].dispose(),console.log("AtlasResourceManager:Dispose the inner Atlas。");console.log(">>>>altas garbageCollection ="+t),this._atlaserArray.splice(0,t),this._needGC=!1}return!0},t.freeAll=function(){for(var t=0,e=this._atlaserArray.length;t<e;t++)this._atlaserArray[t].dispose();this._atlaserArray.length=0,this._curAtlasIndex=0},t.getAtlaserCount=function(){return this._atlaserArray.length},t.getAtlaserByIndex=function(t){return this._atlaserArray[t]},r(1,g,"instance",function(){return g._Instance||(g._Instance=new g(laya.webgl.atlas.AtlasResourceManager.atlasTextureWidth,laya.webgl.atlas.AtlasResourceManager.atlasTextureHeight,16,laya.webgl.atlas.AtlasResourceManager.maxTextureCount)),g._Instance}),r(1,g,"enabled",function(){return A.atlasEnable}),r(1,g,"atlasLimitWidth",function(){return g._atlasLimitWidth},function(t){g._atlasLimitWidth=t}),r(1,g,"atlasLimitHeight",function(){return g._atlasLimitHeight},function(t){g._atlasLimitHeight=t}),g._enable=function(){A.atlasEnable=!0},g._disable=function(){A.atlasEnable=!1},g.__init__=function(){g.atlasTextureWidth=2048,g.atlasTextureHeight=2048,g.maxTextureCount=6,g.atlasLimitWidth=512,g.atlasLimitHeight=512},g._atlasLimitWidth=0,g._atlasLimitHeight=0,g.gridSize=16,g.atlasTextureWidth=0,g.atlasTextureHeight=0,g.maxTextureCount=0,g._atlasRestore=0,g.BOARDER_TYPE_NO=0,g.BOARDER_TYPE_RIGHT=1,g.BOARDER_TYPE_LEFT=2,g.BOARDER_TYPE_BOTTOM=4,g.BOARDER_TYPE_TOP=8,g.BOARDER_TYPE_ALL=15,g._sid_=0,g._Instance=null,g}(),H=function(){function t(){this.x=0,this.y=0,this.ret=!1,this.ret=!1,this.x=0,this.y=0}return c(t,"laya.webgl.atlas.MergeFillInfo"),t}(),G=function(){function e(){}return c(e,"laya.webgl.canvas.BlendMode"),e._init_=function(t){e.fns=[e.BlendNormal,e.BlendAdd,e.BlendMultiply,e.BlendScreen,e.BlendOverlay,e.BlendLight,e.BlendMask,e.BlendDestinationOut],e.targetFns=[e.BlendNormalTarget,e.BlendAddTarget,e.BlendMultiplyTarget,e.BlendScreenTarget,e.BlendOverlayTarget,e.BlendLightTarget,e.BlendMask,e.BlendDestinationOut]},e.BlendNormal=function(t){t.blendFunc(1,771)},e.BlendAdd=function(t){t.blendFunc(1,772)},e.BlendMultiply=function(t){t.blendFunc(774,771)},e.BlendScreen=function(t){t.blendFunc(1,1)},e.BlendOverlay=function(t){t.blendFunc(1,769)},e.BlendLight=function(t){t.blendFunc(1,1)},e.BlendNormalTarget=function(t){t.blendFunc(1,771)},e.BlendAddTarget=function(t){t.blendFunc(1,772)},e.BlendMultiplyTarget=function(t){t.blendFunc(774,771)},e.BlendScreenTarget=function(t){t.blendFunc(1,1)},e.BlendOverlayTarget=function(t){t.blendFunc(1,769)},e.BlendLightTarget=function(t){t.blendFunc(1,1)},e.BlendMask=function(t){t.blendFunc(0,770)},e.BlendDestinationOut=function(t){t.blendFunc(0,0)},e.activeBlendFunction=null,e.NAMES=["normal","add","multiply","screen","overlay","light","mask","destination-out"],e.TOINT={normal:0,add:1,multiply:2,screen:3,lighter:1,overlay:4,light:5,mask:6,"destination-out":7},e.NORMAL="normal",e.ADD="add",e.MULTIPLY="multiply",e.SCREEN="screen",e.LIGHT="light",e.OVERLAY="overlay",e.DESTINATIONOUT="destination-out",e.fns=[],e.targetFns=[],e}(),z=function(){function i(t){this._color=d.create("black"),this.setValue(t)}c(i,"laya.webgl.canvas.DrawStyle");var t=i.prototype;return t.setValue=function(t){if(t){if("string"==typeof t)return void(this._color=d.create(t));if(t instanceof laya.utils.Color)return void(this._color=t)}},t.reset=function(){this._color=d.create("black")},t.equal=function(t){return"string"==typeof t?this._color.strColor===t:t instanceof laya.utils.Color&&this._color.numColor===t.numColor},t.toColorStr=function(){return this._color.strColor},i.create=function(t){var e;if(t&&("string"==typeof t?e=d.create(t):t instanceof laya.utils.Color&&(e=t),e))return e._drawStyle||(e._drawStyle=new i(t));return laya.webgl.canvas.DrawStyle.DEFAULT},n(i,["DEFAULT",function(){return this.DEFAULT=new i("#000000")}]),i}(),W=function(){function t(){this._x=0,this._y=0,this.dirty=!1,this.offset=0,this.count=0,this.geoStart=0,this.tempArray=[],this.closePath=!1,this.geomatrys=[];bt.mainContext;this.ib=$t.create(35048),this.vb=Jt.create(5)}c(t,"laya.webgl.canvas.Path");var e=t.prototype;return e.addPoint=function(t,e){this.tempArray.push(t,e)},e.getEndPointX=function(){return this.tempArray[this.tempArray.length-2]},e.getEndPointY=function(){return this.tempArray[this.tempArray.length-1]},e.polygon=function(t,e,i,r,s,a){var n;return this.geomatrys.push(this._curGeomatry=n=new Lt(t,e,i,r,s,a)),r||(n.fill=!1),null==a&&(n.borderWidth=0),n},e.setGeomtry=function(t){this.geomatrys.push(this._curGeomatry=t)},e.drawLine=function(t,e,i,r,s){var a;return this.closePath?this.geomatrys.push(this._curGeomatry=a=new Ct(t,e,i,r,s)):this.geomatrys.push(this._curGeomatry=a=new Mt(t,e,i,r,s)),a.fill=!1,a},e.update=function(){var t=this.ib._byteLength,e=this.geomatrys.length;this.offset=t;for(var i=this.geoStart;i<e;i++)this.geomatrys[i].getData(this.ib,this.vb,this.vb._byteLength/20);this.geoStart=e,this.count=(this.ib._byteLength-t)/mt.BYTES_PIDX},e.reset=function(){this.vb.clear(),this.ib.clear(),this.offset=this.count=this.geoStart=0,this.geomatrys.length=0},e.recover=function(){this._curGeomatry=null,this.vb.destory(),this.vb=null,this.ib.destory(),this.ib=null},t}(),Y=function(){function h(){}c(h,"laya.webgl.canvas.save.SaveBase");var t=h.prototype;return T.imps(t,{"laya.webgl.canvas.save.ISaveData":!0}),t.isSaveMark=function(){return!1},t.restore=function(t){this._dataObj[this._valueName]=this._value,(h._cache[h._cache._length++]=this)._newSubmit&&(t._curSubmit=at.RENDERBASE,t._renderKey=0)},h._createArray=function(){var t=[];return t._length=0,t},h._init=function(){var t=h._namemap={};return t[1]="ALPHA",t[2]="fillStyle",t[8]="font",t[256]="lineWidth",t[512]="strokeStyle",t[8192]="_mergeID",t[1024]=t[2048]=t[4096]=[],t[16384]="textBaseline",t[32768]="textAlign",t[65536]="_nBlendType",t[1048576]="shader",t[2097152]="filters",t},h.save=function(t,e,i,r){if((t._saveMark._saveuse&e)!==e){t._saveMark._saveuse|=e;var s=h._cache,a=0<s._length?s[--s._length]:new h;a._value=i[a._valueName=h._namemap[e]],a._dataObj=i,a._newSubmit=r;var n=t._save;n[n._length++]=a}},h._cache=laya.webgl.canvas.save.SaveBase._createArray(),h._namemap=h._init(),h}(),X=function(){function a(){this._clipRect=new R}c(a,"laya.webgl.canvas.save.SaveClipRect");var t=a.prototype;return T.imps(t,{"laya.webgl.canvas.save.ISaveData":!0}),t.isSaveMark=function(){return!1},t.restore=function(t){t._clipRect=this._clipSaveRect,(a._cache[a._cache._length++]=this)._submitScissor.submitLength=t._submits._length-this._submitScissor.submitIndex,t._curSubmit=at.RENDERBASE,t._renderKey=0},a.save=function(t,e){if(131072!=(131072&t._saveMark._saveuse)){t._saveMark._saveuse|=131072;var i=a._cache,r=0<i._length?i[--i._length]:new a;r._clipSaveRect=t._clipRect,t._clipRect=r._clipRect.copyFrom(t._clipRect),r._submitScissor=e;var s=t._save;s[s._length++]=r}},n(a,["_cache",function(){return this._cache=Y._createArray()}]),a}(),K=function(){function f(){this._contextX=0,this._contextY=0,this._clipRect=new R,this._rect=new R,this._matrix=new S}c(f,"laya.webgl.canvas.save.SaveClipRectStencil");var t=f.prototype;return T.imps(t,{"laya.webgl.canvas.save.ISaveData":!0}),t.isSaveMark=function(){return!1},t.restore=function(t){ut.restore(t,this._rect,this._saveMatrix,this._contextX,this._contextY),t._clipRect=this._clipSaveRect,t._curMat=this._saveMatrix,t._x=this._contextX,t._y=this._contextY,f._cache[f._cache._length++]=this,t._curSubmit=at.RENDERBASE},f.save=function(t,e,i,r,s,a,n,h,l,o){if(262144!=(262144&t._saveMark._saveuse)){t._saveMark._saveuse|=262144;var u=f._cache,_=0<u._length?u[--u._length]:new f;_._clipSaveRect=t._clipRect,_._clipRect.setTo(n,h,l,o),t._clipRect=_._clipRect,_._rect.x=i,_._rect.y=r,_._rect.width=s,_._rect.height=a,_._contextX=t._x,_._contextY=t._y,_._saveMatrix=t._curMat,t._curMat.copyTo(_._matrix),t._curMat=_._matrix,_._submitStencil=e;var c=t._save;c[c._length++]=_}},n(f,["_cache",function(){return this._cache=Y._createArray()}]),f}(),Q=function(){function r(){this._saveuse=0}c(r,"laya.webgl.canvas.save.SaveMark");var t=r.prototype;return T.imps(t,{"laya.webgl.canvas.save.ISaveData":!0}),t.isSaveMark=function(){return!0},t.restore=function(t){t._saveMark=this._preSaveMark,r._no[r._no._length++]=this},r.Create=function(t){var e=r._no,i=0<e._length?e[--e._length]:new r;return i._saveuse=0,i._preSaveMark=t._saveMark,t._saveMark=i},n(r,["_no",function(){return this._no=Y._createArray()}]),r}(),Z=function(){function a(){this._matrix=new S}c(a,"laya.webgl.canvas.save.SaveTransform");var t=a.prototype;return T.imps(t,{"laya.webgl.canvas.save.ISaveData":!0}),t.isSaveMark=function(){return!1},t.restore=function(t){t._curMat=this._savematrix,a._no[a._no._length++]=this},a.save=function(t){var e=t._saveMark;if(2048!=(2048&e._saveuse)){e._saveuse|=2048;var i=a._no,r=0<i._length?i[--i._length]:new a;r._savematrix=t._curMat,t._curMat=t._curMat.copyTo(r._matrix);var s=t._save;s[s._length++]=r}},n(a,["_no",function(){return this._no=Y._createArray()}]),a}(),q=function(){function s(){}c(s,"laya.webgl.canvas.save.SaveTranslate");var t=s.prototype;return T.imps(t,{"laya.webgl.canvas.save.ISaveData":!0}),t.isSaveMark=function(){return!1},t.restore=function(t){t._curMat;t._x=this._x,t._y=this._y,s._no[s._no._length++]=this},s.save=function(t){var e=s._no,i=0<e._length?e[--e._length]:new s;i._x=t._x,i._y=t._y;var r=t._save;r[r._length++]=i},n(s,["_no",function(){return this._no=Y._createArray()}]),s}(),j=function(){function t(){this.target=null,this.repaint=!1,this._width=NaN,this._height=NaN,this._sp=null,this._clipRect=new R}c(t,"laya.webgl.resource.RenderTargetMAX");var e=t.prototype;return e.setSP=function(t){this._sp=t},e.size=function(t,e){var i=this;this._width!==t||this._height!==e?(this.repaint=!0,this._width=t,this._height=e,this.target?this.target.size(t,e):this.target=Nt.create(t,e),this.target.hasListener("recovered")||this.target.on("recovered",this,function(t){T.timer.callLater(i._sp,i._sp.repaint)})):this.target.size(t,e)},e._flushToTarget=function(t,e){if(!e._destroy){var i=vt.worldScissorTest,r=vt.worldClipRect;vt.worldClipRect=this._clipRect,this._clipRect.x=this._clipRect.y=0,this._clipRect.width=this._width,this._clipRect.height=this._height,vt.worldScissorTest=!1,bt.mainContext.disable(3089);var s=vt.worldAlpha,a=vt.worldMatrix4,n=vt.worldMatrix,h=vt.worldFilters,l=vt.worldShaderDefines;if(vt.worldMatrix=S.EMPTY,vt.restoreTempArray(),vt.worldMatrix4=vt.TEMPMAT4_ARRAY,vt.worldAlpha=1,vt.worldFilters=null,vt.worldShaderDefines=null,Bt.activeShader=null,e.start(),A.showCanvasMark?e.clear(0,1,0,.3):e.clear(0,0,0,0),t.flush(),e.end(),Bt.activeShader=null,vt.worldAlpha=s,vt.worldMatrix4=a,vt.worldMatrix=n,vt.worldFilters=h,vt.worldShaderDefines=l,vt.worldScissorTest=i){var o=vt.height-r.y-r.height;bt.mainContext.scissor(r.x,o,r.width,r.height),bt.mainContext.enable(3089)}vt.worldClipRect=r}},e.flush=function(t){this.repaint&&(this._flushToTarget(t,this.target),this.repaint=!1)},e.drawTo=function(t,e,i,r,s){t.drawTexture(this.target.getTexture(),e,i,r,s,0,0)},e.destroy=function(){this.target&&(this.target.destroy(),this.target=null,this._sp=null)},t}(),$=function(){function t(){this.ALPHA=1,this.shaderType=0,this.defines=new It}return c(t,"laya.webgl.shader.d2.Shader2D"),t.prototype.destroy=function(){this.defines=null,this.filters=null,this.glTexture=null,this.strokeStyle=null,this.fillStyle=null},t.__init__=function(){var t,e;Qt.addInclude("parts/ColorFilter_ps_uniform.glsl","uniform vec4 colorAlpha;\nuniform mat4 colorMat;"),Qt.addInclude("parts/ColorFilter_ps_logic.glsl","mat4 alphaMat =colorMat;\n\nalphaMat[0][3] *= gl_FragColor.a;\nalphaMat[1][3] *= gl_FragColor.a;\nalphaMat[2][3] *= gl_FragColor.a;\n\ngl_FragColor = gl_FragColor * alphaMat;\ngl_FragColor += colorAlpha/255.0*gl_FragColor.a;\n"),Qt.addInclude("parts/GlowFilter_ps_uniform.glsl","uniform vec4 u_color;\nuniform float u_strength;\nuniform float u_blurX;\nuniform float u_blurY;\nuniform float u_offsetX;\nuniform float u_offsetY;\nuniform float u_textW;\nuniform float u_textH;"),Qt.addInclude("parts/GlowFilter_ps_logic.glsl","const float c_IterationTime = 10.0;\nfloat floatIterationTotalTime = c_IterationTime * c_IterationTime;\nvec4 vec4Color = vec4(0.0,0.0,0.0,0.0);\nvec2 vec2FilterDir = vec2(-(u_offsetX)/u_textW,-(u_offsetY)/u_textH);\nvec2 vec2FilterOff = vec2(u_blurX/u_textW/c_IterationTime * 2.0,u_blurY/u_textH/c_IterationTime * 2.0);\nfloat maxNum = u_blurX * u_blurY;\nvec2 vec2Off = vec2(0.0,0.0);\nfloat floatOff = c_IterationTime/2.0;\nfor(float i = 0.0;i<=c_IterationTime; ++i){\n\tfor(float j = 0.0;j<=c_IterationTime; ++j){\n\t\tvec2Off = vec2(vec2FilterOff.x * (i - floatOff),vec2FilterOff.y * (j - floatOff));\n\t\tvec4Color += texture2D(texture, v_texcoord + vec2FilterDir + vec2Off)/floatIterationTotalTime;\n\t}\n}\ngl_FragColor = vec4(u_color.rgb,vec4Color.a * u_strength);\ngl_FragColor.rgb *= gl_FragColor.a;"),Qt.addInclude("parts/BlurFilter_ps_logic.glsl","gl_FragColor = blur();\ngl_FragColor.w*=alpha;"),Qt.addInclude("parts/BlurFilter_ps_uniform.glsl","uniform vec4 strength_sig2_2sig2_gauss1;\nuniform vec2 blurInfo;\n\n#define PI 3.141593\n\n//float sigma=strength/3.0;//3σ以外影响很小。即当σ=1的时候,半径为3\n//float sig2 = sigma*sigma;\n//float _2sig2 = 2.0*sig2;\n//return 1.0/(2*PI*sig2)*exp(-(x*x+y*y)/_2sig2)\n//float gauss1 = 1.0/(2.0*PI*sig2);\n\nfloat getGaussian(float x, float y){\n return strength_sig2_2sig2_gauss1.w*exp(-(x*x+y*y)/strength_sig2_2sig2_gauss1.z);\n}\n\nvec4 blur(){\n const float blurw = 9.0;\n vec4 vec4Color = vec4(0.0,0.0,0.0,0.0);\n vec2 halfsz=vec2(blurw,blurw)/2.0/blurInfo; \n vec2 startpos=v_texcoord-halfsz;\n vec2 ctexcoord = startpos;\n vec2 step = 1.0/blurInfo; //每个像素 \n \n for(float y = 0.0;y<=blurw; ++y){\n ctexcoord.x=startpos.x;\n for(float x = 0.0;x<=blurw; ++x){\n //TODO 纹理坐标的固定偏移应该在vs中处理\n vec4Color += texture2D(texture, ctexcoord)*getGaussian(x-blurw/2.0,y-blurw/2.0);\n ctexcoord.x+=step.x;\n }\n ctexcoord.y+=step.y;\n }\n return vec4Color;\n}"),Qt.addInclude("parts/ColorAdd_ps_uniform.glsl","uniform vec4 colorAdd;\n"),Qt.addInclude("parts/ColorAdd_ps_logic.glsl","gl_FragColor = vec4(colorAdd.rgb,colorAdd.a*gl_FragColor.a);\ngl_FragColor.xyz *= colorAdd.a;"),t="attribute vec4 position;\nattribute vec2 texcoord;\nuniform vec2 size;\n\n#ifdef WORLDMAT\nuniform mat4 mmat;\n#endif\nvarying vec2 v_texcoord;\nvoid main() {\n #ifdef WORLDMAT\n vec4 pos=mmat*position;\n gl_Position =vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0);\n #else\n gl_Position =vec4((position.x/size.x-0.5)*2.0,(0.5-position.y/size.y)*2.0,position.z,1.0);\n #endif\n \n v_texcoord = texcoord;\n}",e='precision mediump float;\n//precision highp float;\nvarying vec2 v_texcoord;\nuniform sampler2D texture;\nuniform float alpha;\n#include?BLUR_FILTER "parts/BlurFilter_ps_uniform.glsl";\n#include?COLOR_FILTER "parts/ColorFilter_ps_uniform.glsl";\n#include?GLOW_FILTER "parts/GlowFilter_ps_uniform.glsl";\n#include?COLOR_ADD "parts/ColorAdd_ps_uniform.glsl";\n\nvoid main() {\n vec4 color= texture2D(texture, v_texcoord);\n color.a*=alpha;\n color.rgb*=alpha;\n gl_FragColor=color;\n #include?COLOR_ADD "parts/ColorAdd_ps_logic.glsl"; \n #include?BLUR_FILTER "parts/BlurFilter_ps_logic.glsl";\n #include?COLOR_FILTER "parts/ColorFilter_ps_logic.glsl";\n #include?GLOW_FILTER "parts/GlowFilter_ps_logic.glsl";\n}',Qt.preCompile2D(0,1,t,e,null),t="attribute vec4 position;\nuniform vec2 size;\nuniform mat4 mmat;\nvoid main() {\n vec4 pos=mmat*position;\n gl_Position =vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0);\n}",e='precision mediump float;\nuniform vec4 color;\nuniform float alpha;\n#include?COLOR_FILTER "parts/ColorFilter_ps_uniform.glsl";\nvoid main() {\n\tvec4 a = vec4(color.r, color.g, color.b, color.a);\n\ta.w = alpha;\n\ta.xyz *= alpha;\n\tgl_FragColor = a;\n\t#include?COLOR_FILTER "parts/ColorFilter_ps_logic.glsl";\n}',Qt.preCompile2D(0,2,t,e,null),t="attribute vec4 position;\nattribute vec3 a_color;\nuniform mat4 mmat;\nuniform mat4 u_mmat2;\nuniform vec2 u_pos;\nuniform vec2 size;\nvarying vec3 color;\nvoid main(){\n vec4 tPos = vec4(position.x + u_pos.x,position.y + u_pos.y,position.z,position.w);\n vec4 pos=mmat*u_mmat2*tPos;\n gl_Position =vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0);\n color=a_color;\n}",e="precision mediump float;\n//precision mediump float;\nvarying vec3 color;\nuniform float alpha;\nvoid main(){\n\t//vec4 a=vec4(color.r, color.g, color.b, 1);\n\t//a.a*=alpha;\n gl_FragColor=vec4(color.r, color.g, color.b, alpha);\n\tgl_FragColor.rgb*=alpha;\n}",Qt.preCompile2D(0,4,t,e,null),t="attribute vec4 position;\nattribute vec2 texcoord;\nuniform vec2 size;\n\n#ifdef WORLDMAT\nuniform mat4 mmat;\n#endif\nvarying vec2 v_texcoord;\nvoid main() {\n #ifdef WORLDMAT\n vec4 pos=mmat*position;\n gl_Position =vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0);\n #else\n gl_Position =vec4((position.x/size.x-0.5)*2.0,(0.5-position.y/size.y)*2.0,position.z,1.0);\n #endif\n \n v_texcoord = texcoord;\n}",e='#ifdef FSHIGHPRECISION\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n//precision highp float;\nvarying vec2 v_texcoord;\nuniform sampler2D texture;\nuniform float alpha;\nuniform vec4 u_TexRange;\nuniform vec2 u_offset;\n#include?BLUR_FILTER "parts/BlurFilter_ps_uniform.glsl";\n#include?COLOR_FILTER "parts/ColorFilter_ps_uniform.glsl";\n#include?GLOW_FILTER "parts/GlowFilter_ps_uniform.glsl";\n#include?COLOR_ADD "parts/ColorAdd_ps_uniform.glsl";\n\nvoid main() {\n vec2 newTexCoord;\n newTexCoord.x = mod(u_offset.x + v_texcoord.x,u_TexRange.y) + u_TexRange.x;\n newTexCoord.y = mod(u_offset.y + v_texcoord.y,u_TexRange.w) + u_TexRange.z;\n vec4 color= texture2D(texture, newTexCoord);\n color.a*=alpha;\n gl_FragColor=color;\n #include?COLOR_ADD "parts/ColorAdd_ps_logic.glsl"; \n #include?BLUR_FILTER "parts/BlurFilter_ps_logic.glsl";\n #include?COLOR_FILTER "parts/ColorFilter_ps_logic.glsl";\n #include?GLOW_FILTER "parts/GlowFilter_ps_logic.glsl";\n}',Qt.preCompile2D(0,256,t,e,null),t="attribute vec2 position;\nattribute vec2 texcoord;\nattribute vec4 color;\nuniform vec2 size;\nuniform float offsetX;\nuniform float offsetY;\nuniform mat4 mmat;\nuniform mat4 u_mmat2;\nvarying vec2 v_texcoord;\nvarying vec4 v_color;\nvoid main() {\n vec4 pos=mmat*u_mmat2*vec4(offsetX+position.x,offsetY+position.y,0,1 );\n gl_Position = vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0);\n v_color = color;\n v_color.rgb *= v_color.a;\n v_texcoord = texcoord; \n}",e="precision mediump float;\nvarying vec2 v_texcoord;\nvarying vec4 v_color;\nuniform sampler2D texture;\nuniform float alpha;\nvoid main() {\n\tvec4 t_color = texture2D(texture, v_texcoord);\n\tgl_FragColor = t_color.rgba * v_color;\n\tgl_FragColor *= alpha;\n}",Qt.preCompile2D(0,512,t,e,null)},t}(),J=function(){function e(t,e,i){this._value=0,this._name2int=t,this._int2name=e,this._int2nameMap=i}c(e,"laya.webgl.shader.ShaderDefines");var t=e.prototype;return t.add=function(t){return"string"==typeof t&&(t=this._name2int[t]),this._value|=t,this._value},t.addInt=function(t){return this._value|=t,this._value},t.remove=function(t){return"string"==typeof t&&(t=this._name2int[t]),this._value&=~t,this._value},t.isDefine=function(t){return(this._value&t)===t},t.getValue=function(){return this._value},t.setValue=function(t){this._value=t},t.toNameDic=function(){var t=this._int2nameMap[this._value];return t||e._toText(this._value,this._int2name,this._int2nameMap)},e._reg=function(t,e,i,r){r[i[t]=e]=t},e._toText=function(t,e,i){var r=i[t];if(r)return r;for(var s={},a=1,n=0;n<32&&!(t<(a=1<<n));n++)if(t&a){var h=e[a];h&&(s[h]="")}return i[t]=s},e._toInt=function(t,e){for(var i=t.split("."),r=0,s=0,a=i.length;s<a;s++){var n=e[i[s]];if(!n)throw new Error("Defines to int err:"+t+"/"+i[s]);r|=n}return r},e}(),tt=function(){function n(){this.mVBBuffer=null,this.mIBBuffer=null,this.mVBData=null,this.mIBData=null,this.mEleNum=0,this.mTexture=null,this.transform=null,this._vs=null,this._ps=null,this._indexStart=-1,this._verticles=null,this._uvs=null,this._tempMatrix=new S}c(n,"laya.webgl.shader.d2.skinAnishader.SkinMesh");var t=n.prototype;return t.init=function(t,e,i){if(e)this._vs=e;else{this._vs=[];var r=t.width,s=t.height;this._vs.push(0,0,0,0,1,1,1,1),this._vs.push(r,0,1,0,1,1,1,1),this._vs.push(r,s,1,1,1,1,1,1),this._vs.push(0,s,0,1,1,1,1,1)}this._ps=i||(n._defaultPS||(n._defaultPS=[]).push(0,1,3,3,1,2),n._defaultPS),this.mVBData=new Float32Array(this._vs),this.mIBData=new Uint16Array(this._ps.length),this.mIBData.start=-1,this.mEleNum=this._ps.length,this.mTexture=t},t.init2=function(t,e,i,r,s){this.transform&&(this.transform=null),i?this._ps=i:(this._ps=[],this._ps.push(0,1,3,3,1,2)),this._verticles=r,this._uvs=s,this.mEleNum=this._ps.length,this.mTexture=t,(g.isConchNode||g.isConchApp)&&(this._initMyData(),this.mVBData=new Float32Array(this._vs))},t._initMyData=function(){var t=0,e=0,i=4*this._verticles.length;this._vs=n._tempVS;var r=!1;if(g.isConchNode||g.isConchApp?(this._vs.length=i,r=!0):this._vs.length<i&&(this._vs.length=i,r=!0),n._tVSLen=i,r)for(;t<i;)this._vs[t]=this._verticles[e],this._vs[t+1]=this._verticles[e+1],this._vs[t+2]=this._uvs[e],this._vs[t+3]=this._uvs[e+1],this._vs[t+4]=1,this._vs[t+5]=1,this._vs[t+6]=1,this._vs[t+7]=1,t+=8,e+=2;else for(;t<i;)this._vs[t]=this._verticles[e],this._vs[t+1]=this._verticles[e+1],this._vs[t+2]=this._uvs[e],this._vs[t+3]=this._uvs[e+1],t+=8,e+=2},t.getData2=function(t,e,i){var r;this.mVBBuffer=t,this.mIBBuffer=e,this._initMyData(),t.appendEx2(this._vs,Float32Array,n._tVSLen,4),this._indexStart=e._byteLength,(r=n._tempIB).length<this._ps.length&&(r.length=this._ps.length);for(var s=0,a=this._ps.length;s<a;s++)r[s]=this._ps[s]+i;e.appendEx2(r,Uint16Array,this._ps.length,2)},t.getData=function(t,e,i){if(this.mVBBuffer=t,this.mIBBuffer=e,t.append(this.mVBData),this._indexStart=e._byteLength,this.mIBData.start!=i){for(var r=0,s=this._ps.length;r<s;r++)this.mIBData[r]=this._ps[r]+i;this.mIBData.start=i}e.append(this.mIBData)},t.render=function(t,e,i){if(g.isWebGL&&this.mTexture){t._renderKey=0,t._shader2D.glTexture=null,et.getInstance().addSkinMesh(this);var r=at.createShape(t,this.mIBBuffer,this.mVBBuffer,this.mEleNum,this._indexStart,Et.create(512,0));this.transform||(this.transform=S.EMPTY),this.transform.translate(e,i),S.mul(this.transform,t._curMat,this._tempMatrix),this.transform.translate(-e,-i);var s=r.shaderValue,a=s.u_mmat2||vt.getMatrArray();vt.mat2MatArray(this._tempMatrix,a),s.textureHost=this.mTexture,s.offsetX=0,s.offsetY=0,s.u_mmat2=a,s.ALPHA=t._shader2D.ALPHA,t._submits[t._submits._length++]=r}else g.isConchApp&&this.mTexture&&(this.transform||(this.transform=S.EMPTY),t.setSkinMesh&&t.setSkinMesh(e,i,this._ps,this.mVBData,this.mEleNum,0,this.mTexture,this.transform))},n._tempVS=[],n._tempIB=[],n._defaultPS=null,n._tVSLen=0,n}(),et=function(){function t(){this.ib=null,this.vb=null;bt.mainContext;this.ib=$t.create(35048),this.vb=Jt.create(8)}c(t,"laya.webgl.shader.d2.skinAnishader.SkinMeshBuffer");var e=t.prototype;return e.addSkinMesh=function(t){t.getData2(this.vb,this.ib,this.vb._byteLength/32)},e.reset=function(){this.vb.clear(),this.ib.clear()},t.getInstance=function(){return t.instance=t.instance||new t},t.instance=null,t}(),it=function(){function t(t,e,i,r,s,a,n,h,l){this.r0=0,this.fill=!0,this.r1=Math.PI/2,void 0===l&&(l=0),this.x=t,this.y=e,this.width=i,this.height=r,this.edges=s,this.color=a,this.borderWidth=n,this.borderColor=h}c(t,"laya.webgl.shapes.BasePoly");var e=t.prototype;return T.imps(e,{"laya.webgl.shapes.IShape":!0}),e.getData=function(t,e,i){},e.rebuild=function(t){},e.setMatrix=function(t){},e.needUpdate=function(t){return!0},e.sector=function(t,e,i){var r=this.x,s=this.y,a=this.edges,n=(this.r1-this.r0)/a,h=this.width,l=this.height,o=this.color,u=(o>>16&255)/255,_=(o>>8&255)/255,c=(255&o)/255;t.push(r,s,u,_,c);for(var f=0;f<a+1;f++)t.push(r+Math.sin(n*f+this.r0)*h,s+Math.cos(n*f+this.r0)*l),t.push(u,_,c);for(f=0;f<a;f++)e.push(i,i+f+1,i+f+2)},e.createLine2=function(t,e,i,r,s,a){var n,h,l,o,u,_,c,f,d,m,p,g,v,x,b,y,T,A,E,S,w=t.concat(),R=s,I=this.borderColor,M=(I>>16&255)/255,C=(I>>8&255)/255,L=(255&I)/255,P=w.length/2,D=r,F=i/2;l=w[0],o=w[1],m=l-(u=w[2]),d=(d=-(o-(_=w[3])))/(S=Math.sqrt(d*d+m*m))*F,m=m/S*F,R.push(l-d+this.x,o-m+this.y,M,C,L,l+d+this.x,o+m+this.y,M,C,L);for(var B=1;B<P-1;B++)l=w[2*(B-1)],o=w[2*(B-1)+1],u=w[2*B],_=w[2*B+1],c=w[2*(B+1)],f=w[2*(B+1)+1],m=l-u,g=u-c,b=(-(d=(d=-(o-_))/(S=Math.sqrt(d*d+m*m))*F)+l)*(-(m=m/S*F)+_)-(-d+u)*(-m+o),A=(-(p=(p=-(_-f))/(S=Math.sqrt(p*p+g*g))*F)+c)*(-(g=g/S*F)+_)-(-p+u)*(-g+f),E=(v=-m+o-(-m+_))*(T=-p+u-(-p+c))-(y=-g+f-(-g+_))*(x=-d+u-(-d+l)),Math.abs(E)<.1?(E+=10.1,R.push(u-d+this.x,_-m+this.y,M,C,L,u+d+this.x,_+m+this.y,M,C,L)):(((n=(x*A-T*b)/E)-u)*(n-u)+((h=(y*b-v*A)/E)-_)+(h-_),R.push(n+this.x,h+this.y,M,C,L,u-(n-u)+this.x,_-(h-_)+this.y,M,C,L));l=w[w.length-4],o=w[w.length-3],m=l-(u=w[w.length-2]),d=(d=-(o-(_=w[w.length-1])))/(S=Math.sqrt(d*d+m*m))*F,m=m/S*F,R.push(u-d+this.x,_-m+this.y,M,C,L,u+d+this.x,_+m+this.y,M,C,L);var N=a;for(B=1;B<N;B++)e.push(D+2*(B-1),D+2*(B-1)+1,D+2*B+1,D+2*B+1,D+2*B,D+2*(B-1));return R},e.createLine=function(t,e,i,r){var s=t.concat(),a=t,n=this.borderColor,h=(n>>16&255)/255,l=(n>>8&255)/255,o=(255&n)/255;s.splice(0,5);var u,_,c,f,d,m,p,g,v,x,b,y,T,A,E,S,w,R,I,M,C=s.length/5,L=r,P=i/2;c=s[0],f=s[1],x=c-(d=s[5]),v=(v=-(f-(m=s[6])))/(M=Math.sqrt(v*v+x*x))*P,x=x/M*P,a.push(c-v,f-x,h,l,o,c+v,f+x,h,l,o);for(var D=1;D<C-1;D++)c=s[5*(D-1)],f=s[5*(D-1)+1],d=s[5*D],m=s[5*D+1],p=s[5*(D+1)],g=s[5*(D+1)+1],x=c-d,y=d-p,E=(-(v=(v=-(f-m))/(M=Math.sqrt(v*v+x*x))*P)+c)*(-(x=x/M*P)+m)-(-v+d)*(-x+f),R=(-(b=(b=-(m-g))/(M=Math.sqrt(b*b+y*y))*P)+p)*(-(y=y/M*P)+m)-(-b+d)*(-y+g),I=(T=-x+f-(-x+m))*(w=-b+d-(-b+p))-(S=-y+g-(-y+m))*(A=-v+d-(-v+c)),Math.abs(I)<.1?(I+=10.1,a.push(d-v,m-x,h,l,o,d+v,m+x,h,l,o)):(((u=(A*R-w*E)/I)-d)*(u-d)+((_=(S*E-T*R)/I)-m)+(_-m),a.push(u,_,h,l,o,d-(u-d),m-(_-m),h,l,o));c=s[s.length-10],f=s[s.length-9],x=c-(d=s[s.length-5]),v=(v=-(f-(m=s[s.length-4])))/(M=Math.sqrt(v*v+x*x))*P,x=x/M*P,a.push(d-v,m-x,h,l,o,d+v,m+x,h,l,o);var F=this.edges+1;for(D=1;D<F;D++)e.push(L+2*(D-1),L+2*(D-1)+1,L+2*D+1,L+2*D+1,L+2*D,L+2*(D-1));return a},e.createLoopLine=function(t,e,i,r,s,a){var n=t.concat(),h=s||t,l=this.borderColor,o=(l>>16&255)/255,u=(l>>8&255)/255,_=(255&l)/255;n.splice(0,5);var c=[n[0],n[1]],f=[n[n.length-5],n[n.length-4]],d=f[0]+.5*(c[0]-f[0]),m=f[1]+.5*(c[1]-f[1]);n.unshift(d,m,0,0,0),n.push(d,m,0,0,0);var p,g,v,x,b,y,T,A,E,S,w,R,I,M,C,L,P,D,F,B,N=n.length/5,O=r,V=i/2;v=n[0],x=n[1],S=v-(b=n[5]),E=(E=-(x-(y=n[6])))/(B=Math.sqrt(E*E+S*S))*V,S=S/B*V,h.push(v-E,x-S,o,u,_,v+E,x+S,o,u,_);for(var U=1;U<N-1;U++)v=n[5*(U-1)],x=n[5*(U-1)+1],b=n[5*U],y=n[5*U+1],T=n[5*(U+1)],A=n[5*(U+1)+1],S=v-b,R=b-T,C=(-(E=(E=-(x-y))/(B=Math.sqrt(E*E+S*S))*V)+v)*(-(S=S/B*V)+y)-(-E+b)*(-S+x),D=(-(w=(w=-(y-A))/(B=Math.sqrt(w*w+R*R))*V)+T)*(-(R=R/B*V)+y)-(-w+b)*(-R+A),F=(I=-S+x-(-S+y))*(P=-w+b-(-w+T))-(L=-R+A-(-R+y))*(M=-E+b-(-E+v)),Math.abs(F)<.1?(F+=10.1,h.push(b-E,y-S,o,u,_,b+E,y+S,o,u,_)):(((p=(M*D-P*C)/F)-b)*(p-b)+((g=(L*C-I*D)/F)-y)+(g-y),h.push(p,g,o,u,_,b-(p-b),y-(g-y),o,u,_));a&&(e=a);var k=this.edges+1;for(U=1;U<k;U++)e.push(O+2*(U-1),O+2*(U-1)+1,O+2*U+1,O+2*U+1,O+2*U,O+2*(U-1));return e.push(O+2*(U-1),O+2*(U-1)+1,O+1,O+1,O,O+2*(U-1)),h},t}(),rt=function(){function m(){}return c(m,"laya.webgl.shapes.Earcut"),m.earcut=function(t,e,i){i=i||2;var r,s,a,n,h,l,o,u=e&&e.length,_=u?e[0]*i:t.length,c=m.linkedList(t,0,_,i,!0),f=[];if(!c)return f;if(u&&(c=m.eliminateHoles(t,e,c,i)),t.length>80*i){r=a=t[0],s=n=t[1];for(var d=i;d<_;d+=i)(h=t[d])<r&&(r=h),(l=t[d+1])<s&&(s=l),a<h&&(a=h),n<l&&(n=l);o=0!==(o=Math.max(a-r,n-s))?1/o:0}return m.earcutLinked(c,f,i,r,s,o),f},m.linkedList=function(t,e,i,r,s){var a,n;if(s===0<m.signedArea(t,e,i,r))for(a=e;a<i;a+=r)n=m.insertNode(a,t[a],t[a+1],n);else for(a=i-r;e<=a;a-=r)n=m.insertNode(a,t[a],t[a+1],n);return n&&m.equals(n,n.next)&&(m.removeNode(n),n=n.next),n},m.filterPoints=function(t,e){if(!t)return t;e||(e=t);var i,r=t;do{if(i=!1,r.steiner||!m.equals(r,r.next)&&0!==m.area(r.prev,r,r.next))r=r.next;else{if(m.removeNode(r),(r=e=r.prev)===r.next)break;i=!0}}while(i||r!==e);return e},m.earcutLinked=function(t,e,i,r,s,a,n){if(t){!n&&a&&m.indexCurve(t,r,s,a);for(var h,l,o=t;t.prev!==t.next;)if(h=t.prev,l=t.next,a?m.isEarHashed(t,r,s,a):m.isEar(t))e.push(h.i/i),e.push(t.i/i),e.push(l.i/i),m.removeNode(t),t=l.next,o=l.next;else if((t=l)===o){n?1===n?(t=m.cureLocalIntersections(t,e,i),m.earcutLinked(t,e,i,r,s,a,2)):2===n&&m.splitEarcut(t,e,i,r,s,a):m.earcutLinked(m.filterPoints(t,null),e,i,r,s,a,1);break}}},m.isEar=function(t){var e=t.prev,i=t,r=t.next;if(0<=m.area(e,i,r))return!1;for(var s=t.next.next;s!==t.prev;){if(m.pointInTriangle(e.x,e.y,i.x,i.y,r.x,r.y,s.x,s.y)&&0<=m.area(s.prev,s,s.next))return!1;s=s.next}return!0},m.isEarHashed=function(t,e,i,r){var s=t.prev,a=t,n=t.next;if(0<=m.area(s,a,n))return!1;for(var h=s.x<a.x?s.x<n.x?s.x:n.x:a.x<n.x?a.x:n.x,l=s.y<a.y?s.y<n.y?s.y:n.y:a.y<n.y?a.y:n.y,o=s.x>a.x?s.x>n.x?s.x:n.x:a.x>n.x?a.x:n.x,u=s.y>a.y?s.y>n.y?s.y:n.y:a.y>n.y?a.y:n.y,_=m.zOrder(h,l,e,i,r),c=m.zOrder(o,u,e,i,r),f=t.nextZ;f&&f.z<=c;){if(f!==t.prev&&f!==t.next&&m.pointInTriangle(s.x,s.y,a.x,a.y,n.x,n.y,f.x,f.y)&&0<=m.area(f.prev,f,f.next))return!1;f=f.nextZ}for(f=t.prevZ;f&&f.z>=_;){if(f!==t.prev&&f!==t.next&&m.pointInTriangle(s.x,s.y,a.x,a.y,n.x,n.y,f.x,f.y)&&0<=m.area(f.prev,f,f.next))return!1;f=f.prevZ}return!0},m.cureLocalIntersections=function(t,e,i){var r=t;do{var s=r.prev,a=r.next.next;!m.equals(s,a)&&m.intersects(s,r,r.next,a)&&m.locallyInside(s,a)&&m.locallyInside(a,s)&&(e.push(s.i/i),e.push(r.i/i),e.push(a.i/i),m.removeNode(r),m.removeNode(r.next),r=t=a),r=r.next}while(r!==t);return r},m.splitEarcut=function(t,e,i,r,s,a){var n=t;do{for(var h=n.next.next;h!==n.prev;){if(n.i!==h.i&&m.isValidDiagonal(n,h)){var l=m.splitPolygon(n,h);return n=m.filterPoints(n,n.next),l=m.filterPoints(l,l.next),m.earcutLinked(n,e,i,r,s,a),void m.earcutLinked(l,e,i,r,s,a)}h=h.next}n=n.next}while(n!==t)},m.eliminateHoles=function(t,e,i,r){var s,a,n,h,l,o=[];for(s=0,a=e.length;s<a;s++)n=e[s]*r,h=s<a-1?e[s+1]*r:t.length,(l=m.linkedList(t,n,h,r,!1))===l.next&&(l.steiner=!0),o.push(m.getLeftmost(l));for(o.sort(m.compareX),s=0;s<o.length;s++)m.eliminateHole(o[s],i),i=m.filterPoints(i,i.next);return i},m.compareX=function(t,e){return t.x-e.x},m.eliminateHole=function(t,e){if(e=m.findHoleBridge(t,e)){var i=m.splitPolygon(e,t);m.filterPoints(i,i.next)}},m.findHoleBridge=function(t,e){var i,r=e,s=t.x,a=t.y,n=-1/0;do{if(a<=r.y&&a>=r.next.y&&r.next.y!==r.y){var h=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(h<=s&&n<h){if((n=h)===s){if(a===r.y)return r;if(a===r.next.y)return r.next}i=r.x<r.next.x?r:r.next}}r=r.next}while(r!==e);if(!i)return null;if(s===n)return i.prev;var l,o=i,u=i.x,_=i.y,c=1/0;for(r=i.next;r!==o;)s>=r.x&&r.x>=u&&s!==r.x&&m.pointInTriangle(a<_?s:n,a,u,_,a<_?n:s,a,r.x,r.y)&&((l=Math.abs(a-r.y)/(s-r.x))<c||l===c&&r.x>i.x)&&m.locallyInside(r,t)&&(i=r,c=l),r=r.next;return i},m.indexCurve=function(t,e,i,r){for(var s=t;null===s.z&&(s.z=m.zOrder(s.x,s.y,e,i,r)),s.prevZ=s.prev,s.nextZ=s.next,(s=s.next)!==t;);s.prevZ.nextZ=null,s.prevZ=null,m.sortLinked(s)},m.sortLinked=function(t){var e,i,r,s,a,n,h,l,o=1;do{for(i=t,a=t=null,n=0;i;){for(n++,r=i,e=h=0;e<o&&(h++,r=r.nextZ);e++);for(l=o;0<h||0<l&&r;)0!==h&&(0===l||!r||i.z<=r.z)?(i=(s=i).nextZ,h--):(r=(s=r).nextZ,l--),a?a.nextZ=s:t=s,s.prevZ=a,a=s;i=r}a.nextZ=null,o*=2}while(1<n);return t},m.zOrder=function(t,e,i,r,s){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-i)*s)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-r)*s)|e<<8))|e<<4))|e<<2))|e<<1))<<1},m.getLeftmost=function(t){for(var e=t,i=t;e.x<i.x&&(i=e),(e=e.next)!==t;);return i},m.pointInTriangle=function(t,e,i,r,s,a,n,h){return 0<=(s-n)*(e-h)-(t-n)*(a-h)&&0<=(t-n)*(r-h)-(i-n)*(e-h)&&0<=(i-n)*(a-h)-(s-n)*(r-h)},m.isValidDiagonal=function(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!m.intersectsPolygon(t,e)&&m.locallyInside(t,e)&&m.locallyInside(e,t)&&m.middleInside(t,e)},m.area=function(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)},m.equals=function(t,e){return t.x===e.x&&t.y===e.y},m.intersects=function(t,e,i,r){return!!(m.equals(t,e)&&m.equals(i,r)||m.equals(t,r)&&m.equals(i,e))||0<m.area(t,e,i)!=0<m.area(t,e,r)&&0<m.area(i,r,t)!=0<m.area(i,r,e)},m.intersectsPolygon=function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&m.intersects(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1},m.locallyInside=function(t,e){return m.area(t.prev,t,t.next)<0?0<=m.area(t,e,t.next)&&0<=m.area(t,t.prev,e):m.area(t,e,t.prev)<0||m.area(t,t.next,e)<0},m.middleInside=function(t,e){for(var i=t,r=!1,s=(t.x+e.x)/2,a=(t.y+e.y)/2;i.y>a!=i.next.y>a&&i.next.y!==i.y&&s<(i.next.x-i.x)*(a-i.y)/(i.next.y-i.y)+i.x&&(r=!r),(i=i.next)!==t;);return r},m.splitPolygon=function(t,e){var i=new st(t.i,t.x,t.y),r=new st(e.i,e.x,e.y),s=t.next,a=e.prev;return(t.next=e).prev=t,(i.next=s).prev=i,(r.next=i).prev=r,(a.next=r).prev=a,r},m.insertNode=function(t,e,i,r){var s=new st(t,e,i);return r?(s.next=r.next,(s.prev=r).next.prev=s,r.next=s):(s.prev=s).next=s,s},m.removeNode=function(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)},m.signedArea=function(t,e,i,r){for(var s=0,a=e,n=i-r;a<i;a+=r)s+=(t[n]-t[a])*(t[a+1]+t[n+1]),n=a;return s},m}(),st=function(){function t(t,e,i){this.i=null,this.x=null,this.y=null,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=null,this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}return c(t,"laya.webgl.shapes.EarcutNode"),t}(),at=(function(){function t(t,e,i,r,s,a,n){this.lineWidth=t,this.lineColor=e,this.lineAlpha=i,this.fillColor=r,this.fillAlpha=s,this.shape=n,this.fill=a}c(t,"laya.webgl.shapes.GeometryData");var e=t.prototype;e.clone=function(){return new t(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},e.getIndexData=function(){return null},e.getVertexData=function(){return null},e.destroy=function(){this.shape=null}}(),function(){function t(t){if(t instanceof Float32Array)this.points=t;else if(t instanceof Array){t.length;this.points=new Float32Array(t)}}c(t,"laya.webgl.shapes.Vertex");var e=t.prototype;T.imps(e,{"laya.webgl.shapes.IShape":!0}),e.getData=function(t,e,i){},e.needUpdate=function(t){return!1},e.rebuild=function(t){},e.setMatrix=function(t){}}(),function(){function l(t){void 0===t&&(t=1e4),this._renderType=t}c(l,"laya.webgl.submit.Submit");var t=l.prototype;return T.imps(t,{"laya.webgl.submit.ISubmit":!0}),t.releaseRender=function(){var t=l._cache;(t[t._length++]=this).shaderValue.release(),this._vb=null},t.getRenderType=function(){return this._renderType},t.renderSubmit=function(){if(0===this._numEle)return 1;var t=this.shaderValue.textureHost;if(t){var e=t.source;if(!t.bitmap||!e)return 1;this.shaderValue.texture=e}this._vb.bind_upload(this._ib);var i=bt.mainContext;return this.shaderValue.upload(),G.activeBlendFunction!==this._blendFn&&(i.enable(3042),this._blendFn(i),G.activeBlendFunction=this._blendFn),C.drawCall++,C.trianglesFaces+=this._numEle/3,i.drawElements(4,this._numEle,5123,this._startIdx),1},l.__init__=function(){var t=l.RENDERBASE=new l(-1);t.shaderValue=new Et(0,0),t.shaderValue.ALPHA=-1234},l.createSubmit=function(t,e,i,r,s){var a=l._cache._length?l._cache[--l._cache._length]:new l;null==i&&((i=a._selfVb||(a._selfVb=Jt.create(-1))).clear(),r=0),a._ib=e,a._vb=i,a._startIdx=r*mt.BYTES_PIDX,a._numEle=0;var n=t._nBlendType;a._blendFn=t._targets?G.targetFns[n]:G.fns[n],a.shaderValue=s,a.shaderValue.setValue(t._shader2D);var h=t._shader2D.filters;return h&&a.shaderValue.setFilters(h),a},l.createShape=function(t,e,i,r,s,a){var n=l._cache._length?l._cache[--l._cache._length]:new l;n._ib=e,n._vb=i,n._numEle=r,n._startIdx=s,n.shaderValue=a,n.shaderValue.setValue(t._shader2D);var h=t._nBlendType;return n._blendFn=t._targets?G.targetFns[h]:G.fns[h],n},l.TYPE_2D=1e4,l.TYPE_CANVAS=10003,l.TYPE_CMDSETRT=10004,l.TYPE_CUSTOM=10005,l.TYPE_BLURRT=10006,l.TYPE_CMDDESTORYPRERT=10007,l.TYPE_DISABLESTENCIL=10008,l.TYPE_OTHERIBVB=10009,l.TYPE_PRIMITIVE=10010,l.TYPE_RT=10011,l.TYPE_BLUR_RT=10012,l.TYPE_TARGET=10013,l.TYPE_CHANGE_VALUE=10014,l.TYPE_SHAPE=10015,l.TYPE_TEXTURE=10016,l.TYPE_FILLTEXTURE=10017,l.RENDERBASE=null,l._cache=((l._cache=[])._length=0,l._cache),l}()),nt=function(){function r(){this.fun=null,this.args=null}c(r,"laya.webgl.submit.SubmitCMD");var t=r.prototype;return T.imps(t,{"laya.webgl.submit.ISubmit":!0}),t.renderSubmit=function(){return this.fun.apply(null,this.args),1},t.getRenderType=function(){return 0},t.releaseRender=function(){var t=r._cache;t[t._length++]=this},r.create=function(t,e){var i=r._cache._length?r._cache[--r._cache._length]:new r;return i.fun=e,i.args=t,i},r._cache=((r._cache=[])._length=0,r._cache),r}(),ht=function(){function e(){this.variables={}}c(e,"laya.webgl.submit.SubmitCMDScope");var t=e.prototype;return t.getValue=function(t){return this.variables[t]},t.addValue=function(t,e){return this.variables[t]=e},t.setValue=function(t,e){return this.variables.hasOwnProperty(t)?this.variables[t]=e:null},t.clear=function(){for(var t in this.variables)delete this.variables[t]},t.recycle=function(){this.clear(),e.POOL.push(this)},e.create=function(){var t=e.POOL.pop();return t||(t=new e),t},e.POOL=[],e}(),lt=function(){function _(){this.offset=0,this.startIndex=0,this._mat=S.create()}c(_,"laya.webgl.submit.SubmitOtherIBVB");var t=_.prototype;return T.imps(t,{"laya.webgl.submit.ISubmit":!0}),t.releaseRender=function(){var t=_._cache;t[t._length++]=this},t.getRenderType=function(){return 10009},t.renderSubmit=function(){var t=this._shaderValue.textureHost;if(t){var e=t.source;if(!t.bitmap||!e)return 1;this._shaderValue.texture=e}this._vb.bind_upload(this._ib);var i=vt.worldMatrix4,r=S.TEMP;S.mulPre(this._mat,i[0],i[1],i[4],i[5],i[12],i[13],r);var s=vt.worldMatrix4=_.tempMatrix4;s[0]=r.a,s[1]=r.b,s[4]=r.c,s[5]=r.d,s[12]=r.tx,s[13]=r.ty,this._shader._offset=this.offset,this._shaderValue.refresh(),this._shader.upload(this._shaderValue),this._shader._offset=0;var a=bt.mainContext;return G.activeBlendFunction!==this._blendFn&&(a.enable(3042),this._blendFn(a),G.activeBlendFunction=this._blendFn),C.drawCall++,C.trianglesFaces+=this._numEle/3,a.drawElements(4,this._numEle,5123,this.startIndex),vt.worldMatrix4=i,Bt.activeShader=null,1},_.create=function(t,e,i,r,s,a,n,h,l){void 0===l&&(l=0);var o=_._cache._length?_._cache[--_._cache._length]:new _;o._ib=i,o._vb=e,o._numEle=r,o._shader=s,o._shaderValue=a;var u=t._nBlendType;switch(o._blendFn=t._targets?G.targetFns[u]:G.fns[u],l){case 0:o.offset=0,o.startIndex=h/(mt.BYTES_PE*e.vertexStride)*1.5,o.startIndex*=mt.BYTES_PIDX;break;case 1:o.startIndex=n,o.offset=h}return o},_._cache=((_._cache=[])._length=0,_._cache),_.tempMatrix4=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],_}(),ot=function(){function i(){this.submitIndex=0,this.submitLength=0,this.context=null,this.clipRect=new R,this.screenRect=new R}c(i,"laya.webgl.submit.SubmitScissor");var t=i.prototype;return T.imps(t,{"laya.webgl.submit.ISubmit":!0}),t._scissor=function(t,e,i,r){var s=vt.worldMatrix4,a=s[0],n=s[5],h=s[12],l=s[13];if(r*=n,(i*=a)<1||r<1)return!1;var o=(t=t*a+h)+i,u=(e=e*n+l)+r;t<0&&(i=o-(t=0)),e<0&&(r=u-(e=0));var _=vt.worldClipRect;if(t=Math.max(t,_.x),e=Math.max(e,_.y),i=Math.min(o,_.right)-t,r=Math.min(u,_.bottom)-e,i<1||r<1)return!1;var c=vt.worldScissorTest;return this.screenRect.copyFrom(_),_.x=t,_.y=e,_.width=i,_.height=r,vt.worldScissorTest=!0,e=vt.height-e-r,bt.mainContext.scissor(t,e,i,r),bt.mainContext.enable(3089),this.context.submitElement(this.submitIndex,this.submitIndex+this.submitLength),c?(e=vt.height-this.screenRect.y-this.screenRect.height,bt.mainContext.scissor(this.screenRect.x,e,this.screenRect.width,this.screenRect.height),bt.mainContext.enable(3089)):(bt.mainContext.disable(3089),vt.worldScissorTest=!1),_.copyFrom(this.screenRect),!0},t._scissorWithTagart=function(t,e,i,r){if(i<1||r<1)return!1;var s=t+i,a=e+r;t<0&&(i=s-(t=0)),e<0&&(r=a-(e=0));var n=vt.worldClipRect;if(t=Math.max(t,n.x),e=Math.max(e,n.y),i=Math.min(s,n.right)-t,r=Math.min(a,n.bottom)-e,i<1||r<1)return!1;var h=vt.worldScissorTest;return this.screenRect.copyFrom(n),vt.worldScissorTest=!0,n.x=t,n.y=e,n.width=i,n.height=r,e=vt.height-e-r,bt.mainContext.scissor(t,e,i,r),bt.mainContext.enable(3089),this.context.submitElement(this.submitIndex,this.submitIndex+this.submitLength),h?(e=vt.height-this.screenRect.y-this.screenRect.height,bt.mainContext.scissor(this.screenRect.x,e,this.screenRect.width,this.screenRect.height),bt.mainContext.enable(3089)):(bt.mainContext.disable(3089),vt.worldScissorTest=!1),n.copyFrom(this.screenRect),!0},t.renderSubmit=function(){return this.submitLength=Math.min(this.context._submits._length-1,this.submitLength),this.submitLength<1||this.clipRect.width<1||this.clipRect.height<1||(this.context._targets?this._scissorWithTagart(this.clipRect.x,this.clipRect.y,this.clipRect.width,this.clipRect.height):this._scissor(this.clipRect.x,this.clipRect.y,this.clipRect.width,this.clipRect.height)),this.submitLength+1},t.getRenderType=function(){return 0},t.releaseRender=function(){var t=i._cache;(t[t._length++]=this).context=null},i.create=function(t){var e=i._cache._length?i._cache[--i._cache._length]:new i;return e.context=t,e},i._cache=((i._cache=[])._length=0,i._cache),i}(),ut=function(){function l(){this.step=0,this.blendMode=null,this.level=0}c(l,"laya.webgl.submit.SubmitStencil");var t=l.prototype;return T.imps(t,{"laya.webgl.submit.ISubmit":!0}),t.renderSubmit=function(){switch(this.step){case 1:this.do1();break;case 2:this.do2();break;case 3:this.do3();break;case 4:this.do4();break;case 5:this.do5();break;case 6:this.do6();break;case 7:this.do7();break;case 8:this.do8()}return 1},t.getRenderType=function(){return 0},t.releaseRender=function(){var t=l._cache;t[t._length++]=this},t.do1=function(){var t=bt.mainContext;t.enable(2960),t.clear(1024),t.colorMask(!1,!1,!1,!1),t.stencilFunc(514,this.level,255),t.stencilOp(7680,7680,7682)},t.do2=function(){var t=bt.mainContext;t.stencilFunc(514,this.level+1,255),t.colorMask(!0,!0,!0,!0),t.stencilOp(7680,7680,7680)},t.do3=function(){var t=bt.mainContext;t.colorMask(!0,!0,!0,!0),t.stencilOp(7680,7680,7680),t.clear(1024),t.disable(2960)},t.do4=function(){var t=bt.mainContext;0==this.level&&(t.enable(2960),t.clear(1024)),t.colorMask(!1,!1,!1,!1),t.stencilFunc(519,0,255),t.stencilOp(7680,7680,7682)},t.do5=function(){var t=bt.mainContext;t.stencilFunc(514,this.level,255),t.colorMask(!0,!0,!0,!0),t.stencilOp(7680,7680,7680)},t.do6=function(){var t=bt.mainContext;G.targetFns[G.TOINT[this.blendMode]](t)},t.do7=function(){var t=bt.mainContext;t.colorMask(!1,!1,!1,!1),t.stencilOp(7680,7680,7683)},t.do8=function(){var t=bt.mainContext;t.colorMask(!0,!0,!0,!0),t.stencilFunc(514,this.level,255),t.stencilOp(7680,7680,7680)},l.restore=function(t,e,i,r,s){var a;if((t._renderKey=0)<l._mask&&l._mask--,0==l._mask)a=laya.webgl.submit.SubmitStencil.create(3),t.addRenderObject(a),t._curSubmit=at.RENDERBASE;else{a=laya.webgl.submit.SubmitStencil.create(7),t.addRenderObject(a);var n=t._vb;n._byteLength;if(pt.fillRectImgVb(n,null,e.x,e.y,e.width,e.height,F.DEF_UV,i,r,s,0