cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
2 lines (1 loc) • 2.37 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e=require("./GLProgram.js"),r=/for\s*?\(int\s*?_idx_\s*\=\s*([\w-]+)\;\s*_idx_\s*<\s*([\w-]+);\s*_idx_\s*\+\+\s*\)\s*\{\{([\s\S]+?)(?=\}\})\}\}/g;function n(e,n,i){var t={};for(var s in i)t[s+"_COUNT"]=i[s];return e.replace(r,(function(e,r,i,s){var a="";isNaN(r)&&(r=r in n?n[r]:t[r]),isNaN(i)&&(i=i in n?n[i]:t[i]);for(var o=parseInt(r);o<parseInt(i);o++)a+="{"+s.replace(/float\s*\(\s*_idx_\s*\)/g,o.toFixed(1)).replace(/_idx_/g,o)+"}";return a}))}function i(e,r,n){var i=[];if(r)for(var t in r){var s=r[t];s>0&&i.push("#define "+t.toUpperCase()+"_COUNT "+s)}if(n)for(var a=0;a<n.length;a++){var o=n[a];i.push("#define "+o.toUpperCase()+"_ENABLED")}for(var o in e){var d=e[o];null===d?i.push("#define "+o):i.push("#define "+o+" "+d.toString())}return i.join("\n")}function t(e){this._renderer=e,this._cache={}}t.prototype.getProgram=function(r,t,s){var a=this._cache,o=r.isSkinnedMesh&&r.isSkinnedMesh(),d=r.isInstancedMesh&&r.isInstancedMesh(),u="s"+t.shader.shaderID+"m"+t.getProgramKey();if(s&&(u+="se"+s.getProgramKey(r.lightGroup)),o&&(u+=",sk"+r.joints.length),d&&(u+=",is"),T=a[u])return T;var f=s?s.getLightsNumbers(r.lightGroup):{},_=this._renderer,l=_.gl,h=t.getEnabledTextures(),g="";if(o){var v={SKINNING:null,JOINT_COUNT:r.joints.length};r.joints.length>_.getMaxJointNumber()&&(v.USE_SKIN_MATRICES_TEXTURE=null),g+="\n"+i(v)+"\n"}d&&(g+="\n#define INSTANCING\n");var p=g+i(t.vertexDefines,f,h),c=g+i(t.fragmentDefines,f,h),x=p+"\n"+t.shader.vertex,N=["OES_standard_derivatives","EXT_shader_texture_lod"].filter((function(e){return null!=_.getGLExtension(e)}));N.indexOf("EXT_shader_texture_lod")>=0&&(c+="\n#define SUPPORT_TEXTURE_LOD"),N.indexOf("OES_standard_derivatives")>=0&&(c+="\n#define SUPPORT_STANDARD_DERIVATIVES");var S,T,m=function(e){for(var r=[],n=0;n<e.length;n++)r.push("#extension GL_"+e[n]+" : enable");return r.join("\n")}(N)+"\n"+(["precision",S=t.precision,"float"].join(" ")+";\n"+["precision",S,"int"].join(" ")+";\n"+["precision",S,"sampler2D"].join(" ")+";\n\n")+c+"\n"+t.shader.fragment,E=n(x,t.vertexDefines,f),I=n(m,t.fragmentDefines,f);(T=new e.default).uniformSemantics=t.shader.uniformSemantics,T.attributes=t.shader.attributes;var O=T.buildProgram(l,t.shader,E,I);return T.__error=O,a[u]=T,T},exports.default=t;