Skip to content

Instantly share code, notes, and snippets.

@VAKHULA
Forked from matrix3d/webgl.ts
Created September 19, 2022 05:39
Show Gist options
  • Save VAKHULA/adb2544d7d4de1e8e1d05eef30c5203e to your computer and use it in GitHub Desktop.
Save VAKHULA/adb2544d7d4de1e8e1d05eef30c5203e to your computer and use it in GitHub Desktop.

Revisions

  1. @matrix3d matrix3d renamed this gist Feb 12, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. @matrix3d matrix3d created this gist Feb 12, 2015.
    34 changes: 34 additions & 0 deletions webgl
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,34 @@
    window.onload = () => {
    var canvasObject = <HTMLCanvasElement>document.getElementById("webglview");
    var webgl = canvasObject.getContext("experimental-webgl");
    if (webgl == null) {
    alert("do not support webgl");
    return;
    }
    var vsh = "attribute vec4 position;void main(){gl_Position = position;}";
    var fsh = "void main(){gl_FragColor=vec4(1.,0.,0.,1.);}";
    var vshader = webgl.createShader(webgl.VERTEX_SHADER);
    var fshader = webgl.createShader(webgl.FRAGMENT_SHADER);
    webgl.shaderSource(vshader, vsh);
    webgl.shaderSource(fshader, fsh);
    webgl.compileShader(vshader);
    webgl.compileShader(fshader);
    var program = webgl.createProgram();
    webgl.attachShader(program, vshader);
    webgl.attachShader(program, fshader);
    webgl.bindAttribLocation(program, 0, "test");
    webgl.linkProgram(program);
    if (!webgl.getProgramParameter(program, webgl.LINK_STATUS)) {
    alert(webgl.getProgramInfoLog(program));
    return;
    }
    webgl.useProgram(program);
    var buffer = webgl.createBuffer();
    webgl.bindBuffer(webgl.ARRAY_BUFFER, buffer);
    webgl.bufferData(webgl.ARRAY_BUFFER, new Float32Array([0, 0, 0, 1, 1, 0, 1, 0, 0]), webgl.STATIC_DRAW);
    webgl.enableVertexAttribArray(0);
    webgl.vertexAttribPointer(0, 3, webgl.FLOAT, false, 0, 0);
    webgl.clearColor(0, 0, 0, 1);
    webgl.clear(webgl.COLOR_BUFFER_BIT);
    webgl.drawArrays(webgl.TRIANGLE_STRIP, 0, 3);
    };