<!DOCTYPE html>
<html>
<head>
<style type="text/css" media="screen">
body {
outline: 10px solid transparent; /* affects layer sizes */
}
.canvas {
margin: 20px;
width: 200px;
height: 200px;
background-color: rgba(0, 0, 128, 0.0);
}
</style>
<script>
function initWebGL(canvasName, vshader, fshader, attribs, clearColor, clearDepth, premultAlpha)
{
var canvas = document.getElementById(canvasName);
var gl = canvas.getContext("webgl", {premultipliedAlpha: premultAlpha});
if (!gl) {
alert("No WebGL context found");
return null;
}
gl.clearColor(clearColor[0], clearColor[1], clearColor[2], clearColor[3]);
gl.clearDepth(clearDepth);
gl.enable(gl.DEPTH_TEST);
gl.enable(gl.BLEND);
gl.blendFunc(gl.SRC_ALPHA, gl.ONE);
return gl;
}
function drawCanvas(canvasID, premultAlpha)
{
var blueColor = 128.0 / 255.0 * (premultAlpha ? 0.5 : 1.0);
var gl = initWebGL(canvasID, "", "", [], [ 0, 0, blueColor, 0.5 ], 1, premultAlpha);
gl.viewport(0, 0, 200, 200);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
}
function init()
{
drawCanvas('canvas1', false);
drawCanvas('canvas2', true);
}
</script>
</head>
<body onload="init()">
<canvas class="canvas" id="canvas1" style="left: 20px" width="200" height="200"></canvas>
<canvas class="canvas" id="canvas2" style="left: 20px" width="200" height="200"></canvas>
<!-- Both should look the same. -->
</body>
</html>