34 lines
982 B
JavaScript
34 lines
982 B
JavaScript
function initBuffers(gl) {
|
|
const positionBuffer = initPositionBuffer(gl);
|
|
|
|
return {
|
|
position: positionBuffer,
|
|
};
|
|
}
|
|
|
|
function initPositionBuffer(gl) {
|
|
// Position array of a "full-screen" quad (encoded as TRIANGLE_STRIP)
|
|
// Ref: https://en.wikipedia.org/wiki/Triangle_strip
|
|
// NOTE: +x,+y is top-right & -x,-y is bottom-left
|
|
const positions = [
|
|
-1.0, 1.0,
|
|
-1.0, -1.0,
|
|
1.0, 1.0,
|
|
1.0, -1.0,
|
|
];
|
|
|
|
// Create a buffer for the square's positions.
|
|
const positionBuffer = gl.createBuffer();
|
|
// Select the positionBuffer as the one to apply buffer
|
|
// operations to from here out.
|
|
gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
|
|
// Now pass the list of positions into WebGL to build the
|
|
// shape. We do this by creating a Float32Array from the
|
|
// JavaScript array, then use it to fill the current buffer.
|
|
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(positions), gl.STATIC_DRAW);
|
|
|
|
return positionBuffer;
|
|
}
|
|
|
|
export { initBuffers };
|
|
|