Module Canvas.WebGl

type glT;
type programT;
type shaderT;
type bufferT;
let _DEPTH_BUFFER_BIT: int;
let _STENCIL_BUFFER_BIT: int;
let _COLOR_BUFFER_BIT: int;
let _POINTS: int;
let _LINES: int;
let _LINE_LOOP: int;
let _LINE_STRIP: int;
let _TRIANGLES: int;
let _TRIANGLE_STRIP: int;
let _TRIANGLE_FAN: int;
let _CULL_FACE: int;
let _BLEND: int;
let _DITHER: int;
let _STENCIL_TEST: int;
let _DEPTH_TEST: int;
let _SCISSOR_TEST: int;
let _POLYGON_OFFSET_FILL: int;
let _SAMPLE_ALPHA_TO_COVERAGE: int;
let _SAMPLE_COVERAGE: int;
let _ZERO: int;
let _ONE: int;
let _SRC_COLOR: int;
let _ONE_MINUS_SRC_COLOR: int;
let _SRC_ALPHA: int;
let _ONE_MINUS_SRC_ALPHA: int;
let _DST_ALPHA: int;
let _ONE_MINUS_DST_ALPHA: int;
let _BYTE: int;
let _UNSIGNED_BYTE: int;
let _SHORT: int;
let _UNSIGNED_SHORT: int;
let _INT: int;
let _UNSIGNED_INT: int;
let _FLOAT: int;
let _FRONT: int;
let _BACK: int;
let _FRONT_AND_BACK: int;
let _FRAGMENT_SHADER: int;
let _VERTEX_SHADER: int;
let _ARRAY_BUFFER: int;
let _ELEMENT_ARRAY_BUFFER: int;
let _ARRAY_BUFFER_BINDING: int;
let _ELEMENT_ARRAY_BUFFER_BINDING: int;
let _STREAM_DRAW: int;
let _STATIC_DRAW: int;
let _DYNAMIC_DRAW: int;
let clear: glT => int => unit;
let clearColor: glT => float => float => float => float => unit;
let enable: glT => int => unit;
let disable: glT => int => unit;
let blendFunc: glT => int => int => unit;
let cullFace: glT => int => unit;
let createBuffer: glT => bufferT;
let deleteBuffer: glT => bufferT => unit;
let bindBuffer: glT => int => bufferT => unit;
let bufferData: glT => int => Js.Typed_array.Uint16Array.t => int => unit;
let bufferFloatData: glT => int => Js.Typed_array.Float32Array.t => int => unit;
let createProgram: glT => programT;
let linkProgram: glT => programT => unit;
let useProgram: glT => programT => unit;
let getProgramInfoLog: glT => programT => string;
let bindAttribLocation: glT => programT => int => string => unit;
let createShader: glT => int => shaderT;
let shaderSource: glT => shaderT => string => unit;
let compileShader: glT => shaderT => unit;
let attachShader: glT => programT => shaderT => unit;
let getShaderInfoLog: glT => shaderT => string;
let drawElements: glT => int => int => int => int => unit;
let enableVertexAttribArray: glT => int => unit;
let vertexAttribPointer: glT => int => int => int => bool => int => int => unit;
let getAttribLocation: glT => programT => string => int;
let drawArrays: glT => int => int => int => unit;