mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-06 15:57:13 +00:00
Adds types for gl-shader (#25200)
* init gl-shader types * adds tests * fixes file name * adds additional signature * fixes definitions url
This commit is contained in:
committed by
Wesley Wigham
parent
248e3140ec
commit
0823873176
@@ -0,0 +1,41 @@
|
||||
import createShader = require("gl-shader");
|
||||
|
||||
const gl = new WebGLRenderingContext();
|
||||
|
||||
let shader = createShader(gl, "", "");
|
||||
|
||||
shader = createShader(gl, "", "", []);
|
||||
shader = createShader(gl, "", "", [], []);
|
||||
shader = createShader(gl, "", "", [{name: "foo", type: "bool"}]);
|
||||
shader = createShader(gl, "", "", [{name: "foo", type: "bool"}, {name: "bar", type: "float"}]);
|
||||
shader = createShader(gl, "", "", [{name: "foo", type: "bool"}], [{name: "bar", type: "float"}]);
|
||||
|
||||
shader = createShader(gl, {vertex: "", fragment: ""});
|
||||
shader = createShader(gl, {vertex: "", fragment: "", uniforms: [{name: "foo", type: "bool"}]});
|
||||
shader = createShader(gl, {vertex: "", fragment: "", uniforms: [{name: "foo", type: "bool"}]});
|
||||
shader = createShader(gl, {
|
||||
vertex: "",
|
||||
fragment: "",
|
||||
uniforms: [{name: "foo", type: "bool"}],
|
||||
attributes: [{name: "bar", type: "float"}]
|
||||
});
|
||||
|
||||
shader.bind();
|
||||
shader.dispose();
|
||||
shader.update("", "");
|
||||
shader.update("", "", [{name: "foo", type: "bool"}]);
|
||||
shader.update("", "", [{name: "foo", type: "bool"}], [{name: "foo", type: "bool"}]);
|
||||
|
||||
shader.uniforms;
|
||||
shader.uniforms.color;
|
||||
shader.uniforms.color = 4;
|
||||
shader.uniforms.color = [ 1, 0, 0, 0 ];
|
||||
|
||||
shader.uniforms = {
|
||||
model: [ 1, 2, 3, 4 ],
|
||||
foo: 13
|
||||
};
|
||||
|
||||
shader.attributes;
|
||||
shader.attributes.position.length;
|
||||
shader.attributes.position.pointer();
|
||||
Vendored
+51
@@ -0,0 +1,51 @@
|
||||
// Type definitions for gl-shader 4.2
|
||||
// Project: https://github.com/stackgl/gl-shader
|
||||
// Definitions by: Mathias Paumgarten <https://github.com/MathiasPaumgarten>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.2
|
||||
|
||||
interface Parameter {
|
||||
type: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
interface Attribute {
|
||||
location: number[] | number;
|
||||
pointer(type?: number, normalized?: boolean, stride?: number, offset?: number): number;
|
||||
}
|
||||
|
||||
declare class Shader {
|
||||
readonly gl: WebGLRenderingContext;
|
||||
readonly program: WebGLProgram;
|
||||
readonly vertShader: WebGLShader;
|
||||
readonly fragShader: WebGLShader;
|
||||
readonly attributes: {[key: string]: Attribute & any[]};
|
||||
|
||||
uniforms: {[key: string]: any};
|
||||
|
||||
constructor(gl: WebGLRenderingContext);
|
||||
|
||||
bind(): void;
|
||||
dispose(): void;
|
||||
|
||||
update(vertex: string, fragment: string, uniforms?: Parameter[], attributes?: Parameter[]): void;
|
||||
update(obj: {vertex: string, fragment: string, uniforms: Parameter[], attributes: Parameter[]}): void;
|
||||
}
|
||||
|
||||
declare function createShader(
|
||||
gl: WebGLRenderingContext,
|
||||
vertex: string,
|
||||
fragment: string,
|
||||
uniforms?: Parameter[],
|
||||
attributes?: Parameter[]): Shader;
|
||||
|
||||
declare function createShader(
|
||||
gl: WebGLRenderingContext,
|
||||
options: {
|
||||
vertex: string,
|
||||
fragment: string,
|
||||
uniforms?: Parameter[],
|
||||
attributes?: Parameter[],
|
||||
}): Shader;
|
||||
|
||||
export = createShader;
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"gl-shader-tests.ts"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6",
|
||||
"dom"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json"
|
||||
}
|
||||
Reference in New Issue
Block a user