Test calling webgl function on non-preserved drawbuffer

by Gregg Tavares

HTML

<script src="http://greggman.github.com/webgl-fundamentals/webgl/resources/webgl-utils.js"></script>
<canvas id="canvas" width="400" height="300"></canvas>

CSS

canvas {
    border: 1px solid black;
}

JavaScript

main();
function main() {
    var canvas = document.getElementById("canvas");
    var gl = getWebGLContext(canvas);
    if (!gl) {
        alert("no WebGL");
        return;
    }

    gl.clearColor(0,1,0,1);
    gl.clear(gl.COLOR_BUFFER_BIT); 
    
    setTimeout(function() {
        // effect some random stuff to make sure
        // the webgl area does not get cleared.
        gl.enable(gl.BLEND);
        gl.bindTexture(gl.TEXTURE_2D, gl.createTexture());
        gl.viewport(1,1,1,1);
        gl.bindFramebuffer(gl.FRAMEBUFFER, null);
        var p = new Uint8Array(4);
        gl.readPixels(0,0,1,1,gl.RGBA,gl.UNSIGNED_BYTE, p);
        gl.drawArrays(gl.TRIANGLE, 0, 0);
        console.log(p);
        console.log(gl.getError());
    }, 1000);
}