( gl: WebGLRenderingContext, vertexShader: WebGLShader, fragSrc: string, )
| 37 | } |
| 38 | |
| 39 | function linkProgram( |
| 40 | gl: WebGLRenderingContext, |
| 41 | vertexShader: WebGLShader, |
| 42 | fragSrc: string, |
| 43 | ): WebGLProgram { |
| 44 | const p = gl.createProgram(); |
| 45 | if (!p) throw new Error("[HyperShader] Failed to create program"); |
| 46 | gl.attachShader(p, vertexShader); |
| 47 | gl.attachShader(p, compileShader(gl, fragSrc, gl.FRAGMENT_SHADER)); |
| 48 | gl.linkProgram(p); |
| 49 | if (!gl.getProgramParameter(p, gl.LINK_STATUS)) { |
| 50 | throw new Error(`[HyperShader] Program link: ${gl.getProgramInfoLog(p) || "unknown"}`); |
| 51 | } |
| 52 | return p; |
| 53 | } |
| 54 | |
| 55 | export function createProgram(gl: WebGLRenderingContext, fragSrc: string): WebGLProgram { |
| 56 | if (!cachedVertexShader) { |
no test coverage detected