mirror of
https://github.com/kkapsner/CanvasBlocker
synced 2024-10-31 18:38:45 +01:00
34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
(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;
|
|
}
|
|
});
|
|
}()); |