UNPKG

@animech-public/playcanvas

Version:
2 lines (1 loc) 771 B
import{platform as e}from"../../core/platform.js";import{Preprocessor as t}from"../../core/preprocessor.js";let i=0;class s{constructor(s,r){if(this.meshUniformBufferFormat=void 0,this.meshBindGroupFormat=void 0,this.id=i++,this.device=s,this.definition=r,this.name=r.name||"Untitled",this.init(),r.cshader);else{r.vshader=t.run(r.vshader,r.vincludes);const i=s.isWebGL2&&("osx"===e.name||"ios"===e.name);r.fshader=t.run(r.fshader,r.fincludes,i)}this.impl=s.createShaderImpl(this)}init(){this.ready=!1,this.failed=!1}get label(){return`Shader Id ${this.id} ${this.name}`}destroy(){this.device.onDestroyShader(this),this.impl.destroy(this)}loseContext(){this.init(),this.impl.loseContext()}restoreContext(){this.impl.restoreContext(this.device,this)}}export{s as Shader};