Skip to content

Commit 774af37

Browse files
committed
webgl tests
1 parent a13410c commit 774af37

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
'use strict';
2+
3+
4+
var canvasEl = document.createElement("canvas");
5+
6+
var ctx = canvasEl.getContext("webgl");
7+
8+
ctx.clear(5);
9+
10+
ctx.clearColor(0, 1, 2, 3);
11+
12+
ctx.enable(5);
13+
14+
ctx.disable(5);
15+
16+
ctx.blendFunc(0, 1);
17+
18+
ctx.cullFace(5);
19+
20+
var buf = ctx.createBuffer();
21+
22+
ctx.deleteBuffer(buf);
23+
24+
ctx.bindBuffer(5, buf);
25+
26+
ctx.bufferData(5, new Uint16Array(5), 5);
27+
28+
ctx.bufferData(5, new Float32Array(5), 5);
29+
30+
var program = ctx.createProgram();
31+
32+
ctx.linkProgram(program);
33+
34+
ctx.useProgram(program);
35+
36+
var programlog = ctx.getProgramInfoLog(program);
37+
38+
ctx.bindAttribLocation(program, 5, "");
39+
40+
var shader = ctx.createShader(5);
41+
42+
ctx.shaderSource(shader, "");
43+
44+
ctx.compileShader(shader);
45+
46+
ctx.attachShader(program, shader);
47+
48+
var shaderlog = ctx.getShaderInfoLog(shader);
49+
50+
ctx.drawElements(0, 1, 2, 3);
51+
52+
ctx.enableVertexAttribArray(5);
53+
54+
ctx.vertexAttribPointer(0, 1, 2, false, 3, 4);
55+
56+
var loc = ctx.getAttribLocation(program, "");
57+
58+
ctx.drawArrays(0, 1, 2);
59+
60+
exports.canvasEl = canvasEl;
61+
exports.ctx = ctx;
62+
exports.buf = buf;
63+
exports.program = program;
64+
exports.programlog = programlog;
65+
exports.shader = shader;
66+
exports.shaderlog = shaderlog;
67+
exports.loc = loc;
68+
/* canvasEl Not a pure module */
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
open Webapi.Canvas
2+
open Webapi.Canvas.WebGl
3+
open Webapi.Dom
4+
5+
let canvasEl: Dom.element = document->Document.createElement("canvas")
6+
let ctx: glT = canvasEl->CanvasElement.getContextWebGl
7+
8+
// there is no meaning to these numbers, they're just to make code generate
9+
10+
ctx->clear(5)
11+
ctx->clearColor(0., 1., 2., 3.)
12+
ctx->enable(5)
13+
ctx->disable(5)
14+
ctx->blendFunc(0, 1)
15+
ctx->cullFace(5)
16+
let buf: bufferT = ctx->createBuffer
17+
ctx->deleteBuffer(buf)
18+
ctx->bindBuffer(5, buf)
19+
ctx->bufferData(5, Js.Typed_array.Uint16Array.fromLength(5), 5)
20+
ctx->bufferFloatData(5, Js.Typed_array.Float32Array.fromLength(5), 5)
21+
let program = ctx->createProgram
22+
ctx->linkProgram(program)
23+
ctx->useProgram(program)
24+
let programlog: string = ctx->getProgramInfoLog(program)
25+
ctx->bindAttribLocation(program, 5, "")
26+
let shader: shaderT = ctx->createShader(5)
27+
ctx->shaderSource(shader, "")
28+
ctx->compileShader(shader)
29+
ctx->attachShader(program, shader)
30+
let shaderlog: string = ctx->getShaderInfoLog(shader)
31+
ctx->drawElements(0, 1, 2, 3)
32+
ctx->enableVertexAttribArray(5)
33+
ctx->vertexAttribPointer(0, 1, 2, false, 3, 4)
34+
let loc: int = ctx->getAttribLocation(program, "")
35+
ctx->drawArrays(0, 1, 2)

0 commit comments

Comments
 (0)