a-big-triangle
Version:
Draws a big triangle
30 lines (24 loc) • 814 B
JavaScript
var weakMap = typeof WeakMap === 'undefined' ? require('weak-map') : WeakMap
var createBuffer = require('gl-buffer')
var createVAO = require('gl-vao')
var TriangleCache = new weakMap()
function createABigTriangle(gl) {
var triangleVAO = TriangleCache.get(gl)
var handle = triangleVAO && (triangleVAO._triangleBuffer.handle || triangleVAO._triangleBuffer.buffer)
if(!handle || !gl.isBuffer(handle)) {
var buf = createBuffer(gl, new Float32Array([-1, -1, -1, 4, 4, -1]))
triangleVAO = createVAO(gl, [
{ buffer: buf,
type: gl.FLOAT,
size: 2
}
])
triangleVAO._triangleBuffer = buf
TriangleCache.set(gl, triangleVAO)
}
triangleVAO.bind()
gl.drawArrays(gl.TRIANGLES, 0, 3)
triangleVAO.unbind()
}
module.exports = createABigTriangle