(function(){ "use strict"; ["webgl", "webgl2"].forEach(function(context, index){ var output = document.createElement("div"); document.getElementById("output").appendChild(output); try { var canvas = document.createElement("canvas"); canvas.width = 11; canvas.height = 13; var gl = canvas.getContext(context) || canvas.getContext("experimental-" + context); // paint it completely black gl.clearColor(index * 0.25, index * 0.25, index * 0.25, 1); gl.clear(gl.COLOR_BUFFER_BIT); var pixels = new Uint8Array(gl.drawingBufferWidth * gl.drawingBufferHeight * 4); gl.readPixels(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight, gl.RGBA, gl.UNSIGNED_BYTE, pixels); var values = {}; var max = 0; for (var i = 0; i < pixels.length; i += 1){ values[pixels[i]] = (values[pixels[i]] || 0) + 1; max = Math.max(max, values[pixels[i]]); } output.textContent = context + ": " + (max !== 3 * values[255]? "": "not ") + "faked"; output.title = JSON.stringify(values); } catch (e){ output.textContent = context + ": ERROR"; output.title = e; } }); }());