38 lines
No EOL
1 KiB
JavaScript
38 lines
No EOL
1 KiB
JavaScript
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() |