Shortest program in WebGL

by Ivan Enzhaev

HTML

<canvas id="renderCanvas" width="200" height="200" style="border: 1px solid black;"></canvas>

JavaScript

var VSHADER_SOURCE =
'void main()\n' +
'{\n' +
'    gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n' +
'    gl_PointSize = 10.0;\n' +
'}\n';

var FSHADER_SOURCE =
'void main()\n' +
'{\n' +
'    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n' +
'}\n';

function main()
{
    var gl = document.getElementById('renderCanvas').getContext('webgl');
    var vShader = gl.createShader(gl.VERTEX_SHADER);
    gl.shaderSource(vShader, VSHADER_SOURCE);
    gl.compileShader(vShader);
    var fShader = gl.createShader(gl.FRAGMENT_SHADER);
    gl.shaderSource(fShader, FSHADER_SOURCE);
    gl.compileShader(fShader);
    var program = gl.createProgram();
    gl.attachShader(program, vShader);
    gl.attachShader(program, fShader);
    gl.linkProgram(program);
    gl.useProgram(program);
    gl.drawArrays(gl.POINTS, 0, 1);
}
main();