Files
DefinitelyTyped/pixi/webgl.d.ts
2013-08-22 17:35:14 +02:00

534 lines
21 KiB
TypeScript

interface WebGLContextAttributes {
alpha : boolean;
depth : boolean;
stencil : boolean;
antialias : boolean;
premultipliedAlpha : boolean;
}
interface WebGLObject {
$__dummyprop__WebGLObject : any;
}
interface WebGLBuffer extends WebGLObject {
$__dummyprop__WebGLBuffer : any;
}
interface WebGLFramebuffer extends WebGLObject {
$__dummyprop__WebGLFramebuffer : any;
}
interface WebGLProgram extends WebGLObject {
$__dummyprop__WebGLProgram : any;
}
interface WebGLRenderbuffer extends WebGLObject {
$__dummyprop__WebGLRenderbuffer : any;
}
interface WebGLShader extends WebGLObject {
$__dummyprop__WebGLShader : any;
}
interface WebGLTexture extends WebGLObject {
$__dummyprop__WebGLTexture : any;
}
interface WebGLUniformLocation {
$__dummyprop__WebGLUniformLocation : any;
}
interface WebGLActiveInfo {
size : number;
type : number;
name : string;
}
interface WebGLRenderingContext {
DEPTH_BUFFER_BIT : number;
STENCIL_BUFFER_BIT : number;
COLOR_BUFFER_BIT : number;
POINTS : number;
LINES : number;
LINE_LOOP : number;
LINE_STRIP : number;
TRIANGLES : number;
TRIANGLE_STRIP : number;
TRIANGLE_FAN : number;
ZERO : number;
ONE : number;
SRC_COLOR : number;
ONE_MINUS_SRC_COLOR : number;
SRC_ALPHA : number;
ONE_MINUS_SRC_ALPHA : number;
DST_ALPHA : number;
ONE_MINUS_DST_ALPHA : number;
DST_COLOR : number;
ONE_MINUS_DST_COLOR : number;
SRC_ALPHA_SATURATE : number;
FUNC_ADD : number;
BLEND_EQUATION : number;
BLEND_EQUATION_RGB : number;
BLEND_EQUATION_ALPHA : number;
FUNC_SUBTRACT : number;
FUNC_REVERSE_SUBTRACT : number;
BLEND_DST_RGB : number;
BLEND_SRC_RGB : number;
BLEND_DST_ALPHA : number;
BLEND_SRC_ALPHA : number;
CONSTANT_COLOR : number;
ONE_MINUS_CONSTANT_COLOR : number;
CONSTANT_ALPHA : number;
ONE_MINUS_CONSTANT_ALPHA : number;
BLEND_COLOR : number;
ARRAY_BUFFER : number;
ELEMENT_ARRAY_BUFFER : number;
ARRAY_BUFFER_BINDING : number;
ELEMENT_ARRAY_BUFFER_BINDING : number;
STREAM_DRAW : number;
STATIC_DRAW : number;
DYNAMIC_DRAW : number;
BUFFER_SIZE : number;
BUFFER_USAGE : number;
CURRENT_VERTEX_ATTRIB : number;
FRONT : number;
BACK : number;
FRONT_AND_BACK : number;
TEXTURE_2D : number;
CULL_FACE : number;
BLEND : number;
DITHER : number;
STENCIL_TEST : number;
DEPTH_TEST : number;
SCISSOR_TEST : number;
POLYGON_OFFSET_FILL : number;
SAMPLE_ALPHA_TO_COVERAGE : number;
SAMPLE_COVERAGE : number;
NO_ERROR : number;
INVALID_ENUM : number;
INVALID_VALUE : number;
INVALID_OPERATION : number;
OUT_OF_MEMORY : number;
CW : number;
CCW : number;
LINE_WIDTH : number;
ALIASED_POINT_SIZE_RANGE : number;
ALIASED_LINE_WIDTH_RANGE : number;
CULL_FACE_MODE : number;
FRONT_FACE : number;
DEPTH_RANGE : number;
DEPTH_WRITEMASK : number;
DEPTH_CLEAR_VALUE : number;
DEPTH_FUNC : number;
STENCIL_CLEAR_VALUE : number;
STENCIL_FUNC : number;
STENCIL_FAIL : number;
STENCIL_PASS_DEPTH_FAIL : number;
STENCIL_PASS_DEPTH_PASS : number;
STENCIL_REF : number;
STENCIL_VALUE_MASK : number;
STENCIL_WRITEMASK : number;
STENCIL_BACK_FUNC : number;
STENCIL_BACK_FAIL : number;
STENCIL_BACK_PASS_DEPTH_FAIL : number;
STENCIL_BACK_PASS_DEPTH_PASS : number;
STENCIL_BACK_REF : number;
STENCIL_BACK_VALUE_MASK : number;
STENCIL_BACK_WRITEMASK : number;
VIEWPORT : number;
SCISSOR_BOX : number;
COLOR_CLEAR_VALUE : number;
COLOR_WRITEMASK : number;
UNPACK_ALIGNMENT : number;
PACK_ALIGNMENT : number;
MAX_TEXTURE_SIZE : number;
MAX_VIEWPORT_DIMS : number;
SUBPIXEL_BITS : number;
RED_BITS : number;
GREEN_BITS : number;
BLUE_BITS : number;
ALPHA_BITS : number;
DEPTH_BITS : number;
STENCIL_BITS : number;
POLYGON_OFFSET_UNITS : number;
POLYGON_OFFSET_FACTOR : number;
TEXTURE_BINDING_2D : number;
SAMPLE_BUFFERS : number;
SAMPLES : number;
SAMPLE_COVERAGE_VALUE : number;
SAMPLE_COVERAGE_INVERT : number;
NUM_COMPRESSED_TEXTURE_FORMATS : number;
COMPRESSED_TEXTURE_FORMATS : number;
DONT_CARE : number;
FASTEST : number;
NICEST : number;
GENERATE_MIPMAP_HINT : number;
BYTE : number;
UNSIGNED_BYTE : number;
SHORT : number;
UNSIGNED_SHORT : number;
INT : number;
UNSIGNED_INT : number;
FLOAT : number;
DEPTH_COMPONENT : number;
ALPHA : number;
RGB : number;
RGBA : number;
LUMINANCE : number;
LUMINANCE_ALPHA : number;
UNSIGNED_SHORT_4_4_4_4 : number;
UNSIGNED_SHORT_5_5_5_1 : number;
UNSIGNED_SHORT_5_6_5 : number;
FRAGMENT_SHADER : number;
VERTEX_SHADER : number;
MAX_VERTEX_ATTRIBS : number;
MAX_VERTEX_UNIFORM_VECTORS : number;
MAX_VARYING_VECTORS : number;
MAX_COMBINED_TEXTURE_IMAGE_UNITS : number;
MAX_VERTEX_TEXTURE_IMAGE_UNITS : number;
MAX_TEXTURE_IMAGE_UNITS : number;
MAX_FRAGMENT_UNIFORM_VECTORS : number;
SHADER_TYPE : number;
DELETE_STATUS : number;
LINK_STATUS : number;
VALIDATE_STATUS : number;
ATTACHED_SHADERS : number;
ACTIVE_UNIFORMS : number;
ACTIVE_UNIFORM_MAX_LENGTH : number;
ACTIVE_ATTRIBUTES : number;
ACTIVE_ATTRIBUTE_MAX_LENGTH : number;
SHADING_LANGUAGE_VERSION : number;
CURRENT_PROGRAM : number;
NEVER : number;
LESS : number;
EQUAL : number;
LEQUAL : number;
GREATER : number;
NOTEQUAL : number;
GEQUAL : number;
ALWAYS : number;
KEEP : number;
REPLACE : number;
INCR : number;
DECR : number;
INVERT : number;
INCR_WRAP : number;
DECR_WRAP : number;
VENDOR : number;
RENDERER : number;
VERSION : number;
NEAREST : number;
LINEAR : number;
NEAREST_MIPMAP_NEAREST : number;
LINEAR_MIPMAP_NEAREST : number;
NEAREST_MIPMAP_LINEAR : number;
LINEAR_MIPMAP_LINEAR : number;
TEXTURE_MAG_FILTER : number;
TEXTURE_MIN_FILTER : number;
TEXTURE_WRAP_S : number;
TEXTURE_WRAP_T : number;
TEXTURE : number;
TEXTURE_CUBE_MAP : number;
TEXTURE_BINDING_CUBE_MAP : number;
TEXTURE_CUBE_MAP_POSITIVE_X : number;
TEXTURE_CUBE_MAP_NEGATIVE_X : number;
TEXTURE_CUBE_MAP_POSITIVE_Y : number;
TEXTURE_CUBE_MAP_NEGATIVE_Y : number;
TEXTURE_CUBE_MAP_POSITIVE_Z : number;
TEXTURE_CUBE_MAP_NEGATIVE_Z : number;
MAX_CUBE_MAP_TEXTURE_SIZE : number;
TEXTURE0 : number;
TEXTURE1 : number;
TEXTURE2 : number;
TEXTURE3 : number;
TEXTURE4 : number;
TEXTURE5 : number;
TEXTURE6 : number;
TEXTURE7 : number;
TEXTURE8 : number;
TEXTURE9 : number;
TEXTURE10 : number;
TEXTURE11 : number;
TEXTURE12 : number;
TEXTURE13 : number;
TEXTURE14 : number;
TEXTURE15 : number;
TEXTURE16 : number;
TEXTURE17 : number;
TEXTURE18 : number;
TEXTURE19 : number;
TEXTURE20 : number;
TEXTURE21 : number;
TEXTURE22 : number;
TEXTURE23 : number;
TEXTURE24 : number;
TEXTURE25 : number;
TEXTURE26 : number;
TEXTURE27 : number;
TEXTURE28 : number;
TEXTURE29 : number;
TEXTURE30 : number;
TEXTURE31 : number;
ACTIVE_TEXTURE : number;
REPEAT : number;
CLAMP_TO_EDGE : number;
MIRRORED_REPEAT : number;
FLOAT_VEC2 : number;
FLOAT_VEC3 : number;
FLOAT_VEC4 : number;
INT_VEC2 : number;
INT_VEC3 : number;
INT_VEC4 : number;
BOOL : number;
BOOL_VEC2 : number;
BOOL_VEC3 : number;
BOOL_VEC4 : number;
FLOAT_MAT2 : number;
FLOAT_MAT3 : number;
FLOAT_MAT4 : number;
SAMPLER_2D : number;
SAMPLER_CUBE : number;
VERTEX_ATTRIB_ARRAY_ENABLED : number;
VERTEX_ATTRIB_ARRAY_SIZE : number;
VERTEX_ATTRIB_ARRAY_STRIDE : number;
VERTEX_ATTRIB_ARRAY_TYPE : number;
VERTEX_ATTRIB_ARRAY_NORMALIZED : number;
VERTEX_ATTRIB_ARRAY_POINTER : number;
VERTEX_ATTRIB_ARRAY_BUFFER_BINDING : number;
COMPILE_STATUS : number;
INFO_LOG_LENGTH : number;
SHADER_SOURCE_LENGTH : number;
LOW_FLOAT : number;
MEDIUM_FLOAT : number;
HIGH_FLOAT : number;
LOW_INT : number;
MEDIUM_INT : number;
HIGH_INT : number;
FRAMEBUFFER : number;
RENDERBUFFER : number;
RGBA4 : number;
RGB5_A1 : number;
RGB565 : number;
DEPTH_COMPONENT16 : number;
STENCIL_INDEX : number;
STENCIL_INDEX8 : number;
DEPTH_STENCIL : number;
RENDERBUFFER_WIDTH : number;
RENDERBUFFER_HEIGHT : number;
RENDERBUFFER_INTERNAL_FORMAT : number;
RENDERBUFFER_RED_SIZE : number;
RENDERBUFFER_GREEN_SIZE : number;
RENDERBUFFER_BLUE_SIZE : number;
RENDERBUFFER_ALPHA_SIZE : number;
RENDERBUFFER_DEPTH_SIZE : number;
RENDERBUFFER_STENCIL_SIZE : number;
FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE : number;
FRAMEBUFFER_ATTACHMENT_OBJECT_NAME : number;
FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL : number;
FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE : number;
COLOR_ATTACHMENT0 : number;
DEPTH_ATTACHMENT : number;
STENCIL_ATTACHMENT : number;
DEPTH_STENCIL_ATTACHMENT : number;
NONE : number;
FRAMEBUFFER_COMPLETE : number;
FRAMEBUFFER_INCOMPLETE_ATTACHMENT : number;
FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : number;
FRAMEBUFFER_INCOMPLETE_DIMENSIONS : number;
FRAMEBUFFER_UNSUPPORTED : number;
FRAMEBUFFER_BINDING : number;
RENDERBUFFER_BINDING : number;
MAX_RENDERBUFFER_SIZE : number;
INVALID_FRAMEBUFFER_OPERATION : number;
UNPACK_FLIP_Y_WEBGL : number;
UNPACK_PREMULTIPLY_ALPHA_WEBGL : number;
CONTEXT_LOST_WEBGL : number;
UNPACK_COLORSPACE_CONVERSION_WEBGL : number;
BROWSER_DEFAULT_WEBGL : number;
canvas : HTMLCanvasElement;
getContextAttributes() : WebGLContextAttributes;
isContextLost() : boolean;
getSupportedExtensions() : string[];
getExtension(name : string) : any;
activeTexture(texture : number) : void;
attachShader(program : WebGLProgram, shader : WebGLShader) : void;
bindAttribLocation(program : WebGLProgram, index : number, name : string) : void;
bindBuffer(target : number, buffer : WebGLBuffer) : void;
bindFramebuffer(target : number, framebuffer : WebGLFramebuffer) : void;
bindRenderbuffer(target : number, renderbuffer : WebGLRenderbuffer) : void;
bindTexture(target : number, texture : WebGLTexture) : void;
blendColor(red : number, green : number, blue : number, alpha : number) : void;
blendEquation(mode : number) : void;
blendEquationSeparate(modeRGB : number, modeAlpha : number) : void;
blendFunc(sfactor : number, dfactor : number) : void;
blendFuncSeparate(srcRGB : number, dstRGB : number, srcAlpha : number, dstAlpha : number) : void;
bufferData(target : number, size : number, usage : number) : void;
bufferData(target : number, data : ArrayBufferView, usage : number) : void;
bufferData(target : number, data : ArrayBuffer, usage : number) : void;
bufferSubData(target : number, offset : number, data : ArrayBufferView) : void;
bufferSubData(target : number, offset : number, data : ArrayBuffer) : void;
checkFramebufferStatus(target : number) : number;
clear(mask : number) : void;
clearColor(red : number, green : number, blue : number, alpha : number) : void;
clearDepth(depth : number) : void;
clearStencil(s : number) : void;
colorMask(red : boolean, green : boolean, blue : boolean, alpha : boolean) : void;
compileShader(shader : WebGLShader) : void;
copyTexImage2D(target : number, level : number, internalformat : number, x : number, y : number, width : number, height : number, border : number) : void;
copyTexSubImage2D(target : number, level : number, xoffset : number, yoffset : number, x : number, y : number, width : number, height : number) : void;
createBuffer() : WebGLBuffer;
createFramebuffer() : WebGLFramebuffer;
createProgram() : WebGLProgram;
createRenderbuffer() : WebGLRenderbuffer;
createShader(type : number) : WebGLShader;
createTexture() : WebGLTexture;
cullFace(mode : number) : void;
deleteBuffer(buffer : WebGLBuffer) : void;
deleteFramebuffer(framebuffer : WebGLFramebuffer) : void;
deleteProgram(program : WebGLProgram) : void;
deleteRenderbuffer(renderbuffer : WebGLRenderbuffer) : void;
deleteShader(shader : WebGLShader) : void;
deleteTexture(texture : WebGLTexture) : void;
depthFunc(func : number) : void;
depthMask(flag : boolean) : void;
depthRange(zNear : number, zFar : number) : void;
detachShader(program : WebGLProgram, shader : WebGLShader) : void;
disable(cap : number) : void;
disableVertexAttribArray(index : number) : void;
drawArrays(mode : number, first : number, count : number) : void;
drawElements(mode : number, count : number, type : number, offset : number) : void;
enable(cap : number) : void;
enableVertexAttribArray(index : number) : void;
finish() : void;
flush() : void;
framebufferRenderbuffer(target : number, attachment : number, renderbuffertarget : number, renderbuffer : WebGLRenderbuffer) : void;
framebufferTexture2D(target : number, attachment : number, textarget : number, texture : WebGLTexture, level : number) : void;
frontFace(mode : number) : void;
generateMipmap(target : number) : void;
getActiveAttrib(program : WebGLProgram, index : number) : WebGLActiveInfo;
getActiveUniform(program : WebGLProgram, index : number) : WebGLActiveInfo;
getAttachedShaders(program : WebGLProgram) : WebGLShader[];
getAttribLocation(program : WebGLProgram, name : string) : number;
getParameter(pname : number) : any;
getBufferParameter(target : number, pname : number) : any;
getError() : number;
getFramebufferAttachmentParameter(target : number, attachment : number, pname : number) : any;
getProgramParameter(program : WebGLProgram, pname : number) : any;
getProgramInfoLog(program : WebGLProgram) : string;
getRenderbufferParameter(target : number, pname : number) : any;
getShaderParameter(shader : WebGLShader, pname : number) : any;
getShaderInfoLog(shader : WebGLShader) : string;
getShaderSource(shader : WebGLShader) : string;
getTexParameter(target : number, pname : number) : any;
getUniform(program : WebGLProgram, location : WebGLUniformLocation) : any;
getUniformLocation(program : WebGLProgram, name : string) : WebGLUniformLocation;
getVertexAttrib(index : number, pname : number) : any;
getVertexAttribOffset(index : number, pname : number) : number;
hint(target : number, mode : number) : void;
isBuffer(buffer : WebGLBuffer) : boolean;
isEnabled(cap : number) : boolean;
isFramebuffer(framebuffer : WebGLFramebuffer) : boolean;
isProgram(program : WebGLProgram) : boolean;
isRenderbuffer(renderbuffer : WebGLRenderbuffer) : boolean;
isShader(shader : WebGLShader) : boolean;
isTexture(texture : WebGLTexture) : boolean;
lineWidth(width : number) : void;
linkProgram(program : WebGLProgram) : void;
pixelStorei(pname : number, param : number) : void;
polygonOffset(factor : number, units : number) : void;
readPixels(x : number, y : number, width : number, height : number, format : number, type : number, pixels : ArrayBufferView) : void;
renderbufferStorage(target : number, internalformat : number, width : number, height : number) : void;
sampleCoverage(value : number, invert : boolean) : void;
scissor(x : number, y : number, width : number, height : number) : void;
shaderSource(shader : WebGLShader, source : string) : void;
stencilFunc(func : number, ref : number, mask : number) : void;
stencilFuncSeparate(face : number, func : number, ref : number, mask : number) : void;
stencilMask(mask : number) : void;
stencilMaskSeparate(face : number, mask : number) : void;
stencilOp(fail : number, zfail : number, zpass : number) : void;
stencilOpSeparate(face : number, fail : number, zfail : number, zpass : number) : void;
texImage2D(target : number, level : number, internalformat : number, width : number, height : number, border : number, format : number, type : number, pixels : ArrayBufferView) : void;
texImage2D(target : number, level : number, internalformat : number, format : number, type : number, pixels : ImageData) : void;
texImage2D(target : number, level : number, internalformat : number, format : number, type : number, image : HTMLImageElement) : void;
texImage2D(target : number, level : number, internalformat : number, format : number, type : number, canvas : HTMLCanvasElement) : void;
texImage2D(target : number, level : number, internalformat : number, format : number, type : number, video : HTMLVideoElement) : void;
texParameterf(target : number, pname : number, param : number) : void;
texParameteri(target : number, pname : number, param : number) : void;
texSubImage2D(target : number, level : number, xoffset : number, yoffset : number, width : number, height : number, format : number, type : number, pixels : ArrayBufferView) : void;
texSubImage2D(target : number, level : number, xoffset : number, yoffset : number, format : number, type : number, pixels : ImageData) : void;
texSubImage2D(target : number, level : number, xoffset : number, yoffset : number, format : number, type : number, image : HTMLImageElement) : void;
texSubImage2D(target : number, level : number, xoffset : number, yoffset : number, format : number, type : number, canvas : HTMLCanvasElement) : void;
texSubImage2D(target : number, level : number, xoffset : number, yoffset : number, format : number, type : number, video : HTMLVideoElement) : void;
uniform1f(location : WebGLUniformLocation, x : number) : void;
uniform1fv(location : WebGLUniformLocation, v : Float32Array) : void;
uniform1fv(location : WebGLUniformLocation, v : number[]) : void;
uniform1i(location : WebGLUniformLocation, x : number) : void;
uniform1iv(location : WebGLUniformLocation, v : Int32Array) : void;
uniform1iv(location : WebGLUniformLocation, v : number[]) : void;
uniform2f(location : WebGLUniformLocation, x : number, y : number) : void;
uniform2fv(location : WebGLUniformLocation, v : Float32Array) : void;
uniform2fv(location : WebGLUniformLocation, v : number[]) : void;
uniform2i(location : WebGLUniformLocation, x : number, y : number) : void;
uniform2iv(location : WebGLUniformLocation, v : Int32Array) : void;
uniform2iv(location : WebGLUniformLocation, v : number[]) : void;
uniform3f(location : WebGLUniformLocation, x : number, y : number, z : number) : void;
uniform3fv(location : WebGLUniformLocation, v : Float32Array) : void;
uniform3fv(location : WebGLUniformLocation, v : number[]) : void;
uniform3i(location : WebGLUniformLocation, x : number, y : number, z : number) : void;
uniform3iv(location : WebGLUniformLocation, v : Int32Array) : void;
uniform3iv(location : WebGLUniformLocation, v : number[]) : void;
uniform4f(location : WebGLUniformLocation, x : number, y : number, z : number, w : number) : void;
uniform4fv(location : WebGLUniformLocation, v : Float32Array) : void;
uniform4fv(location : WebGLUniformLocation, v : number[]) : void;
uniform4i(location : WebGLUniformLocation, x : number, y : number, z : number, w : number) : void;
uniform4iv(location : WebGLUniformLocation, v : Int32Array) : void;
uniform4iv(location : WebGLUniformLocation, v : number[]) : void;
uniformMatrix2fv(location : WebGLUniformLocation, transpose : boolean, value : Float32Array) : void;
uniformMatrix2fv(location : WebGLUniformLocation, transpose : boolean, value : number[]) : void;
uniformMatrix3fv(location : WebGLUniformLocation, transpose : boolean, value : Float32Array) : void;
uniformMatrix3fv(location : WebGLUniformLocation, transpose : boolean, value : number[]) : void;
uniformMatrix4fv(location : WebGLUniformLocation, transpose : boolean, value : Float32Array) : void;
uniformMatrix4fv(location : WebGLUniformLocation, transpose : boolean, value : number[]) : void;
useProgram(program : WebGLProgram) : void;
validateProgram(program : WebGLProgram) : void;
vertexAttrib1f(indx : number, x : number) : void;
vertexAttrib1fv(indx : number, values : Float32Array) : void;
vertexAttrib1fv(indx : number, values : number[]) : void;
vertexAttrib2f(indx : number, x : number, y : number) : void;
vertexAttrib2fv(indx : number, values : Float32Array) : void;
vertexAttrib2fv(indx : number, values : number[]) : void;
vertexAttrib3f(indx : number, x : number, y : number, z : number) : void;
vertexAttrib3fv(indx : number, values : Float32Array) : void;
vertexAttrib3fv(indx : number, values : number[]) : void;
vertexAttrib4f(indx : number, x : number, y : number, z : number, w : number) : void;
vertexAttrib4fv(indx : number, values : Float32Array) : void;
vertexAttrib4fv(indx : number, values : number[]) : void;
vertexAttribPointer(indx : number, size : number, type : number, normalized : boolean, stride : number, offset : number) : void;
viewport(x : number, y : number, width : number, height : number) : void;
}
interface WebGLContextEvent extends Event {
statusMessage : string;
initWebGLContextEvent(typeArg : string, canBubbleArg : boolean, cancelableArg : boolean, statusMessageArg : string) : void;
}
//Extend the window object with cross Browser callbacks so TS will not complain
//Also add the (non-standard) Canvas Element parameter for performance improvement
interface WindowAnimationTiming {
requestAnimationFrame(callback: FrameRequestCallback, canvas ?: HTMLCanvasElement): number;
//msRequestAnimationFrame(callback: FrameRequestCallback, canvas ?: HTMLCanvasElement): number;
mozRequestAnimationFrame(callback: FrameRequestCallback, canvas ?: HTMLCanvasElement): number;
webkitRequestAnimationFrame(callback: FrameRequestCallback, canvas ?: HTMLCanvasElement): number;
oRequestAnimationFrame(callback: FrameRequestCallback, canvas ?: HTMLCanvasElement): number;
cancelRequestAnimationFrame(handle: number): void;
//msCancelRequestAnimationFrame(handle: number): void;
mozCancelRequestAnimationFrame(handle: number): void;
webkitCancelRequestAnimationFrame(handle: number): void;
oCancelRequestAnimationFrame(handle: number): void;
}
//To make WebGL work
interface HTMLCanvasElement {
getContext(contextId: string, params : {}): WebGLRenderingContext;
}