mirror of
https://github.com/gpujs/gpu.js.git
synced 2026-01-18 16:04:10 +00:00
...it kind of snowballed from some needs Fixes #521 - If `tactic` is not set, check precision allowed from WebGL, and automatically change based off needs, otherwise use value from `tactic`. Fixes #535 - Internally check if texture from argument is the same as output, if so, clone this texture, and then clean it up after the kernel runs. Fixes #536 - Normalize all declarations to non-destructured, and then parse Fixes #537 - Change logic Fixes #538 - Found the GL script that would work, and reduced the methods to use it Fixes #539 - Found a better way of testing random, and this gives me an error for 1 in 10 runs, acceptable Some refactoring for less duplicate code and documentation
67 lines
1.5 KiB
HTML
67 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>GPU.js Random Examples</title>
|
|
</head>
|
|
<body>
|
|
<h2>CPU Random</h2>
|
|
<canvas id="cpu-random-output"></canvas>
|
|
<h2>WebGL1 Random</h2>
|
|
<canvas id="web-gl-random-output"></canvas>
|
|
<h2>WebGL2 Random</h2>
|
|
<canvas id="web-gl2-random-output"></canvas>
|
|
</body>
|
|
<script src="../dist/gpu-browser.js"></script>
|
|
<script>
|
|
let cpu, webGL, webGL2;
|
|
|
|
cpu = new GPU({
|
|
mode: 'cpu',
|
|
canvas: document.getElementById('cpu-random-output')
|
|
});
|
|
try {
|
|
webGL = new GPU({
|
|
mode: 'webgl',
|
|
canvas: document.getElementById('web-gl-random-output')
|
|
});
|
|
} catch (e) {}
|
|
try {
|
|
webGL2 = new GPU({
|
|
mode: 'webgl2',
|
|
canvas: document.getElementById('web-gl2-random-output')
|
|
});
|
|
} catch (e) {}
|
|
|
|
function drawRandomFunction() {
|
|
this.color(Math.random(), Math.random(), Math.random());
|
|
}
|
|
|
|
const cpuDrawRandom = cpu.createKernel(drawRandomFunction)
|
|
.setGraphical(true)
|
|
.setOutput([100, 100]);
|
|
|
|
const webGLDrawRandom = webGL
|
|
? webGL.createKernel(drawRandomFunction)
|
|
.setGraphical(true)
|
|
.setOutput([100, 100])
|
|
: () => {};
|
|
|
|
const webGL2DrawRandom = webGL2
|
|
? webGL2.createKernel(drawRandomFunction)
|
|
.setGraphical(true)
|
|
.setOutput([100, 100])
|
|
: () => {};
|
|
|
|
function draw() {
|
|
cpuDrawRandom();
|
|
webGLDrawRandom();
|
|
webGL2DrawRandom();
|
|
|
|
requestAnimationFrame(draw);
|
|
}
|
|
|
|
requestAnimationFrame(draw);
|
|
</script>
|
|
</html>
|