webgl/public/js/gl.js

38 lines
1 KiB
JavaScript
Raw Normal View History

2023-01-18 14:30:41 +00:00
var gl;
async function main() {
const canvas = document.getElementById("canvas")
gl = canvas.getContext('webgl')
if(!gl) {
console.log("Your browser does not support webgl")
return
}
var ext = gl.getExtension('OES_vertex_array_object');
if(!ext) {
console.log("Your browser does not support webgl 2")
return
}
gl['createVertexArray'] = function() { return ext['createVertexArrayOES'](); };
gl['deleteVertexArray'] = function(vao) { ext['deleteVertexArrayOES'](vao); };
gl['bindVertexArray'] = function(vao) { ext['bindVertexArrayOES'](vao); };
gl['isVertexArray'] = function(vao) { return ext['isVertexArrayOES'](vao); };
var shader = await Shader.load("shader/simple.vert","shader/simple.frag")
var triangle = new Mesh(3)
.store([0.0, 0.5, -0.5, -0.5, 0.5, -0.5], 2)
.store([1.0, 1.0, 0.0, 0.7, 0.0, 1.0, 0.1, 1.0, 0.6], 3)
.finish()
gl.useProgram(shader)
triangle.bind()
gl.drawArrays(gl.TRIANGLES, 0, triangle.vertexCount)
}
main()