!function(t,e,i){i.un,i.uns;var r=i.static,s=i.class,a=i.getset,n=i.__newvec,h=laya.maths.Arith,l=laya.maths.Bezier,o=laya.resource.Bitmap,u=laya.utils.Browser,_=laya.utils.Byte,c=laya.utils.Color,f=(laya.filters.ColorFilter,i.Config),d=laya.resource.Context,m=(laya.events.Event,laya.filters.Filter),p=laya.display.Graphics,g=laya.resource.HTMLCanvas,v=(laya.utils.HTMLChar,laya.resource.HTMLImage),x=laya.resource.HTMLSubImage,b=(laya.utils.Handler,laya.net.Loader,laya.maths.Matrix),y=laya.maths.Point,T=laya.maths.Rectangle,A=laya.renders.Render,E=(laya.renders.RenderContext,laya.renders.RenderSprite),S=laya.resource.Resource,w=laya.resource.ResourceManager,R=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;i.interface("laya.webgl.shapes.IShape"),i.interface("laya.webgl.submit.ISubmit"),i.interface("laya.webgl.text.ICharSegment"),i.interface("laya.webgl.canvas.save.ISaveData"),i.interface("laya.webgl.resource.IMergeAtlasBitmap"),i.interface("laya.filters.IFilterActionGL","laya.filters.IFilterAction");var O=function(){function t(){}s(t,"laya.filters.webgl.FilterActionGL");var e=t.prototype;return i.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},a(0,e,"typeMix",function(){return 0}),t}(),V=function(){function t(){}return s(t,"laya.webgl.shader.ShaderValue"),t}(),U=function(){function t(t,e,r){this._atlasID=0,this._width=0,this._height=0,this._texCount=0,this._rowInfo=null,this._cells=null,this._failSize=new i,void 0===t&&(t=0),void 0===e&&(e=0),void 0===r&&(r=0),this._cells=null,this._rowInfo=null,this._init(t,e),this._atlasID=r}var e,i;s(t,"laya.webgl.atlas.AtlasGrid");var r=t.prototype;return r.getAltasID=function(){return this._atlasID},r.setAltasID=function(t){t>=0&&(this._atlasID=t)},r.addTex=function(t,e,i){var r=this._get(e,i);return 0==r.ret?r:(this._fill(r.x,r.y,e,i,t),this._texCount++,r)},r._release=function(){null!=this._cells&&(this._cells.length=0,this._cells=null),this._rowInfo&&(this._rowInfo.length=0,this._rowInfo=null)},r._init=function(t,i){if(this._width=t,this._height=i,this._release(),0==this._width)return!1;this._cells=new Uint8Array(this._width*this._height*3),this._rowInfo=n(this._height);for(var r=0;r=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=i),this._rowInfo[h].spaceCount-=i;for(var l=0;l0)for(h=0;h=0&&0==this._cells[3*((e+h)*a+l)];--l,++u);for(l=u;l>0;--l)this._cells[3*((e+h)*a+t-l)+1]=l,this._check(l>0)}if(e>0)for(l=t;l=0&&0==this._cells[3*(l+h*a)];--h,u++);for(h=u;h>0;--h)this._cells[3*(l+(e-h)*a)+2]=h,this._check(h>0)}},r._check=function(t){0==t&&console.log("xtexMerger 错误啦")},r._clear=function(){this._texCount=0;for(var t=0;t=h||this._atlaserArray.push(new Rt(this._gridNumX,this._gridNumY,this._width,this._height,t._sid_++));var d=this._atlaserArray[h],m=0,p=0,g=d.addTex(1,o,u);if(g.ret){m=g.x*this._gridSize+1,p=g.y*this._gridSize+1,i.lock=!0,d.addToAtlasTexture(i,m,p),d.addToAtlas(e,m,p),_=!0,this._curAtlasIndex=h;break}}if(_)break;this._atlaserArray.push(new Rt(this._gridNumX,this._gridNumY,this._width,this._height,t._sid_++)),this._needGC=!0,this.garbageCollection(),this._curAtlasIndex=this._atlaserArray.length-1}return _||console.log(">>>AtlasManager pushData error"),_},e.addToAtlas=function(t){laya.webgl.atlas.AtlasResourceManager.instance.pushData(t)},e.garbageCollection=function(){if(!0===this._needGC){for(var t=this._atlaserArray.length-this._maxAtlaserCount,e=0;e>>>altas garbageCollection ="+t),this._atlaserArray.splice(0,t),this._needGC=!1}return!0},e.freeAll=function(){for(var t=0,e=this._atlaserArray.length;t0?a[--a._length]:new t;n._value=r[n._valueName=t._namemap[i]],n._dataObj=r,n._newSubmit=s;var h=e._save;h[h._length++]=n}},t._cache=laya.webgl.canvas.save.SaveBase._createArray(),t._namemap=t._init(),t}(),X=function(){function t(){this._clipRect=new T}s(t,"laya.webgl.canvas.save.SaveClipRect");var e=t.prototype;return i.imps(e,{"laya.webgl.canvas.save.ISaveData":!0}),e.isSaveMark=function(){return!1},e.restore=function(e){e._clipRect=this._clipSaveRect,t._cache[t._cache._length++]=this,this._submitScissor.submitLength=e._submits._length-this._submitScissor.submitIndex,e._curSubmit=at.RENDERBASE,e._renderKey=0},t.save=function(e,i){if(131072!=(131072&e._saveMark._saveuse)){e._saveMark._saveuse|=131072;var r=t._cache,s=r._length>0?r[--r._length]:new t;s._clipSaveRect=e._clipRect,e._clipRect=s._clipRect.copyFrom(e._clipRect),s._submitScissor=i;var a=e._save;a[a._length++]=s}},r(t,["_cache",function(){return this._cache=Y._createArray()}]),t}(),K=function(){function t(){this._contextX=0,this._contextY=0,this._clipRect=new T,this._rect=new T,this._matrix=new b}s(t,"laya.webgl.canvas.save.SaveClipRectStencil");var e=t.prototype;return i.imps(e,{"laya.webgl.canvas.save.ISaveData":!0}),e.isSaveMark=function(){return!1},e.restore=function(e){ut.restore(e,this._rect,this._saveMatrix,this._contextX,this._contextY),e._clipRect=this._clipSaveRect,e._curMat=this._saveMatrix,e._x=this._contextX,e._y=this._contextY,t._cache[t._cache._length++]=this,e._curSubmit=at.RENDERBASE},t.save=function(e,i,r,s,a,n,h,l,o,u){if(262144!=(262144&e._saveMark._saveuse)){e._saveMark._saveuse|=262144;var _=t._cache,c=_._length>0?_[--_._length]:new t;c._clipSaveRect=e._clipRect,c._clipRect.setTo(h,l,o,u),e._clipRect=c._clipRect,c._rect.x=r,c._rect.y=s,c._rect.width=a,c._rect.height=n,c._contextX=e._x,c._contextY=e._y,c._saveMatrix=e._curMat,e._curMat.copyTo(c._matrix),e._curMat=c._matrix,c._submitStencil=i;var f=e._save;f[f._length++]=c}},r(t,["_cache",function(){return this._cache=Y._createArray()}]),t}(),Q=function(){function t(){this._saveuse=0}s(t,"laya.webgl.canvas.save.SaveMark");var e=t.prototype;return i.imps(e,{"laya.webgl.canvas.save.ISaveData":!0}),e.isSaveMark=function(){return!0},e.restore=function(e){e._saveMark=this._preSaveMark,t._no[t._no._length++]=this},t.Create=function(e){var i=t._no,r=i._length>0?i[--i._length]:new t;return r._saveuse=0,r._preSaveMark=e._saveMark,e._saveMark=r,r},r(t,["_no",function(){return this._no=Y._createArray()}]),t}(),Z=function(){function t(){this._matrix=new b}s(t,"laya.webgl.canvas.save.SaveTransform");var e=t.prototype;return i.imps(e,{"laya.webgl.canvas.save.ISaveData":!0}),e.isSaveMark=function(){return!1},e.restore=function(e){e._curMat=this._savematrix,t._no[t._no._length++]=this},t.save=function(e){var i=e._saveMark;if(2048!=(2048&i._saveuse)){i._saveuse|=2048;var r=t._no,s=r._length>0?r[--r._length]:new t;s._savematrix=e._curMat,e._curMat=e._curMat.copyTo(s._matrix);var a=e._save;a[a._length++]=s}},r(t,["_no",function(){return this._no=Y._createArray()}]),t}(),q=function(){function t(){}s(t,"laya.webgl.canvas.save.SaveTranslate");var e=t.prototype;return i.imps(e,{"laya.webgl.canvas.save.ISaveData":!0}),e.isSaveMark=function(){return!1},e.restore=function(e){e._curMat;e._x=this._x,e._y=this._y,t._no[t._no._length++]=this},t.save=function(e){var i=t._no,r=i._length>0?i[--i._length]:new t;r._x=e._x,r._y=e._y;var s=e._save;s[s._length++]=r},r(t,["_no",function(){return this._no=Y._createArray()}]),t}(),j=function(){function t(){this.target=null,this.repaint=!1,this._width=NaN,this._height=NaN,this._sp=null,this._clipRect=new T}s(t,"laya.webgl.resource.RenderTargetMAX");var e=t.prototype;return e.setSP=function(t){this._sp=t},e.size=function(t,e){var r=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){i.timer.callLater(r._sp,r._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=b.EMPTY,vt.restoreTempArray(),vt.worldMatrix4=vt.TEMPMAT4_ARRAY,vt.worldAlpha=1,vt.worldFilters=null,vt.worldShaderDefines=null,Bt.activeShader=null,e.start(),f.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,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}s(t,"laya.webgl.shader.d2.Shader2D");return t.prototype.destroy=function(){this.defines=null,this.filters=null,this.glTexture=null,this.strokeStyle=null,this.fillStyle=null},t.__init__=function(){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;");var t,e;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 t(t,e,i){this._value=0,this._name2int=t,this._int2name=e,this._int2nameMap=i}s(t,"laya.webgl.shader.ShaderDefines");var e=t.prototype;return e.add=function(t){return"string"==typeof t&&(t=this._name2int[t]),this._value|=t,this._value},e.addInt=function(t){return this._value|=t,this._value},e.remove=function(t){return"string"==typeof t&&(t=this._name2int[t]),this._value&=~t,this._value},e.isDefine=function(t){return(this._value&t)===t},e.getValue=function(){return this._value},e.setValue=function(t){this._value=t},e.toNameDic=function(){var e=this._int2nameMap[this._value];return e||t._toText(this._value,this._int2name,this._int2nameMap)},t._reg=function(t,e,i,r){i[t]=e,r[e]=t},t._toText=function(t,e,i){var r=i[t];if(r)return r;for(var s={},a=1,n=0;n<32&&!((a=1<t);n++)if(t&a){var h=e[a];h&&(s[h]="")}return i[t]=s,s},t._toInt=function(t,e){for(var i=t.split("."),r=0,s=0,a=i.length;s>16&255)/255,_=(o>>8&255)/255,c=(255&o)/255;t.push(r,s,u,_,c);for(var f=0;f>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>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>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;U80*r){l=u=e[0],o=_=e[1];for(var m=r;mu&&(u=c),f>_&&(_=f);d=0!==(d=Math.max(u-l,_-o))?1/d:0}return t.earcutLinked(n,h,r,l,o,d),h},t.linkedList=function(e,i,r,s,a){var n,h;if(a===t.signedArea(e,i,r,s)>0)for(n=i;n=i;n-=s)h=t.insertNode(n,e[n],e[n+1],h);return h&&t.equals(h,h.next)&&(t.removeNode(h),h=h.next),h},t.filterPoints=function(e,i){if(!e)return e;i||(i=e);var r,s=e;do{if(r=!1,s.steiner||!t.equals(s,s.next)&&0!==t.area(s.prev,s,s.next))s=s.next;else{if(t.removeNode(s),(s=i=s.prev)===s.next)break;r=!0}}while(r||s!==i);return i},t.earcutLinked=function(e,i,r,s,a,n,h){if(e){!h&&n&&t.indexCurve(e,s,a,n);for(var l,o,u=e;e.prev!==e.next;)if(l=e.prev,o=e.next,n?t.isEarHashed(e,s,a,n):t.isEar(e))i.push(l.i/r),i.push(e.i/r),i.push(o.i/r),t.removeNode(e),e=o.next,u=o.next;else if((e=o)===u){h?1===h?(e=t.cureLocalIntersections(e,i,r),t.earcutLinked(e,i,r,s,a,n,2)):2===h&&t.splitEarcut(e,i,r,s,a,n):t.earcutLinked(t.filterPoints(e,null),i,r,s,a,n,1);break}}},t.isEar=function(e){var i=e.prev,r=e,s=e.next;if(t.area(i,r,s)>=0)return!1;for(var a=e.next.next;a!==e.prev;){if(t.pointInTriangle(i.x,i.y,r.x,r.y,s.x,s.y,a.x,a.y)&&t.area(a.prev,a,a.next)>=0)return!1;a=a.next}return!0},t.isEarHashed=function(e,i,r,s){var a=e.prev,n=e,h=e.next;if(t.area(a,n,h)>=0)return!1;for(var l=a.xn.x?a.x>h.x?a.x:h.x:n.x>h.x?n.x:h.x,_=a.y>n.y?a.y>h.y?a.y:h.y:n.y>h.y?n.y:h.y,c=t.zOrder(l,o,i,r,s),f=t.zOrder(u,_,i,r,s),d=e.nextZ;d&&d.z<=f;){if(d!==e.prev&&d!==e.next&&t.pointInTriangle(a.x,a.y,n.x,n.y,h.x,h.y,d.x,d.y)&&t.area(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=c;){if(d!==e.prev&&d!==e.next&&t.pointInTriangle(a.x,a.y,n.x,n.y,h.x,h.y,d.x,d.y)&&t.area(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0},t.cureLocalIntersections=function(e,i,r){var s=e;do{var a=s.prev,n=s.next.next;!t.equals(a,n)&&t.intersects(a,s,s.next,n)&&t.locallyInside(a,n)&&t.locallyInside(n,a)&&(i.push(a.i/r),i.push(s.i/r),i.push(n.i/r),t.removeNode(s),t.removeNode(s.next),s=e=n),s=s.next}while(s!==e);return s},t.splitEarcut=function(e,i,r,s,a,n){var h=e;do{for(var l=h.next.next;l!==h.prev;){if(h.i!==l.i&&t.isValidDiagonal(h,l)){var o=t.splitPolygon(h,l);return h=t.filterPoints(h,h.next),o=t.filterPoints(o,o.next),t.earcutLinked(h,i,r,s,a,n),void t.earcutLinked(o,i,r,s,a,n)}l=l.next}h=h.next}while(h!==e)},t.eliminateHoles=function(e,i,r,s){var a,n,h,l,o,u=[];for(a=0,n=i.length;a=s.next.y&&s.next.y!==s.y){var l=s.x+(n-s.y)*(s.next.x-s.x)/(s.next.y-s.y);if(l<=a&&l>h){if(h=l,l===a){if(n===s.y)return s;if(n===s.next.y)return s.next}r=s.x=s.x&&s.x>=_&&a!==s.x&&t.pointInTriangle(nr.x)&&t.locallyInside(s,e)&&(r=s,f=o),s=s.next;return r},t.indexCurve=function(e,i,r,s){var a=e;do{null===a.z&&(a.z=t.zOrder(a.x,a.y,i,r,s)),a.prevZ=a.prev,a.nextZ=a.next,a=a.next}while(a!==e);a.prevZ.nextZ=null,a.prevZ=null,t.sortLinked(a)},t.sortLinked=function(t){var e,i,r,s,a,n,h,l,o=1;do{for(i=t,t=null,a=null,n=0;i;){for(n++,r=i,h=0,e=0;e0||l>0&&r;)0!==h&&(0===l||!r||i.z<=r.z)?(s=i,i=i.nextZ,h--):(s=r,r=r.nextZ,l--),a?a.nextZ=s:t=s,s.prevZ=a,a=s;i=r}a.nextZ=null,o*=2}while(n>1);return t},t.zOrder=function(t,e,i,r,s){return t=32767*(t-i)*s,e=32767*(e-r)*s,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1},t.getLeftmost=function(t){var e=t,i=t;do{e.x=0&&(t-n)*(r-h)-(i-n)*(e-h)>=0&&(i-n)*(a-h)-(s-n)*(r-h)>=0},t.isValidDiagonal=function(e,i){return e.next.i!==i.i&&e.prev.i!==i.i&&!t.intersectsPolygon(e,i)&&t.locallyInside(e,i)&&t.locallyInside(i,e)&&t.middleInside(e,i)},t.area=function(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)},t.equals=function(t,e){return t.x===e.x&&t.y===e.y},t.intersects=function(e,i,r,s){return!!(t.equals(e,i)&&t.equals(r,s)||t.equals(e,s)&&t.equals(r,i))||t.area(e,i,r)>0!=t.area(e,i,s)>0&&t.area(r,s,e)>0!=t.area(r,s,i)>0},t.intersectsPolygon=function(e,i){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==i.i&&r.next.i!==i.i&&t.intersects(r,r.next,e,i))return!0;r=r.next}while(r!==e);return!1},t.locallyInside=function(e,i){return t.area(e.prev,e,e.next)<0?t.area(e,i,e.next)>=0&&t.area(e,e.prev,i)>=0:t.area(e,i,e.prev)<0||t.area(e,e.next,i)<0},t.middleInside=function(t,e){var i=t,r=!1,s=(t.x+e.x)/2,a=(t.y+e.y)/2;do{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}while(i!==t);return r},t.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,e.prev=t,i.next=s,s.prev=i,r.next=i,i.prev=r,a.next=r,r.prev=a,r},t.insertNode=function(t,e,i,r){var s=new st(t,e,i);return r?(s.next=r.next,s.prev=r,r.next.prev=s,r.next=s):(s.prev=s,s.next=s),s},t.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)},t.signedArea=function(t,e,i,r){for(var s=0,a=e,n=i-r;a0&&t._mask--,0==t._mask)n=laya.webgl.submit.SubmitStencil.create(3),e.addRenderObject(n),e._curSubmit=at.RENDERBASE;else{n=laya.webgl.submit.SubmitStencil.create(7),e.addRenderObject(n);var h=e._vb;h._byteLength;if(pt.fillRectImgVb(h,null,i.x,i.y,i.width,i.height,F.DEF_UV,r,s,a,0,0)){e._shader2D.glTexture=null;var l=e._curSubmit=at.createSubmit(e,e._ib,h,(h._byteLength-64)/32*3,Et.create(2,0));l.shaderValue.ALPHA=1,e._submits[e._submits._length++]=l,e._curSubmit._numEle+=6,e._curSubmit=at.RENDERBASE}else alert("clipRect calc stencil rect error");n=laya.webgl.submit.SubmitStencil.create(8),e.addRenderObject(n)}},t.restore2=function(e,i){var r;e._renderKey=0,t._mask>0&&t._mask--,0==t._mask?(r=laya.webgl.submit.SubmitStencil.create(3),e.addRenderObject(r),e._curSubmit=at.RENDERBASE):(r=laya.webgl.submit.SubmitStencil.create(7),e.addRenderObject(r),e._submits[e._submits._length++]=i,r=laya.webgl.submit.SubmitStencil.create(8),e.addRenderObject(r))},t.create=function(e){var i=t._cache._length?t._cache[--t._cache._length]:new t;return i.step=e,5==e&&++t._mask,i.level=t._mask,i},t._cache=(t._cache=[],t._cache._length=0,t._cache),t._mask=0,t}(),_t=function(){function t(){this._renderType=0,this._vb=null,this._ib=null,this._startIdx=0,this._numEle=0,this.shaderValue=null,this.blendType=0,this.proName=null,this.scope=null}s(t,"laya.webgl.submit.SubmitTarget");var e=t.prototype;return i.imps(e,{"laya.webgl.submit.ISubmit":!0}),e.renderSubmit=function(){this._vb.bind_upload(this._ib);var t=this.scope.getValue(this.proName);return t&&(this.shaderValue.texture=t.source,this.shaderValue.strength&&!this.shaderValue.blurInfo&&(this.shaderValue.blurInfo=[t.width,t.height]),this.shaderValue.upload(),this.blend(),C.drawCall++,C.trianglesFaces+=this._numEle/3,bt.mainContext.drawElements(4,this._numEle,5123,this._startIdx)),1},e.blend=function(){if(G.activeBlendFunction!==G.fns[this.blendType]){var t=bt.mainContext;t.enable(3042),G.fns[this.blendType](t),G.activeBlendFunction=G.fns[this.blendType]}},e.getRenderType=function(){return 0},e.releaseRender=function(){var e=t._cache;e[e._length++]=this},t.create=function(e,i,r,s,a,n){var h=t._cache._length?t._cache[--t._cache._length]:new t;return h._ib=i,h._vb=r,h.proName=n,h._startIdx=s*mt.BYTES_PIDX,h._numEle=0,h.blendType=e._nBlendType,h.shaderValue=a,h.shaderValue.setValue(e._shader2D),h},t._cache=(t._cache=[],t._cache._length=0,t._cache),t}(),ct=function(){function t(){this._sourceStr=null}s(t,"laya.webgl.text.CharSegment");var e=t.prototype;return i.imps(e,{"laya.webgl.text.ICharSegment":!0}),e.textToSpit=function(t){this._sourceStr=t},e.getChar=function(t){return this._sourceStr.charAt(t)},e.getCharCode=function(t){return this._sourceStr.charCodeAt(t)},e.length=function(){return this._sourceStr.length},t}(),ft=function(){function t(){}var e;return s(t,"laya.webgl.text.DrawText"),t.__init__=function(){t._charsTemp=new Array,t._drawValue=new e,t._charSeg=new ct},t.customCharSeg=function(e){t._charSeg=e},t.getChar=function(e,i,r){var s=Yt.createOneChar(e,r);return-1!=i&&(t._charsCache[i]=s),s},t._drawSlow=function(e,i,r,s,a,n,h,l,o,u,_,c,f,d,m){var p,g,v=t._drawValue.value(n,l,o,u,f,d,m),x=0,b=0,y=t._charsTemp,T=0,A=NaN;if(s)for(y.length=s.length,x=0,b=s.length;xf.WebGLTextCacheCount&&((t._textsCache={}).__length=0,t._curPoolIndex=0),t._textCachesPool[t._curPoolIndex]?(E=t._textsCache[A]=t._textCachesPool[t._curPoolIndex],E.length=0):t._textCachesPool[t._curPoolIndex]=E=t._textsCache[A]=[],t._textsCache.__length++,t._curPoolIndex++,t._drawSlow(E,e,r,s,a,n,h,l,o,u,_,c,m,p,d)):t._drawSlow(E,e,r,s,a,n,h,l,o,u,_,c,m,p,d)}}},t._charsTemp=null,t._textCachesPool=[],t._curPoolIndex=0,t._charsCache={},t._textsCache={},t._drawValue=null,t.d=[],t._charSeg=null,t.__init$=function(){e=function(){function t(){}s(t,"");return t.prototype.value=function(e,i,r,s,a,n,h){this.font=e,this.fillColor=i,this.borderColor=r,this.lineWidth=s,this.scaleX=a,this.scaleY=n,this.underLine=h;var l=e.toString()+a+n+s+i+r+h;return this.txtID=t._keymap[l],this.txtID||(this.txtID=1e-7*++t._keymapCount,t._keymap[l]=this.txtID),this},t.clear=function(){t._keymap={},t._keymapCount=1},t._keymap={},t._keymapCount=1,t}()},t}(),dt=function(){function t(e){this._index=0,this._size=14,this._italic=-2,t._cache2=t._cache2||[],this.setFont(e||"14px Arial")}s(t,"laya.webgl.text.FontInContext");var e=t.prototype;return e.setFont=function(e){var i=t._cache2[e];if(i)this._words=i[0],this._size=i[1];else{this._words=e.split(" ");for(var r=0,s=this._words.length;r0){this._index=r;break}this._size=parseInt(this._words[this._index]),t._cache2[e]=[this._words,this._size]}this._text=null,this._italic=-2},e.getItalic=function(){return-2===this._italic&&(this._italic=this.hasType("italic")),this._italic},e.hasType=function(t){for(var e=0,i=this._words.length;ee&&this._index--;break}this._text=null,this._italic=-2},e.copyTo=function(t){return t._text=this._text,t._size=this._size,t._index=this._index,t._words=this._words.slice(),t._italic=-2,t},e.toString=function(){return this._text?this._text:this._text=this._words.join(" ")},a(0,e,"size",function(){return this._size},function(t){this._size=t,this._words[this._index]=t+"px",this._text=null}),t.create=function(e){var i=t._cache[e];return i||(i=t._cache[e]=new t(e))},t.EMPTY=new t,t._cache={},t._cache2=null,t}(),mt=function(){function t(){}return s(t,"laya.webgl.utils.CONST3D2D"),t.defaultMatrix4=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t.defaultMinusYMatrix4=[1,0,0,0,0,-1,0,0,0,0,1,0,0,0,0,1],t.uniformMatrix3=[1,0,0,0,0,1,0,0,0,0,1,0],t._TMPARRAY=[],t._OFFSETX=0,t._OFFSETY=0,r(t,["BYTES_PE",function(){return this.BYTES_PE=Float32Array.BYTES_PER_ELEMENT},"BYTES_PIDX",function(){return this.BYTES_PIDX=Uint16Array.BYTES_PER_ELEMENT}]),t}(),pt=function(){function t(){}return s(t,"laya.webgl.utils.GlUtils"),t.make2DProjection=function(t,e,i){return[2/t,0,0,0,0,-2/e,0,0,0,0,2/i,0,-1,1,0,1]},t.fillIBQuadrangle=function(t,e){if(e>65535/4)throw Error("IBQuadrangle count:"+e+" must<:"+Math.floor(65535/4));e=Math.floor(e),t._resizeBuffer(6*(e+1)*2,!1),t.byteLength=t.bufferLength;for(var i=t.getUint16Array(),r=0,s=0;s=6*i*2||t.fillIBQuadrangle(e,i)},t.mathCeilPowerOfTwo=function(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t},t.fillQuadrangleImgVb=function(t,e,i,r,s,a,n,h){var l=16+(t._byteLength>>2);t.byteLength=l<<2;var o=t.getFloat32Array();o[(l-=16)+2]=s[0],o[l+3]=s[1],o[l+6]=s[2],o[l+7]=s[3],o[l+10]=s[4],o[l+11]=s[5],o[l+14]=s[6],o[l+15]=s[7];var u=a.a,_=a.b,c=a.c,f=a.d;if(1!==u||0!==_||0!==c||1!==f){a.bTransform=!0;var d=a.tx+n,m=a.ty+h;o[l]=(r[0]+e)*u+(r[1]+i)*c+d,o[l+1]=(r[0]+e)*_+(r[1]+i)*f+m,o[l+4]=(r[2]+e)*u+(r[3]+i)*c+d,o[l+5]=(r[2]+e)*_+(r[3]+i)*f+m,o[l+8]=(r[4]+e)*u+(r[5]+i)*c+d,o[l+9]=(r[4]+e)*_+(r[5]+i)*f+m,o[l+12]=(r[6]+e)*u+(r[7]+i)*c+d,o[l+13]=(r[6]+e)*_+(r[7]+i)*f+m}else a.bTransform=!1,e+=a.tx+n,i+=a.ty+h,o[l]=e+r[0],o[l+1]=i+r[1],o[l+4]=e+r[2],o[l+5]=i+r[3],o[l+8]=e+r[4],o[l+9]=i+r[5],o[l+12]=e+r[6],o[l+13]=i+r[7];return t._upload=!0,!0},t.fillTranglesVB=function(t,e,i,r,s,a,n){var h=(t._byteLength>>2)+r.length;t.byteLength=h<<2;var l=t.getFloat32Array();h-=r.length;for(var o=r.length,u=s.a,_=s.b,c=s.c,f=s.d,d=0;d>2;t.byteLength=r+16<<2;for(var s=t.getFloat32Array(),a=0,n=r-16;a<4;a++)s[r]=s[n]+e,++n,s[++r]=s[n]+i,++n,s[++r]=s[n],++n,s[++r]=s[n],++r,++n;t._upload=!0},t.fillRectImgVb=function(t,e,i,r,s,a,n,h,l,o,u,_,c){void 0===c&&(c=!1);var f,d,m,p,g,v,x,b,y,T,A,E,S,w,R,I,M=1,C=h.a,L=h.b,P=h.c,D=h.d,F=e&&e.width<99999999;if(1!==C||0!==L||0!==P||1!==D?(h.bTransform=!0,0===L&&0===P&&(M=23,y=s+i,T=a+r,f=C*i+(A=h.tx+l),m=C*y+A,d=D*r+(E=h.ty+o),p=D*T+E)):(M=23,h.bTransform=!1,m=(f=i+h.tx+l)+s,p=(d=r+h.ty+o)+a),F&&(g=e.x,v=e.y,x=e.width+g,b=e.height+v),1!==M){if(Math.min(f,m)>=x)return!1;if(Math.min(d,p)>=b)return!1;if(Math.max(m,f)<=g)return!1;if(Math.max(p,d)<=v)return!1}var B=t._byteLength>>2;t.byteLength=B+16<<2;var N=t.getFloat32Array();switch(N[B+2]=n[0],N[B+3]=n[1],N[B+6]=n[2],N[B+7]=n[3],N[B+10]=n[4],N[B+11]=n[5],N[B+14]=n[6],N[B+15]=n[7],M){case 1:A=h.tx+l,E=h.ty+o;var O=C*i,V=P*r,U=D*r,k=L*i,H=C*(y=s+i),G=P*(T=a+r),W=D*T,z=L*y;c?(S=O+V+A,R=Math.round(S)-S,w=U+k+E,I=Math.round(w)-w,N[B]=S+R,N[B+1]=w+I,N[B+4]=H+V+A+R,N[B+5]=U+z+E+I,N[B+8]=H+G+A+R,N[B+9]=W+z+E+I,N[B+12]=O+G+A+R,N[B+13]=W+k+E+I):(N[B]=O+V+A,N[B+1]=U+k+E,N[B+4]=H+V+A,N[B+5]=U+z+E,N[B+8]=H+G+A,N[B+9]=W+z+E,N[B+12]=O+G+A,N[B+13]=W+k+E);break;case 23:c?(S=f+u,R=Math.round(S)-S,w=d,I=Math.round(w)-w,N[B]=S+R,N[B+1]=w+I,N[B+4]=m+u+R,N[B+5]=d+I,N[B+8]=m+R,N[B+9]=p+I,N[B+12]=f+R,N[B+13]=p+I):(N[B]=f+u,N[B+1]=d,N[B+4]=m+u,N[B+5]=d,N[B+8]=m,N[B+9]=p,N[B+12]=f,N[B+13]=p)}return t._upload=!0,!0},t.fillLineVb=function(e,i,r,s,a,n,h,l){var o=.5*h,u=t._fillLineArray,_=-(s-n),c=r-a,f=Math.sqrt(_*_+c*c);_/=f,c/=f,_*=o,c*=o,u[0]=r-_,u[1]=s-c,u[4]=r+_,u[5]=s+c,u[8]=a+_,u[9]=n+c,u[12]=a-_,u[13]=n-c,l&&l.transformPointArray(u,u);var d=16+(e._byteLength>>2);return e.byteLength=d<<2,e.insertData(u,d-16),!0},t._fillLineArray=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t}(),gt=(function(){function t(){}s(t,"laya.webgl.utils.MatirxArray"),t.ArrayMul=function(e,i,r){if(e)if(i)for(var s=NaN,a=NaN,n=NaN,h=NaN,l=0;l<4;l++)s=e[l],a=e[l+4],n=e[l+8],h=e[l+12],r[l]=s*i[0]+a*i[1]+n*i[2]+h*i[3],r[l+4]=s*i[4]+a*i[5]+n*i[6]+h*i[7],r[l+8]=s*i[8]+a*i[9]+n*i[10]+h*i[11],r[l+12]=s*i[12]+a*i[13]+n*i[14]+h*i[15];else t.copyArray(e,r);else t.copyArray(i,r)},t.copyArray=function(t,e){if(t&&e)for(var i=0;i2&&console.log("ShaderCompile use time:"+(u.now()-l)+" size:"+i.length+"/"+r.length)}var e,i;s(t,"laya.webgl.utils.ShaderCompile");var a=t.prototype;return a._compileToTree=function(i,r,s,a,n){var h,l,o,u,_,c,f,d=0,m=0,p=0,g=0;for(m=s;m=0&&(o=o.substr(0,d)),h=f||new e(a),f=null,h.text=o,h.noCompile=!0,(d=o.indexOf("#"))>=0){for(u="#",g=d+1,p=o.length;g]/),h.noCompile?console.log("function():Boolean{return "+o.substr(d+h.name.length)+"}"):(c=o.replace(/^\s*/,"").split(/\s+/),h.setCondition(c[1],"#ifdef"===u?1:2),h.text="//"+h.text),h.setParent(i),i=h,n)for(c=o.substr(g).split(t._splitToWordExps3),g=0;g0&&t.splitToWords(o,l),f=h,l.text+="\n"+o;continue}a.length>0&&t.splitToWords(o,h)}h.setParent(i)}},a.createShader=function(t,e,i){var r={},s="";if(t)for(var a in t)s+="#define "+a+"\n",r[a]=!0;var n=this._VS.toscript(r,[]),h=this._PS.toscript(r,[]);return(i||Qt.create)(s+n.join("\n"),s+h.join("\n"),e,this._nameMap)},t._parseOne=function(e,i,r,s,a,n){var h={type:t.shaderParamsMap[r[s+1]],name:r[s+2],size:isNaN(parseInt(r[s+3]))?1:parseInt(r[s+3])};return n&&("attribute"==a?e.push(h):i.push(h)),":"==r[s+3]&&(h.type=r[s+4],s+=2),s+=2},t.addInclude=function(e,r){if(!r||0===r.length)throw new Error("add shader include file err:"+e);if(t.includes[e])throw new Error("add shader include file err, has add:"+e);t.includes[e]=new i(r)},t.preGetParams=function(e,i){var r=[e,i],s={},a=[],n=[],h={},l=[];s.attributes=a,s.uniforms=n,s.defines=h;for(var o=0,u=0,_=0;_<2;_++){r[_]=r[_].replace(t._removeAnnotation,"");var c,f=r[_].match(t._reg);for(o=0,u=f.length;o()'\",;".indexOf(i)>=0){if(a>=0&&n-a>1&&(r=t.substr(a,n-a),s.push(r)),'"'==i||"'"==i){var l=t.indexOf(i,n+1);if(l<0)throw"Sharder err:"+t;s.push(t.substr(n+1,l-n-1)),n=l,a=-1;continue}"("==i&&e&&s.length>0&&(r=s[s.length-1]+";","vec4;main;".indexOf(r)<0&&(e.useFuns+=r)),a=-1}else a<0&&(a=n);return a1&&(r=t.substr(a,h-a),s.push(r)),s},t.IFDEF_NO=0,t.IFDEF_YES=1,t.IFDEF_ELSE=2,t.IFDEF_PARENT=3,t._removeAnnotation=new RegExp("(/\\*([^*]|[\\r\\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+/)|(//.*)","g"),t._reg=new RegExp("(\".*\")|('.*')|([#\\w\\*-\\.+/()=<>{}\\\\]+)|([,;:\\\\])","g"),t._splitToWordExps=new RegExp("[(\".*\")]+|[('.*')]+|([ \\t=\\+\\-*/&%!<>!%(),;])","g"),t.includes={},r(t,["shaderParamsMap",function(){return this.shaderParamsMap={float:5126,int:5124,bool:35670,vec2:35664,vec3:35665,vec4:35666,ivec2:35667,ivec3:35668,ivec4:35669,bvec2:35671,bvec3:35672,bvec4:35673,mat2:35674,mat3:35675,mat4:35676,sampler2D:35678,samplerCube:35680}},"_splitToWordExps3",function(){return this._splitToWordExps3=new RegExp("[ \\t=\\+\\-*/&%!<>!%(),;\\|]","g")}]),t.__init$=function(){e=function(){function t(t){this.childs=[],this.text="",this.parent=null,this.name=null,this.noCompile=!1,this.includefiles=null,this.condition=null,this.conditionType=0,this.useFuns="",this.z=0,this.src=null,this.includefiles=t}s(t,"");var e=t.prototype;return e.setParent=function(t){t.childs.push(this),this.z=t.z+1,this.parent=t},e.setCondition=function(t,e){t&&(this.conditionType=e,t=t.replace(/(\s*$)/g,""),this.condition=function(){return this[t]},this.condition.__condition=t)},e.toscript=function(e,i){return this._toscript(e,i,++t.__id)},e._toscript=function(t,e,i){if(this.childs.length<1&&!this.text)return e;e.length;if(this.condition){var r=!!this.condition.call(t);if(2===this.conditionType&&(r=!r),!r)return e}if(this.text&&e.push(this.text),this.childs.length>0&&this.childs.forEach(function(r,s,a){r._toscript(t,e,i)}),this.includefiles.length>0&&this.useFuns.length>0)for(var s,a=0,n=this.includefiles.length;a0&&(this.includefiles[a].curUseID=i,e[0]=s+e[0]);return e},t.__id=1,t}(),i=function(){function e(e){this.script=null,this.codes={},this.funs={},this.curUseID=-1,this.funnames="",this.script=e;for(var i=0,r=0,s=0;;){if((i=e.indexOf("#begin",i))<0)break;for(s=i+5;;){if((s=e.indexOf("#end",s))<0)break;if("i"!==e.charAt(s+4))break;s+=5}if(s<0)throw"add include err,no #end:"+e;r=e.indexOf("\n",i);var a=t.splitToWords(e.substr(i,r-i),null);"code"==a[1]?this.codes[a[2]]=e.substr(r+1,s-r-1):"function"==a[1]&&(r=e.indexOf("function",i),r+="function".length,this.funs[a[3]]=e.substr(r+1,s-r-1),this.funnames+=a[3]+";"),i=s+1}}s(e,"");var i=e.prototype;return i.getWith=function(t){var e=t?this.codes[t]:this.script;if(!e)throw"get with error:"+t;return e},i.getFunsScript=function(t){var e="";for(var i in this.funs)t.indexOf(i+";")>=0&&(e+=this.funs[i]);return e},e}()},t}(),bt=function(){function t(){}return s(t,"laya.webgl.WebGL"),t._uint8ArraySlice=function(){for(var t=this.length,e=new Uint8Array(this.length),i=0;ia)for(r=n-a,e=new Uint16Array(r),s=a;s>4;pt.fillTranglesVB(a,e,i,r,s||this._curMat,0,0),pt.expandIBQuadrangle(this._ib,a._byteLength/64+8);var h=new Et(1,0);h.textureHost=t;var l=new jt("attribute vec2 position; attribute vec2 texcoord; uniform vec2 size; uniform mat4 mmat; varying vec2 v_texcoord; void main() { vec4 p=vec4(position.xy,0.0,1.0);vec4 pos=mmat*p; gl_Position =vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0); v_texcoord = texcoord; }","precision mediump float; varying vec2 v_texcoord; uniform sampler2D texture; void main() {vec4 color= texture2D(texture, v_texcoord); color.a*=1.0; gl_FragColor= color;}");a._vertType=3,this._setIBVB(e,i,this._ib,a,6*n,s,l,h,0,0)}},t.enable=function(){if(u.__init__(),A.isConchApp&&!A.isConchWebGL)return R.skinAniSprite=function(){return new tt},t.expandContext(),!1;if(R.getWebGLContext=function(t){for(var e,i=["webgl","experimental-webgl","webkit-3d","moz-webgl"],r=0;r=0;u--)for(var _=0;_=0;e--){var i=this._save[e];if(i.restore(this),i.isSaveMark())return void(this._save._length=e)}},h._fillText=function(t,e,i,r,s,a,n,h,l,o){void 0===o&&(o=0);var u=this._shader2D,_=this._curSubmit.shaderValue,f=s?dt.create(s):this._other.font;if(k.enabled)u.ALPHA!==_.ALPHA&&(u.glTexture=null),ft.drawText(this,t,e,this._curMat,f,l||this._other.textAlign,a,n,h,i,r,o);else{this._shader2D.defines.getValue();var d=a?c.create(a)._color:u.colorAdd;u.ALPHA===_.ALPHA&&d===u.colorAdd&&_.colorAdd===u.colorAdd||(u.glTexture=null,u.colorAdd=d),ft.drawText(this,t,e,this._curMat,f,l||this._other.textAlign,a,n,h,i,r,o)}},h.fillWords=function(t,e,i,r,s,a){this._fillText(null,t,e,i,r,s,null,-1,null,a)},h.fillBorderWords=function(t,e,i,r,s,a,n){this._fillBorderText(null,t,e,i,r,s,a,n,null)},h.fillText=function(t,e,i,r,s,a){this._fillText(t,null,e,i,r,s,null,-1,a)},h.strokeText=function(t,e,i,r,s,a,n){this._fillText(t,null,e,i,r,null,s,a||1,n)},h.fillBorderText=function(t,e,i,r,s,a,n,h){this._fillBorderText(t,null,e,i,r,s,a,n,h)},h._fillBorderText=function(t,i,r,s,a,n,h,l,o){if(!k.enabled)return this._fillText(t,i,r,s,a,null,h,l||1,o),void this._fillText(t,i,r,s,a,n,null,-1,o);var u=this._shader2D,_=this._curSubmit.shaderValue;u.ALPHA!==_.ALPHA&&(u.glTexture=null);var c=a?(e._fontTemp.setFont(a),e._fontTemp):this._other.font;ft.drawText(this,t,i,this._curMat,c,o||this._other.textAlign,n,h,l||1,r,s,0)},h.fillRect=function(t,e,i,r,s){var a=this._vb;if(pt.fillRectImgVb(a,this._clipRect,t,e,i,r,F.DEF_UV,this._curMat,this._x,this._y,0,0)){this._renderKey=0;var n=this._shader2D.fillStyle;s&&(this._shader2D.fillStyle=W.create(s));var h=this._shader2D,l=this._curSubmit.shaderValue;if(h.fillStyle!==l.fillStyle||h.ALPHA!==l.ALPHA){h.glTexture=null;var o=this._curSubmit=at.createSubmit(this,this._ib,a,(a._byteLength-64)/32*3,Et.create(2,0));o.shaderValue.color=h.fillStyle._color._color,o.shaderValue.ALPHA=h.ALPHA,this._submits[this._submits._length++]=o}this._curSubmit._numEle+=6,this._shader2D.fillStyle=n}},h.fillTexture=function(t,e,r,s,a,n,h,l){if(t.loaded&&t.bitmap&&t.source){var o=this._vb,u=t.bitmap.width,_=t.bitmap.height,c=t.uv,f=h.x%t.width,d=h.y%t.height;if(u!=l.w||_!=l.h){if(!l.w&&!l.h)switch(l.oy=l.ox=0,n){case"repeat":l.width=s,l.height=a;break;case"repeat-x":l.width=s,d<0?t.height+d>a?l.height=a:l.height=t.height+d:(l.oy=d,t.height+d>a?l.height=a-d:l.height=t.height);break;case"repeat-y":f<0?t.width+f>s?l.width=s:l.width=t.width+f:(l.ox=f,t.width+f>s?l.width=s-f:l.width=t.width),l.height=a;break;default:l.width=s,l.height=a}l.w=u,l.h=_,l.uv=[0,0,l.width/u,0,l.width/u,l.height/_,0,l.height/_]}if(e+=l.ox,r+=l.oy,f-=l.ox,d-=l.oy,pt.fillRectImgVb(o,this._clipRect,e,r,l.width,l.height,l.uv,this._curMat,this._x,this._y,0,0)){this._renderKey=0;var m=Dt.create(this,this._ib,o,(o._byteLength-64)/32*3,Et.create(256,0));this._submits[this._submits._length++]=m;var p=m.shaderValue;p.textureHost=t;var g=c[0]*u,v=c[1]*_,x=(c[2]-c[0])*u,b=(c[5]-c[3])*_,y=-f/u,T=-d/_;p.u_TexRange[0]=g/u,p.u_TexRange[1]=x/u,p.u_TexRange[2]=v/_,p.u_TexRange[3]=b/_,p.u_offset[0]=y,p.u_offset[1]=T,k.enabled&&!this._isMain&&m.addTexture(t,(o._byteLength>>2)-16),this._curSubmit=m,m._renderType=10017,m._numEle+=6}}else this.sprite&&i.timer.callLater(this,this._repaintSprite)},h.setShader=function(t){Y.save(this,1048576,this._shader2D,!0),this._shader2D.shader=t},h.setFilters=function(t){Y.save(this,2097152,this._shader2D,!0),this._shader2D.filters=t,this._curSubmit=at.RENDERBASE,this._renderKey=0,this._drawCount++},h.drawTexture=function(t,e,i,r,s,a,n){this._drawTextureM(t,e,i,r,s,a,n,null,1)},h.addTextureVb=function(t,e,i){var r=this._curSubmit._vb||this._vb,s=r._byteLength>>2;r.byteLength=s+16<<2;for(var a=r.getFloat32Array(),n=0;n<16;n+=4)a[s++]=t[n]+e,a[s++]=t[n+1]+i,a[s++]=t[n+2],a[s++]=t[n+3];this._curSubmit._numEle+=6,this._maxNumEle=Math.max(this._maxNumEle,this._curSubmit._numEle),r._upload=!0},h.willDrawTexture=function(t,e){if(!(t.loaded&&t.bitmap&&t.source))return this.sprite&&i.timer.callLater(this,this._repaintSprite),0;var r=t.bitmap,s=r.id+this._shader2D.ALPHA*e+10016;if(s==this._renderKey)return s;var a=this._shader2D,n=a.ALPHA,h=this._curSubmit.shaderValue;a.ALPHA*=e,this._renderKey=s,this._drawCount++,a.glTexture=r;var l=this._vb,o=null,u=l._byteLength/32*3;return o=Dt.create(this,this._ib,l,u,Et.create(1,0)),this._submits[this._submits._length++]=o,o.shaderValue.textureHost=t,o._renderType=10016,o._preIsSameTextureShader=10016===this._curSubmit._renderType&&a.ALPHA===h.ALPHA,this._curSubmit=o,a.ALPHA=n,s},h.drawTextures=function(t,r,s,a){if(t.loaded&&t.bitmap&&t.source){var n=this._clipRect;if(this._clipRect=e.MAXCLIPRECT,this._drawTextureM(t,r[0],r[1],t.width,t.height,s,a,null,1)){if(this._clipRect=n,C.drawCall++,!(r.length<4)){for(var h=this._curSubmit._vb||this._vb,l=this._curMat.a,o=this._curMat.d,u=2,_=r.length;u<_;u+=2)pt.copyPreImgVb(h,(r[u]-r[u-2])*l,(r[u+1]-r[u-1])*o),this._curSubmit._numEle+=6;this._maxNumEle=Math.max(this._maxNumEle,this._curSubmit._numEle)}}else alert("drawTextures err")}else this.sprite&&i.timer.callLater(this,this._repaintSprite)},h._drawTextureM=function(t,e,r,s,a,n,h,l,o){if(!t.loaded||!t.source)return this.sprite&&i.timer.callLater(this,this._repaintSprite),!1;var u=this._curSubmit._vb||this._vb,_=t.bitmap;e+=n,r+=h,this._drawCount++;var c=_.id+this._shader2D.ALPHA*o+10016;if(c!=this._renderKey){this._renderKey=c;var f=this._curSubmit.shaderValue,d=this._shader2D,m=d.ALPHA;d.ALPHA*=o,d.glTexture=_;var p=this._vb,g=null,v=p._byteLength/32*3;g=Dt.create(this,this._ib,p,v,Et.create(1,0)),this._submits[this._submits._length++]=g,g.shaderValue.textureHost=t,g._renderType=10016,g._preIsSameTextureShader=10016===this._curSubmit._renderType&&d.ALPHA===f.ALPHA,this._curSubmit=g,u=this._curSubmit._vb||this._vb,d.ALPHA=m}return!!pt.fillRectImgVb(u,this._clipRect,e,r,s||t.width,a||t.height,t.uv,l||this._curMat,this._x,this._y,0,0)&&(k.enabled&&!this._isMain&&this._curSubmit.addTexture(t,(u._byteLength>>2)-16),this._curSubmit._numEle+=6,this._maxNumEle=Math.max(this._maxNumEle,this._curSubmit._numEle),!0)},h._repaintSprite=function(){this.sprite&&this.sprite.repaint()},h._drawText=function(t,e,i,r,s,a,n,h,l,o){var u=t.bitmap;this._drawCount++;var _=u.id+this._shader2D.ALPHA+10016;if(_!=this._renderKey){this._renderKey=_;var c=this._curSubmit.shaderValue,f=this._shader2D;f.glTexture=u;var d=this._vb,m=null,p=d._byteLength/32*3;(m=k.enabled?Dt.create(this,this._ib,d,p,Et.create(1,0)):Dt.create(this,this._ib,d,p,qt.create()))._preIsSameTextureShader=10016===this._curSubmit._renderType&&f.ALPHA===c.ALPHA,this._submits[this._submits._length++]=m,m.shaderValue.textureHost=t,m._renderType=10016,this._curSubmit=m}t.active();var g=this._curSubmit._vb||this._vb;pt.fillRectImgVb(g,this._clipRect,e+n,i+h,r||t.width,s||t.height,t.uv,a||this._curMat,this._x,this._y,l,o,!0)&&(k.enabled&&!this._isMain&&this._curSubmit.addTexture(t,(g._byteLength>>2)-16),this._curSubmit._numEle+=6,this._maxNumEle=Math.max(this._maxNumEle,this._curSubmit._numEle))},h.drawTextureWithTransform=function(t,i,r,s,a,n,h,l,o){if(n){var u=this._curMat,_=this._x,c=this._y;(0!==h||0!==l)&&(this._x=h*u.a+l*u.c,this._y=l*u.d+h*u.b),n&&u.bTransform?(b.mul(n,u,e._tmpMatrix),(n=e._tmpMatrix)._checkTransform()):(this._x+=u.tx,this._y+=u.ty),this._drawTextureM(t,i,r,s,a,0,0,n,o),this._x=_,this._y=c}else this._drawTextureM(t,i,r,s,a,h,l,null,o)},h.fillQuadrangle=function(t,e,i,r,s){var a=this._curSubmit,n=this._vb,h=this._shader2D,l=a.shaderValue;if(this._renderKey=0,t.bitmap){var o=t.bitmap;h.glTexture==o&&h.ALPHA===l.ALPHA||(h.glTexture=o,(a=this._curSubmit=at.createSubmit(this,this._ib,n,n._byteLength/32*3,Et.create(1,0))).shaderValue.glTexture=o,this._submits[this._submits._length++]=a),pt.fillQuadrangleImgVb(n,e,i,r,t.uv,s||this._curMat,this._x,this._y)}else a.shaderValue.fillStyle&&a.shaderValue.fillStyle.equal(t)&&h.ALPHA===l.ALPHA||(h.glTexture=null,(a=this._curSubmit=at.createSubmit(this,this._ib,n,n._byteLength/32*3,Et.create(2,0))).shaderValue.defines.add(2),a.shaderValue.fillStyle=W.create(t),this._submits[this._submits._length++]=a),pt.fillQuadrangleImgVb(n,e,i,r,F.DEF_UV,s||this._curMat,this._x,this._y);a._numEle+=6},h.drawTexture2=function(t,i,r,s,a,n,h,l){if(0!=n){var o=this._curMat;if(this._x=t*o.a+i*o.c,this._y=i*o.d+t*o.b,a&&(o.bTransform||a.bTransform?(b.mul(a,o,e._tmpMatrix),a=e._tmpMatrix):(this._x+=a.tx+o.tx,this._y+=a.ty+o.ty,a=b.EMPTY)),1!==n||h){var u=this._shader2D.ALPHA,_=this._nBlendType;this._shader2D.ALPHA=n,h&&(this._nBlendType=G.TOINT(h)),this._drawTextureM(l[0],l[1]-r,l[2]-s,l[3],l[4],0,0,a,1),this._shader2D.ALPHA=u,this._nBlendType=_}else this._drawTextureM(l[0],l[1]-r,l[2]-s,l[3],l[4],0,0,a,1);this._x=this._y=0}},h.drawCanvas=function(t,e,i,r,s){var a=t.context;if(this._renderKey=0,a._targets)this._submits[this._submits._length++]=Pt.create(a,0,null),this._curSubmit=at.RENDERBASE,a._targets.drawTo(this,e,i,r,s);else{var n=this._submits[this._submits._length++]=Pt.create(a,this._shader2D.ALPHA,this._shader2D.filters),h=r/t.width,l=s/t.height,o=n._matrix;this._curMat.copyTo(o),1!=h&&1!=l&&o.scale(h,l);var u=o.tx,_=o.ty;o.tx=o.ty=0,o.transformPoint(y.TEMP.setTo(e,i)),o.translate(y.TEMP.x+u,y.TEMP.y+_),this._curSubmit=at.RENDERBASE}f.showCanvasMark&&(this.save(),this.lineWidth=4,this.strokeStyle=a._targets?"yellow":"green",this.strokeRect(e-1,i-1,r+2,s+2,1),this.strokeRect(e,i,r,s,1),this.restore())},h.drawTarget=function(t,e,i,r,s,a,n,h,l,o){void 0===o&&(o=-1);var u=this._vb;if(pt.fillRectImgVb(u,this._clipRect,e,i,r,s,l||F.DEF_UV,a||this._curMat,this._x,this._y,0,0)){this._renderKey=0;this._shader2D.glTexture=null;this._curSubmit.shaderValue;var _=this._curSubmit=_t.create(this,this._ib,u,(u._byteLength-64)/32*3,h,n);_.blendType=-1==o?this._nBlendType:o,_.scope=t,this._submits[this._submits._length++]=_,this._curSubmit._numEle+=6}},h.mixRGBandAlpha=function(t){return this._mixRGBandAlpha(t,this._shader2D.ALPHA)},h._mixRGBandAlpha=function(t,e){var i=(4278190080&t)>>>24;return 0!=i?i*=e:i=255*e,16777215&t|i<<24},h.drawTriangles=function(t,r,s,a,n,h,l,o,u,_){if(!t.loaded||!t.source)return this.sprite&&i.timer.callLater(this,this._repaintSprite),!1;this._drawCount++;t.bitmap;var c=this._mixRGBandAlpha(4294967295,o),f=(a.length,h.length);this._renderKey=-1;var d=this._curSubmit=Dt.create(this,this._triangleMesh.getIBR(),this._triangleMesh.getVBR(),this._triangleMesh.indexNum,Et.create(1,0));return d.shaderValue.textureHost=t,d._renderType=10016,this._submits[this._submits._length++]=d,l?(e._tmpMatrix.a=l.a,e._tmpMatrix.b=l.b,e._tmpMatrix.c=l.c,e._tmpMatrix.d=l.d,e._tmpMatrix.tx=l.tx+r,e._tmpMatrix.ty=l.ty+s,b.mul(e._tmpMatrix,this._curMat,e._tmpMatrix)):(e._tmpMatrix.a=this._curMat.a,e._tmpMatrix.b=this._curMat.b,e._tmpMatrix.c=this._curMat.c,e._tmpMatrix.d=this._curMat.d,e._tmpMatrix.tx=this._curMat.tx+r,e._tmpMatrix.ty=this._curMat.ty+s),this._triangleMesh.addData(a,n,h,e._tmpMatrix,c,this),this._curSubmit._numEle+=f,this._maxNumEle=Math.max(this._maxNumEle,this._curSubmit._numEle),!0},h.transform=function(t,e,i,r,s,a){Z.save(this),b.mul(b.TEMP.setTo(t,e,i,r,s,a),this._curMat,this._curMat),this._curMat._checkTransform()},h.setTransformByMatrix=function(t){t.copyTo(this._curMat)},h.transformByMatrix=function(t){Z.save(this),b.mul(t,this._curMat,this._curMat),this._curMat._checkTransform()},h.rotate=function(t){Z.save(this),this._curMat.rotateEx(t)},h.scale=function(t,e){Z.save(this),this._curMat.scaleEx(t,e)},h.clipRect=function(t,e,i,r){if(0!=this._curMat.b||0!=this._curMat.c){this._renderKey=0;var s=ut.create(4);this.addRenderObject(s);var a=this._vb,n=a._byteLength>>2;if(pt.fillRectImgVb(a,null,t,e,i,r,F.DEF_UV,this._curMat,this._x,this._y,0,0)){this._shader2D.glTexture=null;var h=this._curSubmit=at.createSubmit(this,this._ib,a,(a._byteLength-64)/32*3,Et.create(2,0));h.shaderValue.ALPHA=1,this._submits[this._submits._length++]=h,this._curSubmit._numEle+=6}else alert("clipRect calc stencil rect error");var l=ut.create(5);this.addRenderObject(l);var o=a.getFloat32Array(),u=Math.min(Math.min(Math.min(o[n+0],o[n+4]),o[n+8]),o[n+12]),_=Math.max(Math.max(Math.max(o[n+0],o[n+4]),o[n+8]),o[n+12]),c=Math.min(Math.min(Math.min(o[n+1],o[n+5]),o[n+9]),o[n+13]),f=Math.max(Math.max(Math.max(o[n+1],o[n+5]),o[n+9]),o[n+13]);K.save(this,l,t,e,i,r,u,c,_-u,f-c),this._curSubmit=at.RENDERBASE}else{i*=this._curMat.a,r*=this._curMat.d;var d=y.TEMP;this._curMat.transformPoint(d.setTo(t,e)),i<0&&(d.x=d.x+i,i=-i),r<0&&(d.y=d.y+r,r=-r),this._renderKey=0;var m=this._curSubmit=ot.create(this);this._submits[this._submits._length++]=m,m.submitIndex=this._submits._length,m.submitLength=9999999,X.save(this,m);var p=this._clipRect,g=p.x,v=p.y,x=d.x+i,b=d.y+r;g>4,u=t.bitmap;this._renderKey=0,h.glTexture==u&&h.ALPHA===l.ALPHA||((a=this._curSubmit=at.createSubmit(this,this._ib,n,n._byteLength/32*3,Et.create(1,0))).shaderValue.textureHost=t,this._submits[this._submits._length++]=a),pt.fillTranglesVB(n,e,i,r,s||this._curMat,this._x,this._y),a._numEle+=6*o},h.submitElement=function(t,e){var i=this._submits;for(e<0&&(e=i._length);tthis._ib.bufferLength/12&&pt.expandIBQuadrangle(this._ib,t),!this._isMain&&k.enabled&&k._atlasRestore>this._atlasResourceChange){this._atlasResourceChange=k._atlasRestore;for(var e=this._submits,i=0,r=e._length;i0){if(-1==this.mId)t.drawLine(0,0,t.tempArray,this.lineWidth,this.strokeStyle._color.numColor);else if(this.mHaveLineKey){var e=N.getInstance().shapeLineDic[this.mId];e.rebuild(t.tempArray),t.setGeomtry(e)}else N.getInstance().addLine(this.mId,t.drawLine(0,0,t.tempArray,this.lineWidth,this.strokeStyle._color.numColor));t.update();var i=[this.mX,this.mY],r=at.createShape(this,t.ib,t.vb,t.count,t.offset,Et.create(4,0));r.shaderValue.ALPHA=this._shader2D.ALPHA,r.shaderValue.u_pos=i,r.shaderValue.u_mmat2=vt.TEMPMAT4_ARRAY,this._submits[this._submits._length++]=r,this._renderKey=-1}},h.line=function(t,e,i,r,s,a){var n=this._curSubmit,h=this._vb;if(pt.fillLineVb(h,this._clipRect,t,e,i,r,s,a)){this._renderKey=0;var l=this._shader2D,o=n.shaderValue;l.strokeStyle===o.strokeStyle&&l.ALPHA===o.ALPHA||(l.glTexture=null,(n=this._curSubmit=at.createSubmit(this,this._ib,h,(h._byteLength-64)/32*3,Et.create(2,0))).shaderValue.strokeStyle=l.strokeStyle,n.shaderValue.mainID=2,n.shaderValue.ALPHA=l.ALPHA,this._submits[this._submits._length++]=n),n._numEle+=6}},h.moveTo=function(t,e,i){void 0===i&&(i=!0);var r=this._getPath();if(i){var s=t,a=e;t=this._curMat.a*s+this._curMat.c*a,e=this._curMat.b*s+this._curMat.d*a}r.addPoint(t,e)},h.lineTo=function(t,e,i){void 0===i&&(i=!0);var r=this._getPath();if(i){var s=t,a=e;t=this._curMat.a*s+this._curMat.c*a,e=this._curMat.b*s+this._curMat.d*a}r.addPoint(t,e)},h.drawCurves=function(t,e,i){this.setPathId(-1),this.beginPath(),this.strokeStyle=i[3],this.lineWidth=i[4];var r=i[2];t+=i[0],e+=i[1],this.movePath(t,e),this.moveTo(r[0],r[1]);for(var s=2,a=r.length;s=0){var N=(D=2*R)/e.SEGNUM;F=Math.sin(N),B=Math.cos(N)}else N=(D=2*-R)/e.SEGNUM,F=Math.sin(N),B=Math.cos(N);h=this._curMat.a*I+this._curMat.c*M,l=this._curMat.b*I+this._curMat.d*M,h==this._path.getEndPointX()&&l==this._path.getEndPointY()||o.addPoint(h,l);var O=I-L,V=M-P;for(n=0;n=2*Math.PI)o=2*-Math.PI;else for(;o>0;)o-=2*Math.PI;else if(Math.abs(o)>=2*Math.PI)o=2*Math.PI;else for(;o<0;)o+=2*Math.PI;u=o/(m=i<101?Math.max(10,o*i/5):i<201?Math.max(10,o*i/20):Math.max(10,o*i/40))/2,_=Math.abs(4/3*(1-Math.cos(u))/Math.sin(u)),a&&(_=-_);var p=this._getPath(),g=NaN,v=NaN;for(d=0;d<=m;d++)l=r+o*(d/m),c=t+Math.cos(l)*i,f=e+Math.sin(l)*i,n&&(g=c,v=f,c=this._curMat.a*g+this._curMat.c*v,f=this._curMat.b*g+this._curMat.d*v),c==this._path.getEndPointX()&&f==this._path.getEndPointY()||p.addPoint(c,f);c=t+Math.cos(s)*i,f=e+Math.sin(s)*i,n&&(g=c,v=f,c=this._curMat.a*g+this._curMat.c*v,f=this._curMat.b*g+this._curMat.d*v),c==this._path.getEndPointX()&&f==this._path.getEndPointY()||p.addPoint(c,f)},h.quadraticCurveTo=function(t,e,i,r){var s=l.I,a=i,n=r;i=this._curMat.a*a+this._curMat.c*n,r=this._curMat.b*a+this._curMat.d*n,a=t,n=e,t=this._curMat.a*a+this._curMat.c*n,e=this._curMat.b*a+this._curMat.d*n;for(var h=s.getBezierPoints([this._path.getEndPointX(),this._path.getEndPointY(),t,e,i,r],30,2),o=0,u=h.length/2;o0){if(this.mHaveLineKey){var c=N.getInstance().shapeLineDic[this.mId];c.rebuild(h.tempArray),h.setGeomtry(c)}else N.getInstance().addShape(this.mId,h.drawLine(t,e,i,s,a));h.update(),(u=at.createShape(this,h.ib,h.vb,h.count,h.offset,Et.create(4,0))).shaderValue.ALPHA=this._shader2D.ALPHA,u.shaderValue.u_mmat2=vt.EMPTYMAT4_ARRAY,this._submits[this._submits._length++]=u}},h.drawParticle=function(t,e,i){i.x=t,i.y=e,this._submits[this._submits._length++]=i},h._getPath=function(){return this._path||(this._path=new z)},a(0,h,"globalCompositeOperation",function(){return G.NAMES[this._nBlendType]},function(t){var e=G.TOINT[t];null==e||this._nBlendType===e||(Y.save(this,65536,this,!0),this._curSubmit=at.RENDERBASE,this._renderKey=0,this._nBlendType=e)}),a(0,h,"strokeStyle",function(){return this._shader2D.strokeStyle},function(t){this._shader2D.strokeStyle.equal(t)||(Y.save(this,512,this._shader2D,!1),this._shader2D.strokeStyle=W.create(t))}),a(0,h,"globalAlpha",function(){return this._shader2D.ALPHA},function(t){(t=Math.floor(1e3*t)/1e3)!=this._shader2D.ALPHA&&(Y.save(this,1,this._shader2D,!0),this._shader2D.ALPHA=t)}),a(0,h,"asBitmap",null,function(t){if(t){if(this._targets||(this._targets=new j),this._targets.repaint=!0,!this._width||!this._height)throw Error("asBitmap no size!");this._targets.setSP(this.sprite),this._targets.size(this._width,this._height)}else this._targets=null}),a(0,h,"fillStyle",function(){return this._shader2D.fillStyle},function(t){this._shader2D.fillStyle.equal(t)||(Y.save(this,2,this._shader2D,!1),this._shader2D.fillStyle=W.create(t))}),a(0,h,"textAlign",function(){return this._other.textAlign},function(t){this._other.textAlign===t||(this._other=this._other.make(),Y.save(this,32768,this._other,!1),this._other.textAlign=t)}),a(0,h,"lineWidth",function(){return this._other.lineWidth},function(t){this._other.lineWidth===t||(this._other=this._other.make(),Y.save(this,256,this._other,!1),this._other.lineWidth=t)}),a(0,h,"textBaseline",function(){return this._other.textBaseline},function(t){this._other.textBaseline===t||(this._other=this._other.make(),Y.save(this,16384,this._other,!1),this._other.textBaseline=t)}),a(0,h,"font",null,function(t){t!=this._other.font.toString()&&(this._other=this._other.make(),Y.save(this,8,this._other,!1),this._other.font===dt.EMPTY?this._other.font=new dt(t):this._other.font.setFont(t))}),e.__init__=function(){n.DEFAULT=new n},e._tempPoint=new y,e._SUBMITVBSIZE=32e3,e._MAXSIZE=99999999,e._RECTVBSIZE=16,e.MAXCLIPRECT=new T(0,0,99999999,99999999),e._COUNT=0,e._tmpMatrix=new b,e.SEGNUM=32,e._contextcount=0,r(e,["_fontTemp",function(){return this._fontTemp=new dt},"_drawStyleTemp",function(){return this._drawStyleTemp=new W(null)}]),e.__init$=function(){n=function(){function t(){this.lineWidth=1,this.path=null,this.textAlign=null,this.textBaseline=null,this.font=dt.EMPTY}s(t,"");var e=t.prototype;return e.clear=function(){this.lineWidth=1,this.path&&this.path.clear(),this.textAlign=this.textBaseline=null,this.font=dt.EMPTY},e.make=function(){return this===t.DEFAULT?new t:this},t.DEFAULT=null,t}()},e}(),Et=function(t){function e(t,i){this.size=[0,0],this.alpha=1,this.ALPHA=1,this.subID=0,this._cacheID=0,e.__super.call(this),this.defines=new It,this.position=e._POSITION,this.mainID=t,this.subID=i,this.textureHost=null,this.texture=null,this.fillStyle=null,this.color=null,this.strokeStyle=null,this.colorAdd=null,this.glTexture=null,this.u_mmat2=null,this._cacheID=t|i,this._inClassCache=e._cache[this._cacheID],t>0&&!this._inClassCache&&(this._inClassCache=e._cache[this._cacheID]=[],this._inClassCache._length=0),this.clear()}s(e,"laya.webgl.shader.d2.value.Value2D",V);var i=e.prototype;return i.setValue=function(t){},i.refresh=function(){var t=this.size;return t[0]=vt.width,t[1]=vt.height,this.alpha=this.ALPHA*vt.worldAlpha,this.mmat=vt.worldMatrix4,this},i._ShaderWithCompile=function(){return Qt.withCompile2D(0,this.mainID,this.defines.toNameDic(),this.mainID|this.defines._value,jt.create)},i._withWorldShaderDefines=function(){var t=vt.worldShaderDefines,e=Qt.sharders[this.mainID|this.defines._value|t.getValue()];if(!e){var i,r,s={};i=this.defines.toNameDic();for(r in i)s[r]="";i=t.toNameDic();for(r in i)s[r]="";e=Qt.withCompile2D(0,this.mainID,s,this.mainID|this.defines._value|t.getValue(),jt.create)}var a=vt.worldFilters;if(!a)return e;for(var n,h=a.length,l=0;l0&&u.height>0){var _=t._style._tf,c=ht.create();c.addValue("bounds",u),a=nt.create([c,i],laya.webgl.utils.RenderSprite3D.tmpTarget),i.addRenderObject(a),l.render(i,-u.x,-u.y),a=nt.create([c],laya.webgl.utils.RenderSprite3D.endTmpTarget),i.addRenderObject(a),i.ctx.save(),i.clipRect(r-_.translateX+u.x,s-_.translateY+u.y,u.width,u.height),h._fun.call(h,t,i,r,s),i.ctx.restore(),n=ut.create(6),o=i.ctx.globalCompositeOperation,n.blendMode="mask",i.addRenderObject(n),b.TEMP.identity();var f=Et.create(1,0),d=F.INV_UV,m=u.width,p=u.height;(u.width<32||u.height<32)&&((d=e.tempUV)[0]=0,d[1]=0,d[2]=u.width>=32?1:u.width/32,d[3]=0,d[4]=u.width>=32?1:u.width/32,d[5]=u.height>=32?1:u.height/32,d[6]=0,d[7]=u.height>=32?1:u.height/32,u.width=u.width>=32?u.width:32,u.height=u.height>=32?u.height:32,d[1]*=-1,d[3]*=-1,d[5]*=-1,d[7]*=-1,d[1]+=1,d[3]+=1,d[5]+=1,d[7]+=1),i.ctx.drawTarget(c,r+u.x-_.translateX,s+u.y-_.translateY,m,p,b.TEMP,"tmpTarget",f,d,6),a=nt.create([c],laya.webgl.utils.RenderSprite3D.recycleTarget),i.addRenderObject(a),(n=ut.create(6)).blendMode=o,i.addRenderObject(n)}i.ctx.restore()}else h._fun.call(h,t,i,r,s)},i._blend=function(t,e,i,r){var s=t._style,a=this._next;s.blendMode?(e.ctx.save(),e.ctx.globalCompositeOperation=s.blendMode,a._fun.call(a,t,e,i,r),e.ctx.restore()):a._fun.call(a,t,e,i,r)},i._transform=function(t,e,i,r){var s=t.transform,a=this._next;if(s&&a!=E.NORENDER){var n=e.ctx;t._style;s.tx=i,s.ty=r;var h=n._getTransformMatrix(),l=h.clone();b.mul(s,h,h),h._checkTransform(),s.tx=s.ty=0,a._fun.call(a,t,e,0,0),l.copyTo(h),l.destroy()}else a._fun.call(a,t,e,i,r)},e.tmpTarget=function(t,e){var i=t.getValue("bounds"),r=Nt.create(i.width,i.height);r.start(),r.clear(0,0,0,0),t.addValue("tmpTarget",r)},e.endTmpTarget=function(t){t.getValue("tmpTarget").end()},e.recycleTarget=function(t){t.getValue("tmpTarget").recycle(),t.recycle()},r(e,["tempUV",function(){return this.tempUV=new Array(8)}]),e}(),wt=function(t){function e(){this.data=null,e.__super.call(this)}s(e,"laya.filters.webgl.ColorFilterActionGL",O);var r=e.prototype;return i.imps(r,{"laya.filters.IFilterActionGL":!0}),r.setValue=function(t){t.colorMat=this.data._mat,t.colorAlpha=this.data._alpha},r.apply3d=function(t,e,i,r,s){var a=t.getValue("bounds"),n=Et.create(1,0);n.setFilters([this.data]);var h=b.TEMP;h.identity(),i.ctx.drawTarget(t,0,0,a.width,a.height,h,"src",n)},e}(),Rt=function(t){function e(t,i,r,s,a){this._atlasCanvas=null,this._inAtlasTextureKey=null,this._inAtlasTextureBitmapValue=null,this._inAtlasTextureOriUVValue=null,this._InAtlasWebGLImagesKey=null,this._InAtlasWebGLImagesOffsetValue=null,e.__super.call(this,t,i,a),this._inAtlasTextureKey=[],this._inAtlasTextureBitmapValue=[],this._inAtlasTextureOriUVValue=[],this._InAtlasWebGLImagesKey={},this._InAtlasWebGLImagesOffsetValue=[],this._atlasCanvas=new Wt,this._atlasCanvas._atlaser=this,this._atlasCanvas.width=r,this._atlasCanvas.height=s,this._atlasCanvas.activeResource(),this._atlasCanvas.lock=!0}s(e,"laya.webgl.atlas.Atlaser",U);var i=e.prototype;return i.computeUVinAtlasTexture=function(t,e,i,r){var s=k.atlasTextureWidth,a=k.atlasTextureHeight,n=i/s,h=r/a,l=(i+t.bitmap.width)/s,o=(r+t.bitmap.height)/a,u=t.bitmap.width/s,_=t.bitmap.height/a;t.uv=[n+e[0]*u,h+e[1]*_,l-(1-e[2])*u,h+e[3]*_,l-(1-e[4])*u,o-(1-e[5])*_,n+e[6]*u,o-(1-e[7])*_]},i.findBitmapIsExist=function(t){if(t instanceof laya.webgl.resource.WebGLImage){var e=t,i=e.url,r=this._InAtlasWebGLImagesKey[i||e.id];if(r)return r.offsetInfoID}return-1},i.addToAtlasTexture=function(t,e,i){if(t instanceof laya.webgl.resource.WebGLImage){var r=t,s=r.url;this._InAtlasWebGLImagesKey[s||r.id]={bitmap:t,offsetInfoID:this._InAtlasWebGLImagesOffsetValue.length},this._InAtlasWebGLImagesOffsetValue.push([e,i])}this._atlasCanvas.texSubImage2D(e,i,t.atlasSource),t.clearAtlasSource()},i.addToAtlas=function(t,e,i){t._atlasID=this._inAtlasTextureKey.length;var r=t.uv.slice(),s=t.bitmap;this._inAtlasTextureKey.push(t),this._inAtlasTextureOriUVValue.push(r),this._inAtlasTextureBitmapValue.push(s),this.computeUVinAtlasTexture(t,r,e,i),t.bitmap=this._atlasCanvas},i.clear=function(){for(var t=0,e=this._inAtlasTextureKey.length;t.01||Math.abs(a-r)>.01)&&this._points.push(i,r),s=i,a=r},i.getData=function(t,e,i){var r=[],s=[];this.borderWidth>0&&this.createLine2(this._points,r,this.borderWidth,i,s,this._points.length/2),this.mUint16Array.set(r,0),this.mFloat32Array.set(s,0),t.append(this.mUint16Array),e.append(this.mFloat32Array)},e}()),Ct=function(t){function e(t,i,r,s,a){this._points=[];for(var n=NaN,h=NaN,l=-1,o=-1,u=r.length/2-1,_=0;_.01||Math.abs(o-h)>.01)&&this._points.push(n,h),l=n,o=h;n=r[2*u],h=r[2*u+1],l=this._points[0],o=this._points[1],(Math.abs(l-n)>.01||Math.abs(o-h)>.01)&&this._points.push(n,h),e.__super.call(this,t,i,0,0,this._points.length/2,0,s,a)}s(e,"laya.webgl.shapes.LoopLine",it);var i=e.prototype;return i.getData=function(t,e,i){if(this.borderWidth>0){for(var r=this.color,s=(r>>16&255)/255,a=(r>>8&255)/255,n=(255&r)/255,h=[],l=0,o=0,u=[],_=Math.floor(this._points.length/2),c=0;c<_;c++)l=this._points[2*c],o=this._points[2*c+1],h.push(this.x+l,this.y+o,s,a,n);this.createLoopLine(h,u,this.borderWidth,i+h.length/5),t.append(new Uint16Array(u)),e.append(new Float32Array(h))}},i.createLoopLine=function(t,e,i,r,s,a){t.length;var n=t.concat(),h=s||t,l=this.borderColor,o=(l>>16&255)/255,u=(l>>8&255)/255,_=(255&l)/255,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>16&255)/255,_=(o>>8&255)/255,c=(255&o)/255;for(n=Math.floor(a.length/2),s=0;s1&&!this._isSameTexture)for(var s=t.bitmap,a=0,n=Bt.activeShader,h=0,l=this._texs.length;h>2,o=this._vb.getFloat32Array(),u=0,_=0;_0){(h=r.length)>e.tmpIdx.length&&(e.tmpIdx=new Uint16Array(h));for(var g=0;g=0&&s.texSubImage2DEx(!0,3553,0,t-1,e,6408,5121,i),t+1<=this._w&&s.texSubImage2DEx(!0,3553,0,t+1,e,6408,5121,i),e-1>=0&&s.texSubImage2DEx(!0,3553,0,t,e-1,6408,5121,i),e+1<=this._h&&s.texSubImage2DEx(!0,3553,0,t,e+1,6408,5121,i),s.texSubImage2DEx(!0,3553,0,t,e,6408,5121,i)):(s.pixelStorei(37441,!0),t-1>=0&&s.texSubImage2D(3553,0,t-1,e,6408,5121,i),t+1<=this._w&&s.texSubImage2D(3553,0,t+1,e,6408,5121,i),e-1>=0&&s.texSubImage2D(3553,0,t,e-1,6408,5121,i),e+1<=this._h&&s.texSubImage2D(3553,0,t,e+1,6408,5121,i),s.texSubImage2D(3553,0,t,e,6408,5121,i),s.pixelStorei(37441,!1)),a&&n&&yt.bindTexture(s,a,n)}},i.texSubImage2DPixel=function(t,e,i,r,s){var a=bt.mainContext,n=yt.curBindTexTarget,h=yt.curBindTexValue;yt.bindTexture(a,3553,this._source);var l=new Uint8Array(s.data);A.isConchWebGL?a.texSubImage2DEx(!0,3553,0,t,e,i,r,6408,5121,l):(a.pixelStorei(37441,!0),a.texSubImage2D(3553,0,t,e,i,r,6408,5121,l),a.pixelStorei(37441,!1)),n&&h&&yt.bindTexture(a,n,h)},a(0,i,"width",t.prototype._$get_width,function(t){this._w=t}),a(0,i,"height",t.prototype._$get_height,function(t){this._h=t}),e}(o),zt=function(t){function e(){this.flipY=!0,this.alwaysChange=!1,e.__super.call(this)}s(e,"laya.webgl.resource.WebGLCanvas",o);var i=e.prototype;return i.getCanvas=function(){return this._canvas},i.clear=function(){this._ctx&&this._ctx.clear()},i.destroy=function(){this._ctx&&this._ctx.destroy(),this._ctx=null},i._setContext=function(t){this._ctx=t},i.getContext=function(t,i){return this._ctx?this._ctx:this._ctx=e._createContext(this)},i.size=function(t,e){this._w==t&&this._h==e||(this._w=t,this._h=e,this._ctx&&this._ctx.size(t,e),this._canvas&&(this._canvas.height=e,this._canvas.width=t))},i.activeResource=function(t){void 0===t&&(t=!1),this._source||this.recreateResource()},i.recreateResource=function(){this.createWebGlTexture(),this.completeCreate()},i.disposeResource=function(){this._source&&!this.iscpuSource&&(bt.mainContext.deleteTexture(this._source),this._source=null,this.memorySize=0)},i.createWebGlTexture=function(){var t=bt.mainContext;this._canvas;var i=this._source=t.createTexture();this.iscpuSource=!1;var r=yt.curBindTexTarget,s=yt.curBindTexValue;yt.bindTexture(t,3553,i),t.pixelStorei(37440,this.flipY?1:0),A.isConchWebGL?t.texImage2DEx(e.premulAlpha,3553,0,6408,6408,5121,this._imgData):(e.premulAlpha&&t.pixelStorei(37441,!0),t.texImage2D(3553,0,6408,6408,5121,this._imgData),e.premulAlpha&&t.pixelStorei(37441,!1)),t.texParameteri(3553,10240,9729),t.texParameteri(3553,10241,9729),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071),t.pixelStorei(37440,0),this.memorySize=this._w*this._h*4,r&&s&&yt.bindTexture(t,r,s)},i.reloadCanvasData=function(){var t=bt.mainContext;if(!this._source)throw"reloadCanvasData error, gl texture not created!";var i=yt.curBindTexTarget,r=yt.curBindTexValue;yt.bindTexture(t,3553,this._source),A.isConchWebGL?t.texImage2DEx(e.premulAlpha,3553,0,6408,6408,5121,this._imgData):(e.premulAlpha&&t.pixelStorei(37441,!0),t.texImage2D(3553,0,6408,6408,5121,this._imgData),e.premulAlpha&&t.pixelStorei(37441,!1)),t.pixelStorei(37440,0),i&&r&&yt.bindTexture(t,i,r)},i.texSubImage2D=function(t,e,i){var r=bt.mainContext,s=yt.curBindTexTarget,a=yt.curBindTexValue;yt.bindTexture(r,3553,this._source),A.isConchWebGL?r.texSubImage2DEx(!0,3553,0,e,i,6408,5121,t._source):(r.pixelStorei(37441,!0),r.texSubImage2D(3553,0,e,i,6408,5121,t._source),r.pixelStorei(37441,!1)),s&&a&&yt.bindTexture(r,s,a)},i.toBase64=function(t,e,i){var r=null;this._canvas&&(r=this._canvas.toDataURL(t,e)),i.call(this,r)},a(0,i,"context",function(){return this._ctx}),a(0,i,"source",function(){return this.alwaysChange&&this.reloadCanvasData(),this._source}),a(0,i,"asBitmap",null,function(t){this._ctx&&(this._ctx.asBitmap=t)}),e._createContext=null,e.premulAlpha=!1,e}(),Yt=function(t){function e(t,i){this.CborderSize=12,e.__super.call(this),this.char=t,this.isSpace=" "===t,this.xs=i.scaleX,this.ys=i.scaleY,this.font=i.font.toString(),this.fontSize=i.font.size,this.fillColor=i.fillColor,this.borderColor=i.borderColor,this.lineWidth=i.lineWidth,this.underLine=i.underLine;var r,s=A.isConchApp;s?((r=ConchTextCanvas)._source=ConchTextCanvas,r._source.canvas=ConchTextCanvas):r=u.canvas.source,this.canvas=r,this._enableMerageInAtlas=!0,this._ctx=s?r:this.canvas.getContext("2d",void 0);var a=B.measureText(this.char,this.font);this.cw=a.width*this.xs,this.ch=(a.height||this.fontSize)*this.ys,this.onresize(this.cw+2*this.CborderSize,this.ch+2*this.CborderSize),this.texture=new F(this)}s(e,"laya.webgl.resource.WebGLCharImage",o);var r=e.prototype;return i.imps(r,{"laya.webgl.resource.IMergeAtlasBitmap":!0}),r.active=function(){this.texture.active()},r.recreateResource=function(){var t=A.isConchApp;if(this.onresize(this.cw+2*this.CborderSize,this.ch+2*this.CborderSize),this.canvas&&(this.canvas.height=this._h,this.canvas.width=this._w),t){var e=this.fontSize;1==this.xs&&1==this.ys||(e=parseInt(e*(this.xs>this.ys?this.xs:this.ys)+""));var i="normal 100 "+e+"px Arial";this.borderColor&&(i+=" 1 "+this.borderColor),this._ctx.font=i,this._ctx.textBaseline="top",this._ctx.fillStyle=this.fillColor,this._ctx.fillText(this.char,this.CborderSize,this.CborderSize,null,null,null)}else{if(this._ctx.save(),this._ctx.clearRect(0,0,this.cw+2*this.CborderSize,this.ch+2*this.CborderSize),this._ctx.font=this.font,D.RightToLeft&&(this._ctx.textAlign="end"),this._ctx.textBaseline="top",this._ctx.translate(this.CborderSize,this.CborderSize),1==this.xs&&1==this.ys||this._ctx.scale(this.xs,this.ys),this.fillColor&&this.borderColor?(this._ctx.strokeStyle=this.borderColor,this._ctx.lineWidth=this.lineWidth,this._ctx.strokeText(this.char,0,0,null,null,0,null),this._ctx.fillStyle=this.fillColor,this._ctx.fillText(this.char,0,0,null,null,null)):-1===this.lineWidth?(this._ctx.fillStyle=this.fillColor?this.fillColor:"white",this._ctx.fillText(this.char,0,0,null,null,null)):(this._ctx.strokeStyle=this.borderColor?this.borderColor:"white",this._ctx.lineWidth=this.lineWidth,this._ctx.strokeText(this.char,0,0,null,null,0,null)),this.underLine){this._ctx.lineWidth=1,this._ctx.strokeStyle=this.fillColor,this._ctx.beginPath(),this._ctx.moveTo(0,this.fontSize+1);var r=this._ctx.measureText(this.char).width+1;this._ctx.lineTo(r,this.fontSize+1),this._ctx.stroke()}this._ctx.restore()}this.borderSize=this.CborderSize,this.completeCreate()},r.onresize=function(t,e){this._w=t,this._h=e,this._allowMerageInAtlas=!0},r.clearAtlasSource=function(){},a(0,r,"allowMerageInAtlas",function(){return this._allowMerageInAtlas}),a(0,r,"atlasSource",function(){return this.canvas}),a(0,r,"enableMerageInAtlas",function(){return this._enableMerageInAtlas},function(t){this._enableMerageInAtlas=t}),e.createOneChar=function(t,i){return new e(t,i)},e}(),Xt=function(t){function e(t,i,r,s,a,n,h,l,o){void 0===r&&(r=6408),void 0===s&&(s=5121),void 0===a&&(a=34041),void 0===n&&(n=!1),void 0===h&&(h=!1),void 0===l&&(l=-1),void 0===o&&(o=1),e.__super.call(this),this._w=t,this._h=i,this._surfaceFormat=r,this._surfaceType=s,this._depthStencilFormat=a,A.isConchWebGL&&34041===this._depthStencilFormat&&(this._depthStencilFormat=33189),this._mipMap=n,this._repeat=h,this._minFifter=l,this._magFifter=o}s(e,"laya.webgl.resource.WebGLRenderTarget",o);var i=e.prototype;return i.recreateResource=function(){var t=bt.mainContext;this._frameBuffer||(this._frameBuffer=t.createFramebuffer()),this._source||(this._source=t.createTexture());var e=yt.curBindTexTarget,i=yt.curBindTexValue;yt.bindTexture(t,3553,this._source),t.texImage2D(3553,0,6408,this._w,this._h,0,this._surfaceFormat,this._surfaceType,null);var r=this._minFifter,s=this._magFifter,a=this._repeat?10497:33071,n=h.isPOT(this._w,this._h);if(n?(this._mipMap?-1!==r||(r=9987):-1!==r||(r=9729),-1!==s||(s=9729),t.texParameteri(3553,10241,r),t.texParameteri(3553,10240,s),t.texParameteri(3553,10242,a),t.texParameteri(3553,10243,a),this._mipMap&&t.generateMipmap(3553)):(-1!==r||(r=9729),-1!==s||(s=9729),t.texParameteri(3553,10241,r),t.texParameteri(3553,10240,s),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071)),t.bindFramebuffer(36160,this._frameBuffer),t.framebufferTexture2D(36160,36064,3553,this._source,0),this._depthStencilFormat)switch(this._depthStencilBuffer||(this._depthStencilBuffer=t.createRenderbuffer()),t.bindRenderbuffer(36161,this._depthStencilBuffer),t.renderbufferStorage(36161,this._depthStencilFormat,this._w,this._h),this._depthStencilFormat){case 33189:t.framebufferRenderbuffer(36160,36096,36161,this._depthStencilBuffer);break;case 36168:t.framebufferRenderbuffer(36160,36128,36161,this._depthStencilBuffer);break;case 34041:t.framebufferRenderbuffer(36160,33306,36161,this._depthStencilBuffer)}t.bindFramebuffer(36160,null),e&&i&&yt.bindTexture(t,e,i),t.bindRenderbuffer(36161,null),n&&this._mipMap?this.memorySize=this._w*this._h*4*(1+1/3):this.memorySize=this._w*this._h*4,this.completeCreate()},i.disposeResource=function(){this._frameBuffer&&(bt.mainContext.deleteTexture(this._source),bt.mainContext.deleteFramebuffer(this._frameBuffer),bt.mainContext.deleteRenderbuffer(this._depthStencilBuffer),this._source=null,this._frameBuffer=null,this._depthStencilBuffer=null,this.memorySize=0)},a(0,i,"depthStencilBuffer",function(){return this._depthStencilBuffer}),a(0,i,"frameBuffer",function(){return this._frameBuffer}),e}(),Kt=function(t){function e(t,i,r,s,a,n,h){this.offsetX=0,this.offsetY=0,e.__super.call(this),this.repeat=!0,this.mipmap=!1,this.minFifter=-1,this.magFifter=-1,this.atlasImage=n,this.canvas=t,this._ctx=t.getContext("2d",void 0),this._w=s,this._h=a,this.offsetX=i,this.offsetY=r,this.src=h,this._enableMerageInAtlas=!0,k.enabled&&this._w0&&(r.name=r.name.substr(0,r.name.length-3),r.isArray=!0,r.location=i.getUniformLocation(this._program,r.name)),this._params.push(r)}for(s=0,a=this._params.length;s=0;n-=2)(s=this._paramsMap[t[n]])&&null!=(r=t[n+1])&&(i&&i[s.name]&&i[s.name].bind(),a+=s.fun.call(this,s,r));C.shaderCall+=a},i.getParams=function(){return this._params},e.getShader=function(t){return e.sharders[t]},e.create=function(t,i,r,s){return new e(t,i,r,s)},e.withCompile=function(t,i,r,s){if(r&&e.sharders[r])return e.sharders[r];var a=e._preCompileShader[2e-4*t];if(!a)throw new Error("withCompile shader err!"+t);return a.createShader(i,r,s)},e.withCompile2D=function(t,i,r,s,a){if(s&&e.sharders[s])return e.sharders[s];var n=e._preCompileShader[2e-4*t+i];if(!n)throw new Error("withCompile shader err!"+t+" "+i);return n.createShader(r,s,a)},e.addInclude=function(t,e){xt.addInclude(t,e)},e.preCompile=function(t,i,r,s){var a=2e-4*t;e._preCompileShader[a]=new xt(a,i,r,s)},e.preCompile2D=function(t,i,r,s,a){var n=2e-4*t+i;e._preCompileShader[n]=new xt(n,r,s,a)},e._createShader=function(t,e,i){var r=t.createShader(i);return t.shaderSource(r,e),t.compileShader(r),r},e._TEXTURES=[33984,33985,33986,33987,33988,33989,33990,,33991,33992],e._count=0,e._preCompileShader={},e.SHADERNAME2ID=2e-4,e.sharders=(e.sharders=[],e.sharders.length=32,e.sharders),r(e,["nameKey",function(){return this.nameKey=new L}]),e}(),Zt=function(t){function e(){this._maxsize=0,this._upload=!0,this._uploadSize=0,e.__super.call(this),this.lock=!0}s(e,"laya.webgl.utils.Buffer2D",t);var i=e.prototype;return i.needSize=function(t){var e=this._byteLength;if(t){var i=this._byteLength+t;i<=this._buffer.byteLength||this._resizeBuffer(i<<1,!0),this._byteLength=i}return e},i._bufferData=function(){this._maxsize=Math.max(this._maxsize,this._byteLength),C.loopCount%30==0&&(this._buffer.byteLength>this._maxsize+64&&(this.memorySize=this._buffer.byteLength,this._buffer=this._buffer.slice(0,this._maxsize+64),this._checkArrayUse()),this._maxsize=this._byteLength),this._uploadSizethis._maxsize+64&&(this.memorySize=this._buffer.byteLength,this._buffer=this._buffer.slice(0,this._maxsize+64),this._checkArrayUse()),this._maxsize=this._byteLength),this._uploadSize0){var i=new ArrayBuffer(t);new Uint8Array(i).set(new Uint8Array(this._buffer),0),this._buffer=i}else this._buffer=new ArrayBuffer(t);return this._checkArrayUse(),this._upload=!0,this},i.append=function(t){this._upload=!0;var e,i=0;i=t.byteLength,t instanceof Uint8Array?(this._resizeBuffer(this._byteLength+i,!0),e=new Uint8Array(this._buffer,this._byteLength)):t instanceof Uint16Array?(this._resizeBuffer(this._byteLength+i,!0),e=new Uint16Array(this._buffer,this._byteLength)):t instanceof Float32Array&&(this._resizeBuffer(this._byteLength+i,!0),e=new Float32Array(this._buffer,this._byteLength)),e.set(t,0),this._byteLength+=i,this._checkArrayUse()},i.appendU16Array=function(t,e){this._resizeBuffer(this._byteLength+2*e,!0);for(var i=new Uint16Array(this._buffer,this._byteLength,e),r=0;r