Remove twgl
This commit is contained in:
parent
13942af41c
commit
ac66c91000
3 changed files with 357 additions and 147 deletions
|
|
@ -0,0 +1,24 @@
|
|||
import { createShader } from './create-shader';
|
||||
|
||||
export const createProgram = (
|
||||
gl: WebGL2RenderingContext,
|
||||
vertexShader: string,
|
||||
fragmentShader: string
|
||||
): WebGLProgram => {
|
||||
const program = gl.createProgram();
|
||||
|
||||
gl.attachShader(program, createShader(gl, gl.VERTEX_SHADER, vertexShader));
|
||||
gl.attachShader(
|
||||
program,
|
||||
createShader(gl, gl.FRAGMENT_SHADER, fragmentShader)
|
||||
);
|
||||
gl.linkProgram(program);
|
||||
|
||||
const success = gl.getProgramParameter(program, gl.LINK_STATUS);
|
||||
if (success) {
|
||||
return program;
|
||||
}
|
||||
|
||||
console.log(gl.getProgramInfoLog(program));
|
||||
gl.deleteProgram(program);
|
||||
};
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
export const createShader = (
|
||||
gl: WebGL2RenderingContext,
|
||||
type: GLenum,
|
||||
source: string
|
||||
): WebGLShader => {
|
||||
const shader = gl.createShader(type);
|
||||
gl.shaderSource(shader, source);
|
||||
gl.compileShader(shader);
|
||||
const success = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
|
||||
if (success) {
|
||||
return shader;
|
||||
}
|
||||
|
||||
console.log(gl.getShaderInfoLog(shader));
|
||||
gl.deleteShader(shader);
|
||||
};
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
export const prepareScreenQuad = (
|
||||
gl: WebGL2RenderingContext,
|
||||
program: WebGLProgram,
|
||||
attributeName: string
|
||||
): WebGLVertexArrayObject => {
|
||||
const positionAttributeLocation = gl.getAttribLocation(
|
||||
program,
|
||||
attributeName
|
||||
);
|
||||
|
||||
const positionBuffer = gl.createBuffer();
|
||||
|
||||
gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
|
||||
gl.bufferData(
|
||||
gl.ARRAY_BUFFER,
|
||||
new Float32Array([-1.0, -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0]),
|
||||
gl.STATIC_DRAW
|
||||
);
|
||||
const vao = gl.createVertexArray();
|
||||
|
||||
gl.bindVertexArray(vao);
|
||||
gl.enableVertexAttribArray(positionAttributeLocation);
|
||||
gl.vertexAttribPointer(positionAttributeLocation, 2, gl.FLOAT, false, 0, 0);
|
||||
|
||||
return vao;
|
||||
};
|
||||
Loading…
Reference in a new issue