From 42acb814e4c5d6fb8da657adbd5d772a3f8d424d Mon Sep 17 00:00:00 2001 From: lang Date: Sun, 13 Apr 2014 21:10:30 +0800 Subject: [PATCH] typescript bug fix, add typescript example --- build/update.js | 26 +- src/DynamicGeometry.js | 2 +- src/FrameBuffer.js | 5 +- src/Geometry.js | 2 +- tests/cubes.html | 10 +- tests/typescript/cubes.html | 11 + tests/typescript/js/cubes.js | 40 ++ tests/typescript/js/cubes.ts | 40 ++ typescript/DynamicGeometry.d.ts | 1 - typescript/Geometry.d.ts | 1 - typescript/Material.d.ts | 18 +- typescript/Mesh.d.ts | 1 - typescript/Node.d.ts | 2 +- typescript/Renderer.d.ts | 29 +- typescript/Scene.d.ts | 2 - typescript/Shader.d.ts | 1 - typescript/Skeleton.d.ts | 2 +- typescript/StaticGeometry.d.ts | 1 - typescript/Texture.d.ts | 1 - typescript/animation/Animation.d.ts | 22 +- typescript/animation/Blend1DClip.d.ts | 6 +- typescript/animation/Blend2DClip.d.ts | 10 +- typescript/animation/Clip.d.ts | 12 +- typescript/async/Task.d.ts | 12 +- typescript/camera/Orthographic.d.ts | 2 +- typescript/camera/Perspective.d.ts | 2 +- typescript/compositor/Node.d.ts | 2 +- typescript/compositor/texturePool.d.ts | 1 - typescript/core/Base.d.ts | 12 +- typescript/core/container.d.ts | 6 +- typescript/core/glinfo.d.ts | 1 - typescript/core/mixin/notifier.d.ts | 30 +- typescript/core/request.d.ts | 1 - typescript/core/util.d.ts | 3 +- typescript/loader/FX.d.ts | 9 +- typescript/loader/GLTF.d.ts | 9 +- typescript/loader/ThreeModel.d.ts | 7 +- typescript/plugin/Skybox.d.ts | 1 - typescript/plugin/Skydome.d.ts | 1 - typescript/qtek.d.ts | 78 ++++ typescript/texture/Texture2D.d.ts | 8 + typescript/texture/TextureCube.d.ts | 10 +- typescript/webgl.d.ts | 535 ------------------------- 43 files changed, 334 insertions(+), 641 deletions(-) create mode 100644 tests/typescript/cubes.html create mode 100644 tests/typescript/js/cubes.js create mode 100644 tests/typescript/js/cubes.ts create mode 100644 typescript/qtek.d.ts delete mode 100644 typescript/webgl.d.ts diff --git a/build/update.js b/build/update.js index 231bb4bc..c1ff3e5a 100644 --- a/build/update.js +++ b/build/update.js @@ -4,7 +4,12 @@ var fs = require('fs'); var ROOT = "../src/"; var OUTPUT_PORTAL = "qtek.js"; -var template = fs.readFileSync("qtek_template.js", "utf-8") +var TS_ROOT = "../typescript/"; +var TS_PORTAL = "qtek.d.ts"; + +var template = fs.readFileSync("qtek_template.js", "utf-8"); + +var tsReferenceList = []; glob("**/*.js", { cwd : ROOT @@ -27,13 +32,26 @@ glob("**/*.js", { return memo[propName]; }, namespace); - object[baseName] = "__require('qtek/"+filePathWithOutExt+"')__"; - }) + object[baseName] = "__require('qtek/" + filePathWithOutExt + "')__"; + + // Get typescript reference list + var tsPath = TS_ROOT + filePathWithOutExt + ".d.ts"; + + if (fs.existsSync(tsPath)) { + tsReferenceList.push(filePathWithOutExt); + } + }); var jsString = JSON.stringify( namespace, null, '\t' ); jsString = jsString.replace(/\"\__require\((\S*?)\)__\"/g, 'require($1)') var output = template.replace(/\{\{\$exportsObject\}\}/, jsString); - fs.writeFileSync( ROOT+OUTPUT_PORTAL, output, "utf-8"); + fs.writeFileSync(ROOT + OUTPUT_PORTAL, output, "utf-8"); + + // Write to ts reference file + var referenceCode = tsReferenceList.map(function(path) { + return '///'; + }).join('\n'); + fs.writeFileSync(TS_ROOT + TS_PORTAL, referenceCode, "utf-8"); }); \ No newline at end of file diff --git a/src/DynamicGeometry.js b/src/DynamicGeometry.js index d666a8ea..3495a324 100644 --- a/src/DynamicGeometry.js +++ b/src/DynamicGeometry.js @@ -37,7 +37,7 @@ define(function(require) { joint : new Geometry.Attribute('joint', 'float', 4, 'JOINT', true), // For wireframe display // http://codeflow.org/entries/2012/aug/02/easy-wireframe-display-with-barycentric-coordinates/ - barycentric : new Geometry.Attribute('barycentric', 'float', 3, null, true), + barycentric : new Geometry.Attribute('barycentric', 'float', 3, null, true) }, hint : glenum.DYNAMIC_DRAW, diff --git a/src/FrameBuffer.js b/src/FrameBuffer.js index bc1d6339..6c1d4e14 100644 --- a/src/FrameBuffer.js +++ b/src/FrameBuffer.js @@ -105,7 +105,6 @@ define(function(require) { if (! texture.width) { throw new Error("The texture attached to color buffer is not a valid."); - return; } _gl.bindFramebuffer(_gl.FRAMEBUFFER, this.getFrameBuffer(_gl)); @@ -118,7 +117,7 @@ define(function(require) { // http://blog.tojicode.com/2012/07/using-webgldepthtexture.html attachment = attachment || _gl.COLOR_ATTACHMENT0; target = target || _gl.TEXTURE_2D; - mipmapLevel = mipmapLevel || 0 + mipmapLevel = mipmapLevel || 0; if (attachment === _gl.DEPTH_ATTACHMENT) { @@ -163,4 +162,4 @@ define(function(require) { FrameBuffer.DEPTH_STENCIL_ATTACHMENT = glenum.DEPTH_STENCIL_ATTACHMENT; return FrameBuffer; -}) \ No newline at end of file +}); \ No newline at end of file diff --git a/src/Geometry.js b/src/Geometry.js index e97ef6bb..8438e6ac 100644 --- a/src/Geometry.js +++ b/src/Geometry.js @@ -90,7 +90,7 @@ define(function(require) { useFace : true, //Max Value of Uint16, i.e. 0xffff - chunkSize : 65535, + chunkSize : 65535 }, function() { // Use cache this.cache = new Cache(); diff --git a/tests/cubes.html b/tests/cubes.html index bba646d6..8055ab7d 100644 --- a/tests/cubes.html +++ b/tests/cubes.html @@ -9,11 +9,11 @@
+ + + \ No newline at end of file diff --git a/tests/typescript/js/cubes.js b/tests/typescript/js/cubes.js new file mode 100644 index 00000000..25a437ae --- /dev/null +++ b/tests/typescript/js/cubes.js @@ -0,0 +1,40 @@ +/// +var renderer = new qtek.Renderer(); +var scene = new qtek.Scene(); +var camera = new qtek.camera.Perspective(); +var animation = new qtek.animation.Animation(); +animation.start(); + +renderer.resize(window.innerWidth, window.innerHeight); +document.body.appendChild(renderer.canvas); + +camera.aspect = renderer.width / renderer.height; + +var rootNode = new qtek.Node(); +var cubeGeo = new qtek.geometry.Cube(); +var cubeMat = new qtek.Material({ + shader: qtek.shader.library.get('buildin.basic', "diffuseMap") +}); +var diffuseTexture = new qtek.texture.Texture2D(); +diffuseTexture.load('../assets/textures/crate.gif'); +cubeMat.setUniform("diffuseMap", diffuseTexture); + +for (var i = 0; i < 10; i++) { + for (var j = 0; j < 10; j++) { + for (var k = 0; k < 10; k++) { + var mesh = new qtek.Mesh({ + material: cubeMat, + geometry: cubeGeo + }); + mesh.scale.set(0.5, 0.5, 0.5); + mesh.position.set(10 - Math.random() * 20, 10 - Math.random() * 20, 10 - Math.random() * 20); + rootNode.add(mesh); + } + } +} +scene.add(rootNode); + +animation.on('frame', function (deltaTime) { + renderer.render(scene, camera); + rootNode.rotation.rotateY(0.01); +}); diff --git a/tests/typescript/js/cubes.ts b/tests/typescript/js/cubes.ts new file mode 100644 index 00000000..07a1ad44 --- /dev/null +++ b/tests/typescript/js/cubes.ts @@ -0,0 +1,40 @@ +/// +var renderer: qtek.Renderer = new qtek.Renderer(); +var scene: qtek.Scene = new qtek.Scene(); +var camera: qtek.camera.Perspective = new qtek.camera.Perspective(); +var animation: qtek.animation.Animation = new qtek.animation.Animation(); +animation.start(); + +renderer.resize(window.innerWidth, window.innerHeight); +document.body.appendChild(renderer.canvas); + +camera.aspect = renderer.width / renderer.height; + +var rootNode: qtek.Node = new qtek.Node(); +var cubeGeo: qtek.geometry.Cube = new qtek.geometry.Cube(); +var cubeMat: qtek.Material = new qtek.Material({ + shader: qtek.shader.library.get('buildin.basic', "diffuseMap") +}); +var diffuseTexture: qtek.texture.Texture2D = new qtek.texture.Texture2D(); +diffuseTexture.load('../assets/textures/crate.gif'); +cubeMat.setUniform("diffuseMap", diffuseTexture); + +for(var i:number = 0; i < 10; i++) { + for(var j: number = 0; j < 10; j++) { + for(var k: number = 0; k < 10; k++) { + var mesh: qtek.Mesh = new qtek.Mesh({ + material: cubeMat, + geometry: cubeGeo + }); + mesh.scale.set(0.5, 0.5, 0.5); + mesh.position.set(10-Math.random()*20, 10-Math.random()*20, 10-Math.random() * 20); + rootNode.add(mesh); + } + } +} +scene.add(rootNode); + +animation.on('frame', function(deltaTime) { + renderer.render(scene, camera); + rootNode.rotation.rotateY(0.01); +}); \ No newline at end of file diff --git a/typescript/DynamicGeometry.d.ts b/typescript/DynamicGeometry.d.ts index 9d8b6ad0..b4a3cd14 100644 --- a/typescript/DynamicGeometry.d.ts +++ b/typescript/DynamicGeometry.d.ts @@ -1,6 +1,5 @@ /// /// -/// /// declare module qtek { diff --git a/typescript/Geometry.d.ts b/typescript/Geometry.d.ts index 3eec0596..fdcf63e8 100644 --- a/typescript/Geometry.d.ts +++ b/typescript/Geometry.d.ts @@ -1,7 +1,6 @@ /// /// /// -/// declare module qtek { interface IGeometryAttributeBuffer { diff --git a/typescript/Material.d.ts b/typescript/Material.d.ts index 37af744a..f397978a 100644 --- a/typescript/Material.d.ts +++ b/typescript/Material.d.ts @@ -1,10 +1,20 @@ /// /// -/// declare module qtek { + interface IMaterialOption { + name?: string; + shader?: Shader; + depthTest?: boolean; + depthMask?: boolean; + transparent?: boolean; + blend?: (gl: WebGLRenderingContext) => void; + } + export class Material extends core.Base { - + + constructor(option?: IMaterialOption); + name: string; uniforms: IDictionary; @@ -23,7 +33,7 @@ declare module qtek { setUniform(symbol: string, value: any): void; - setUniforms(object: object): void; + setUniforms(object: Object): void; enableUniform(symbol: string): void; @@ -32,7 +42,7 @@ declare module qtek { isUniformEnabled(symbol: string): void; set(symbol: string, value: any): void; - set(object: object): void; + set(object: Object): void; get(symbol: string): any; diff --git a/typescript/Mesh.d.ts b/typescript/Mesh.d.ts index 66c7072c..1304ba7f 100644 --- a/typescript/Mesh.d.ts +++ b/typescript/Mesh.d.ts @@ -2,7 +2,6 @@ /// /// /// -/// declare module qtek { interface IMeshOption extends INodeOption { diff --git a/typescript/Node.d.ts b/typescript/Node.d.ts index 80320dfb..53f78e33 100644 --- a/typescript/Node.d.ts +++ b/typescript/Node.d.ts @@ -52,7 +52,7 @@ declare module qtek { getDescendantByName(name: string): Node; - traverse(callback: (current: Node, parent: Node) => void, parent?: Node, ctor?: T): void; + traverse(callback: (current: Node, parent: Node) => void, parent?: Node, ctor?: Function): void; setLocalTransform(matrix: math.Matrix4): void; diff --git a/typescript/Renderer.d.ts b/typescript/Renderer.d.ts index dd267df5..05c6b793 100644 --- a/typescript/Renderer.d.ts +++ b/typescript/Renderer.d.ts @@ -8,8 +8,6 @@ /// /// /// -/// - declare module qtek { interface IRendererOption { @@ -107,19 +105,22 @@ declare module qtek { screenToNdc(x: number, y: number, out?: math.Vector2): math.Vector2; // Events - on(name: 'beforerender', handler: (renderer: Renderer, scene: Scene, camera: Camera) => void, context?: any); - on(name: 'beforerender:opaque', handler: (renderer: Renderer, queue: IRenderable[]) => void, context?: any); - on(name: 'beforerender:transparent', handler: (renderer: Renderer, queue: IRenderable[]) => void, context?: any); - on(name: 'afterrender:opaque', handler: (renderer: Renderer, queue: IRenderable[], renderInfo: IRenderInfo) => void, context?: any); - on(name: 'afterrender:transparent', handler: (renderer: Renderer, queue: IRenderable[], renderInfo: IRenderInfo) => void, context?: any); - on(name: 'afterrender', handler: (renderer: Renderer, scene: Scene, camera: Camera, renderInfo: IRenderInfo) => void, context?: any); + on(name: 'beforerender', handler: (renderer?: Renderer, scene?: Scene, camera?: Camera) => void, context?: any): void; + on(name: 'beforerender:opaque', handler: (renderer?: Renderer, queue?: IRenderable[]) => void, context?: any): void; + on(name: 'beforerender:transparent', handler: (renderer?: Renderer, queue?: IRenderable[]) => void, context?: any): void; + on(name: 'afterrender:opaque', handler: (renderer?: Renderer, queue?: IRenderable[], renderInfo?: IRenderInfo) => void, context?: any): void; + on(name: 'afterrender:transparent', handler: (renderer?: Renderer, queue?: IRenderable[], renderInfo?: IRenderInfo) => void, context?: any): void; + on(name: 'afterrender', handler: (renderer?: Renderer, scene?: Scene, camera?: Camera, renderInfo?: IRenderInfo) => void, context?: any): void; + on(name: string, handler: Function, context?: any): void; - before(name: 'render', handler: (renderer: Renderer, scene: Scene, camera: Camera) => void, context?: any); - before(name: 'render:opaque', handler: (renderer: Renderer, queue: IRenderable[]) => void, context?: any); - before(name: 'render:transparent', handler: (renderer: Renderer, queue: IRenderable[]) => void, context?: any); - after(name: 'render:opaque', handler: (renderer: Renderer, queue: IRenderable[], renderInfo: IRenderInfo) => void, context?: any); - after(name: 'render:transparent', handler: (renderer: Renderer, queue: IRenderable[], renderInfo: IRenderInfo) => void, context?: any); - after(name: 'render', handler: (renderer: Renderer, scene: Scene, camera: Camera, renderInfo: IRenderInfo) => void, context?: any); + before(name: 'render', handler: (renderer?: Renderer, scene?: Scene, camera?: Camera) => void, context?: any): void; + before(name: 'render:opaque', handler: (renderer?: Renderer, queue?: IRenderable[]) => void, context?: any): void; + before(name: 'render:transparent', handler: (renderer?: Renderer, queue?: IRenderable[]) => void, context?: any): void; + after(name: 'render:opaque', handler: (renderer?: Renderer, queue?: IRenderable[], renderInfo?: IRenderInfo) => void, context?: any): void; + after(name: 'render:transparent', handler: (renderer?: Renderer, queue?: IRenderable[], renderInfo?: IRenderInfo) => void, context?: any): void; + after(name: 'render', handler: (renderer?: Renderer, scene?: Scene, camera?: Camera, renderInfo?: IRenderInfo) => void, context?: any): void; + before(name: string, handler: Function, context?: any): void; + after(name: string, handler: Function, context?: any): void; static opaqueSortFunc(x: IRenderable, y: IRenderable): boolean; diff --git a/typescript/Scene.d.ts b/typescript/Scene.d.ts index 88273410..fa905057 100644 --- a/typescript/Scene.d.ts +++ b/typescript/Scene.d.ts @@ -1,8 +1,6 @@ /// /// /// -/// - declare module qtek { interface IRenderable { diff --git a/typescript/Shader.d.ts b/typescript/Shader.d.ts index 5f8b0858..f567e62a 100644 --- a/typescript/Shader.d.ts +++ b/typescript/Shader.d.ts @@ -1,7 +1,6 @@ /// /// /// -/// declare module qtek { interface IShaderAttribSemantic { diff --git a/typescript/Skeleton.d.ts b/typescript/Skeleton.d.ts index ac0a85c8..5e68ebd6 100644 --- a/typescript/Skeleton.d.ts +++ b/typescript/Skeleton.d.ts @@ -26,7 +26,7 @@ declare module qtek { getSubSkinMatrices(meshId: number, joints: number[]): Float32Array; - addClip(clip: animation.SkinningClip, mapRule?: object): number; + addClip(clip: animation.SkinningClip, mapRule?: Object): number; removeClip(clip: animation.SkinningClip): void; diff --git a/typescript/StaticGeometry.d.ts b/typescript/StaticGeometry.d.ts index 41fc948d..c5f0abaa 100644 --- a/typescript/StaticGeometry.d.ts +++ b/typescript/StaticGeometry.d.ts @@ -1,5 +1,4 @@ /// -/// /// declare module qtek { diff --git a/typescript/Texture.d.ts b/typescript/Texture.d.ts index c2bec790..42151e04 100644 --- a/typescript/Texture.d.ts +++ b/typescript/Texture.d.ts @@ -1,6 +1,5 @@ /// /// -/// declare module qtek { interface ITextureOption { diff --git a/typescript/animation/Animation.d.ts b/typescript/animation/Animation.d.ts index c2c7e0b4..4bc3013c 100644 --- a/typescript/animation/Animation.d.ts +++ b/typescript/animation/Animation.d.ts @@ -12,7 +12,7 @@ declare module qtek { stage?: IStage; } - interface IAnimationOption { + interface IAnimationAnimateOption { loop?: boolean; getter?: (key: string) => any; setter?: (key: string, value: any) => any; @@ -20,24 +20,24 @@ declare module qtek { interface IAnimationDeferred { - when(time: number, props: Object) : IAnimationDeferred; + when(time: number, props: Object) : IAnimationDeferred; - during(callback: (target: T, percent: number)=> any): IAnimationDeferred; + during(callback: (target: T, percent: number)=> any): IAnimationDeferred; - start(): IAnimationDeferred; - start(easing: string): IAnimationDeferred; - start(easing: (percent: number) => number): IAnimationDeferred; + start(): IAnimationDeferred; + start(easing: string): IAnimationDeferred; + start(easing: (percent: number) => number): IAnimationDeferred; - stop(): IAnimationDeferred; + stop(): IAnimationDeferred; - delay(time: string): IAnimationDeferred; + delay(time: string): IAnimationDeferred; - done(callback: Function): IAnimationDeferred; + done(callback: Function): IAnimationDeferred; } export class Animation extends qtek.core.Base { - constructor(stage?: IStage); + constructor(option?: IAnimationOption); stage: IStage; @@ -53,7 +53,7 @@ declare module qtek { stop(): void; - animate(target: T, options: IAnimationOption): IAnimationDeferred; + animate(target: T, options: IAnimationAnimateOption): IAnimationDeferred; } } } \ No newline at end of file diff --git a/typescript/animation/Blend1DClip.d.ts b/typescript/animation/Blend1DClip.d.ts index e243a850..f0b153ee 100644 --- a/typescript/animation/Blend1DClip.d.ts +++ b/typescript/animation/Blend1DClip.d.ts @@ -7,7 +7,7 @@ declare module qtek { output?: T; } - interface IClipInputEntry { + interface IBlend1DClipInputEntry { position: number; clip: T; offset: number; @@ -15,9 +15,11 @@ declare module qtek { export class Blend1DClip extends Clip { + constructor(option?: IBlend1DClipOption); + output: T; - inputs: IClipInputEntry[]; + inputs: IBlend1DClipInputEntry[]; position: number; diff --git a/typescript/animation/Blend2DClip.d.ts b/typescript/animation/Blend2DClip.d.ts index e0db2385..f58ff106 100644 --- a/typescript/animation/Blend2DClip.d.ts +++ b/typescript/animation/Blend2DClip.d.ts @@ -8,21 +8,23 @@ declare module qtek { output?: T; } - interface IClipInputEntry { - position: qtek.math.Vector2; + interface IBlend2DClipInputEntry { + position: math.Vector2; clip: T; offset: number; } export class Blend2DClip extends Clip { + constructor(option?: IBlend2DClipOption); + output: T; - inputs: IClipInputEntry[]; + inputs: IBlend2DClipInputEntry[]; position: number; - addInput(position: qtek.math.Vector2, inputClip: T, offset: number); + addInput(position: math.Vector2, inputClip: T, offset: number); } } } \ No newline at end of file diff --git a/typescript/animation/Clip.d.ts b/typescript/animation/Clip.d.ts index 0397ef58..bca28265 100644 --- a/typescript/animation/Clip.d.ts +++ b/typescript/animation/Clip.d.ts @@ -2,8 +2,8 @@ declare module qtek { export module animation { - interface IClipOption { - target?: T; + interface IClipOption { + target?: any; life?: number; delay?: number; gap?: number; @@ -15,12 +15,14 @@ declare module qtek { string; (percent: number): number; } - onframe?: (target: T, schedule: number) => void; + onframe?: (target: any, schedule: number) => void; onrestart?: () => void; ondestroy?: () => void; } - export class Clip { + export class Clip { + + constructor(option?: IClipOption); gap: number; @@ -46,7 +48,7 @@ declare module qtek { export class BlendClip extends Clip { - blend1D(c1: Clip , c2: Clip, w: number): void; + blend1D(c1: Clip, c2: Clip, w: number): void; blend2D(c1: Clip, c2: Clip, c3: Clip, f: number, g: number): void; diff --git a/typescript/async/Task.d.ts b/typescript/async/Task.d.ts index 5ea80799..f5820d0d 100644 --- a/typescript/async/Task.d.ts +++ b/typescript/async/Task.d.ts @@ -9,7 +9,7 @@ declare module qtek { responseType?: string; } - export class Task extends core.mixin.notifier { + export class Task implements core.mixin.notifier { resolve(data?: any): void; @@ -21,6 +21,16 @@ declare module qtek { isSettled(): boolean; + trigger(name: string, ...args): void; + + on(name: string, action: Function, context?:any): void; + + once(name: string, action: Function, context?:any): void; + + off(name: string, action?: Function): void; + + has(name: string, action: Function): void; + static makeTask(): Task; static makeRequestTask(url: string): Task; diff --git a/typescript/camera/Orthographic.d.ts b/typescript/camera/Orthographic.d.ts index 1f47bc27..d4c6bac7 100644 --- a/typescript/camera/Orthographic.d.ts +++ b/typescript/camera/Orthographic.d.ts @@ -12,7 +12,7 @@ declare module qtek { bottom?: number; } - export class Orthographic { + export class Orthographic extends Camera { constructor(option?: IOrthographicCameraOption); diff --git a/typescript/camera/Perspective.d.ts b/typescript/camera/Perspective.d.ts index adbe768a..902570b4 100644 --- a/typescript/camera/Perspective.d.ts +++ b/typescript/camera/Perspective.d.ts @@ -10,7 +10,7 @@ declare module qtek { far?: number; } - export class Perspective { + export class Perspective extends Camera { constructor(option?: IPerspectiveCameraOption); diff --git a/typescript/compositor/Node.d.ts b/typescript/compositor/Node.d.ts index 697ca7ac..6dc09134 100644 --- a/typescript/compositor/Node.d.ts +++ b/typescript/compositor/Node.d.ts @@ -55,7 +55,7 @@ declare module qtek { render(renderer: Renderer): void; - updateParameter(outputName: string, renderer: Renderer): object; + updateParameter(outputName: string, renderer: Renderer): Object; setParameter(name: string, value: any): void; diff --git a/typescript/compositor/texturePool.d.ts b/typescript/compositor/texturePool.d.ts index 3dd6d652..59beee75 100644 --- a/typescript/compositor/texturePool.d.ts +++ b/typescript/compositor/texturePool.d.ts @@ -1,5 +1,4 @@ /// -/// declare module qtek { export module compositor { diff --git a/typescript/core/Base.d.ts b/typescript/core/Base.d.ts index 008d3970..b9a18521 100644 --- a/typescript/core/Base.d.ts +++ b/typescript/core/Base.d.ts @@ -4,8 +4,18 @@ declare module qtek { export module core { - export class Base extends mixin.notifier { + export class Base implements mixin.notifier { __GUID__ : number + + trigger(name: string, ...args): void; + + on(name: string, action: Function, context?:any): void; + + once(name: string, action: Function, context?:any): void; + + off(name: string, action?: Function): void; + + has(name: string, action: Function): void; } } } \ No newline at end of file diff --git a/typescript/core/container.d.ts b/typescript/core/container.d.ts index f4b9d658..2937646f 100644 --- a/typescript/core/container.d.ts +++ b/typescript/core/container.d.ts @@ -1,12 +1,12 @@ declare module qtek { interface IList { - [index: number]: T, - length: number + [index: number]: T; + length: number; } interface IDictionary { - [index: string]: T + [index: string]: T; } } \ No newline at end of file diff --git a/typescript/core/glinfo.d.ts b/typescript/core/glinfo.d.ts index 081a208e..35471bab 100644 --- a/typescript/core/glinfo.d.ts +++ b/typescript/core/glinfo.d.ts @@ -1,4 +1,3 @@ -/// declare module qtek { export module core { diff --git a/typescript/core/mixin/notifier.d.ts b/typescript/core/mixin/notifier.d.ts index e8afde01..e19eb980 100644 --- a/typescript/core/mixin/notifier.d.ts +++ b/typescript/core/mixin/notifier.d.ts @@ -1,33 +1,33 @@ declare module qtek{ + interface INotifierEventHandler { + action: Function; + context: any; + } + export module core { export module mixin { - interface IHandler { - action: Function; - context: any; - } - - export class notifier { + export interface notifier { - trigger(name: string, ...args): void; + trigger?(name: string, ...args): void; - on(name: string, action: Function, context?:any): IHandler; + on?(name: string, action: Function, context?:any): void; - once(name: string, action: Function, context?:any): IHandler; + once?(name: string, action: Function, context?:any): void; - before(name: string, action: Function, context?:any): IHandler; + before?(name: string, action: Function, context?:any): void; - after(name: string, action: Function, context?:any): IHandler; + after?(name: string, action: Function, context?:any): void; - success(action: Function, context?:any): IHandler; + success?(action: Function, context?:any): void; - error(action: Function, context?:any): IHandler; + error?(action: Function, context?:any): void; - off(name: string, action?: Function): void; + off?(name: string, action?: Function): void; - has(name: string, action: Function): void; + has?(name: string, action: Function): void; } } } diff --git a/typescript/core/request.d.ts b/typescript/core/request.d.ts index dd20b97b..fe61d16e 100644 --- a/typescript/core/request.d.ts +++ b/typescript/core/request.d.ts @@ -1,4 +1,3 @@ -/// declare module qtek { export module core { diff --git a/typescript/core/util.d.ts b/typescript/core/util.d.ts index e2e89ab3..a0e3c08e 100644 --- a/typescript/core/util.d.ts +++ b/typescript/core/util.d.ts @@ -1,4 +1,3 @@ -/// /// declare module qtek { @@ -11,7 +10,7 @@ declare module qtek { } interface DictionaryIterator { - (item: T, key: string, obj: IDictionary): TResult; + (item: T, key: string, obj: IDictionary): TResult; } export function genGUID(): number; diff --git a/typescript/loader/FX.d.ts b/typescript/loader/FX.d.ts index 4be5695f..2132ac90 100644 --- a/typescript/loader/FX.d.ts +++ b/typescript/loader/FX.d.ts @@ -20,12 +20,13 @@ declare module qtek { bufferRootPath: string; - load(string: url): void; + load(url: string): void; - parse(json: object): compositor.Compositor; + parse(json: Object): compositor.Compositor; - on(name: "success", handler: (compositor: compositor.Compositor) => void, context?: any); - success(handler: (compositor: compositor.Compositor) => void, context?: any); + once(name: "success", handler: (compositor: compositor.Compositor) => void, context?: any): void; + once(name: string, handler: Function, context?: any): void; + success(handler: (compositor: compositor.Compositor) => void, context?: any): void; } } } \ No newline at end of file diff --git a/typescript/loader/GLTF.d.ts b/typescript/loader/GLTF.d.ts index 0234370e..bae4ec4a 100644 --- a/typescript/loader/GLTF.d.ts +++ b/typescript/loader/GLTF.d.ts @@ -30,7 +30,7 @@ declare module qtek { export class GLTF extends core.Base { - constructor(option?: IGLTFLoaderOption): void; + constructor(option?: IGLTFLoaderOption); rootPath: string; textureRootPath: string; @@ -40,10 +40,11 @@ declare module qtek { load(url: string): void; - parse(json: object): IGLTFLoaderResult; + parse(json: Object): IGLTFLoaderResult; - on(name: "success", (result: IGLTFLoaderResult)=> void, context?: any); - success((result: IGLTFLoaderResult)=> void, context?: any); + once(name: "success", handler: (result: IGLTFLoaderResult)=> void, context?: any): void; + once(name: string, handler: Function, context?: any): void; + success(handler: (result: IGLTFLoaderResult)=> void, context?: any); } } } \ No newline at end of file diff --git a/typescript/loader/ThreeModel.d.ts b/typescript/loader/ThreeModel.d.ts index 2c24e350..7c845373 100644 --- a/typescript/loader/ThreeModel.d.ts +++ b/typescript/loader/ThreeModel.d.ts @@ -19,10 +19,11 @@ declare module qtek { load(url: string): void; - parse(data: object): Mesh[]; + parse(data: Object): Mesh[]; - on(name: "success", handler: (meshList: Mesh[])=> void, context?: any); - success(handler: (meshList: Mesh[])=> void, context?: any); + once(name: "success", handler: (meshList: Mesh[])=> void, context?: any): void; + once(name: string, handler: Function, context?: any): void; + success(handler: (meshList: Mesh[])=> void, context?: any): void; } } } \ No newline at end of file diff --git a/typescript/plugin/Skybox.d.ts b/typescript/plugin/Skybox.d.ts index df9b4de4..28f35470 100644 --- a/typescript/plugin/Skybox.d.ts +++ b/typescript/plugin/Skybox.d.ts @@ -1,6 +1,5 @@ /// /// -/// declare module qtek { export module plugin { diff --git a/typescript/plugin/Skydome.d.ts b/typescript/plugin/Skydome.d.ts index 8c4a9df4..f5c5737f 100644 --- a/typescript/plugin/Skydome.d.ts +++ b/typescript/plugin/Skydome.d.ts @@ -1,6 +1,5 @@ /// /// -/// declare module qtek { export module plugin { diff --git a/typescript/qtek.d.ts b/typescript/qtek.d.ts new file mode 100644 index 00000000..6b9f9a03 --- /dev/null +++ b/typescript/qtek.d.ts @@ -0,0 +1,78 @@ +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// \ No newline at end of file diff --git a/typescript/texture/Texture2D.d.ts b/typescript/texture/Texture2D.d.ts index 7a410900..9fd24cf5 100644 --- a/typescript/texture/Texture2D.d.ts +++ b/typescript/texture/Texture2D.d.ts @@ -32,6 +32,14 @@ declare module qtek { unbind(gl): boolean; load(src: string): void; + + once(name: "success", handler: Function, context?: any): void; + success(handler: Function, context?: any): void; + + once(name: "error", handler: Function, context?: any): void; + error(handler: Function, context?: any): void; + + once(name: string, handler: Function, context?: any): void; } } } \ No newline at end of file diff --git a/typescript/texture/TextureCube.d.ts b/typescript/texture/TextureCube.d.ts index 0253ae3f..17fdb443 100644 --- a/typescript/texture/TextureCube.d.ts +++ b/typescript/texture/TextureCube.d.ts @@ -35,7 +35,7 @@ declare module qtek { pixels?: ITextureCubePixels } - export class Texture2D extends Texture { + export class TextureCube extends Texture { constructor(option?: ITextureCubeOption); @@ -56,6 +56,14 @@ declare module qtek { unbind(gl): boolean; load(imageList: ITextureCubeImageSrc): void; + + once(name: "success", handler: Function, context?: any): void; + success(handler: Function, context?: any): void; + + once(name: "error", handler: Function, context?: any): void; + error(handler: Function, context?: any): void; + + once(name: string, handler: Function, context?: any): void; } } } \ No newline at end of file diff --git a/typescript/webgl.d.ts b/typescript/webgl.d.ts deleted file mode 100644 index 00e08701..00000000 --- a/typescript/webgl.d.ts +++ /dev/null @@ -1,535 +0,0 @@ -// https://github.com/RicoP/webgl.d.ts -interface WebGLContextAttributes { - alpha : bool; - depth : bool; - stencil : bool; - antialias : bool; - premultipliedAlpha : bool; -} - -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() : bool; - 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 : bool, green : bool, blue : bool, alpha : bool) : 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 : bool) : 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) : bool; - isEnabled(cap : number) : bool; - isFramebuffer(framebuffer : WebGLFramebuffer) : bool; - isProgram(program : WebGLProgram) : bool; - isRenderbuffer(renderbuffer : WebGLRenderbuffer) : bool; - isShader(shader : WebGLShader) : bool; - isTexture(texture : WebGLTexture) : bool; - 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 : bool) : 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 : bool, value : Float32Array) : void; - uniformMatrix2fv(location : WebGLUniformLocation, transpose : bool, value : number[]) : void; - uniformMatrix3fv(location : WebGLUniformLocation, transpose : bool, value : Float32Array) : void; - uniformMatrix3fv(location : WebGLUniformLocation, transpose : bool, value : number[]) : void; - uniformMatrix4fv(location : WebGLUniformLocation, transpose : bool, value : Float32Array) : void; - uniformMatrix4fv(location : WebGLUniformLocation, transpose : bool, 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 : bool, 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 : bool, cancelableArg : bool, 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; -} \ No newline at end of file