Skip to content

Commit 7caad7c

Browse files
committed
Export types
1 parent 14f2b4c commit 7caad7c

File tree

4 files changed

+44
-47
lines changed

4 files changed

+44
-47
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const hook = {
4141
}
4242

4343
Shader.addHook(hook) // use addHook method
44-
<SimpleShaderCanvas args={{ hooks:[hook] }} /> // or pass on init
44+
<SimpleShaderCanvas args={{ hooks:[hook] }} /> // or pass on construction
4545
```
4646

4747
### Basic Usage

src/core/index.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import { Shader } from './shader'
2-
import { MethodName } from './domHandler'
3-
import ShaderTypes from '../types'
42

5-
6-
export { Shader, MethodName, ShaderTypes }
3+
export { Shader }
4+
export * from '../types/index.d'

src/core/shader.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { ShaderArgs, UniformValue, ShaderHook } from "../types";
1+
// import { ShaderArgs, UniformValue, ShaderHook } from "../types";
22
import { domHandler, MethodName } from "./domHandler";
3-
3+
import ShaderTypes from "../types"
44

55
/** Shader Class
66
* @export
@@ -9,14 +9,14 @@ import { domHandler, MethodName } from "./domHandler";
99
*
1010
*/
1111
export class Shader extends domHandler {
12-
private hooks: Record<string, ShaderHook[]> = {};
12+
private hooks: Record<string, ShaderTypes.ShaderHook[]> = {};
1313
private gl: WebGLRenderingContext;
1414
private shaderProgram: WebGLProgram;
1515
private vertexBuffer: WebGLBuffer;
16-
private uniforms: Array<UniformValue> | undefined
16+
private uniforms: Array<ShaderTypes.UniformValue> | undefined
1717
private loadedClass: string = 'loaded'
1818

19-
constructor(container: HTMLCanvasElement, args: ShaderArgs) {
19+
constructor(container: HTMLCanvasElement, args: ShaderTypes.ShaderArgs) {
2020
super(container);
2121
this.gl = container.getContext('webgl') as WebGLRenderingContext;
2222
this.shaderProgram = this.initializeShader(args.vertShader, args.fragShader);
@@ -42,7 +42,7 @@ export class Shader extends domHandler {
4242
this.container.classList.add(this.loadedClass)
4343
}
4444

45-
public addHook(methodName: MethodName, hook: ShaderHook): void {
45+
public addHook(methodName: MethodName, hook: ShaderTypes.ShaderHook): void {
4646
if (!this.hooks[methodName]) this.hooks[methodName] = [];
4747
this.hooks[methodName].push(hook);
4848
}
@@ -133,7 +133,7 @@ export class Shader extends domHandler {
133133
}
134134

135135
/** Gets a uniform value from the shader */
136-
public getUniform(name: string): UniformValue | undefined {
136+
public getUniform(name: string): ShaderTypes.UniformValue | undefined {
137137
const uLoc = this.gl.getUniformLocation(this.shaderProgram, name);
138138
if (!uLoc) {
139139
console.error(`Uniform ${name} not found.`);
@@ -144,7 +144,7 @@ export class Shader extends domHandler {
144144
}
145145

146146
/** Sets a uniform value for the shader */
147-
public setUniform(uniform: UniformValue): void {
147+
public setUniform(uniform: ShaderTypes.UniformValue): void {
148148
const { name, type, value } = uniform
149149
const uLoc = this.gl.getUniformLocation(this.shaderProgram, name);
150150

src/types/index.d.ts

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,40 @@
1-
import { Shader } from "../core"
2-
import { MethodName } from "../core/domHandler";
1+
import { Shader as _Shader } from "../core"
2+
import { MethodName as _MethodName } from "../core/domHandler";
33

4-
declare namespace simpleShaderComponent {
54

6-
type ShaderHook = (shader: Shader, ...args: any[]) => void;
5+
export type Shader = _Shader;
6+
export type MethodName = _MethodName;
77

8-
/**
9-
* @param logic Logic should be functions passed as strings that take the form (shader: Shader) => void
10-
* */
11-
type ShaderArgs = {
12-
vertShader?: string,
13-
fragShader?: string,
14-
uniforms?: Array<UniformValue>,
15-
hooks?: Array<{ methodName: MethodName, hook: ShaderHook }>
16-
/** Default 'loaded' */
17-
loadedClass?: string
18-
}
8+
export type ShaderHook = (shader: Shader, ...args: any[]) => void;
199

20-
type UniformValue = {
21-
name: string,
22-
type: UniformType,
23-
value: any
24-
}
10+
/**
11+
* @param logic Logic should be functions passed as strings that take the form (shader: Shader) => void
12+
* */
13+
export type ShaderArgs = {
14+
vertShader?: string,
15+
fragShader?: string,
16+
uniforms?: Array<UniformValue>,
17+
hooks?: Array<{ methodName: MethodName, hook: ShaderHook }>
18+
/** Default 'loaded' */
19+
loadedClass?: string
20+
}
2521

26-
type UniformType =
27-
| "float"
28-
| "vec2"
29-
| "vec3"
30-
| "vec4"
31-
| "int"
32-
| "ivec2"
33-
| "ivec3"
34-
| "ivec4"
35-
| "mat2"
36-
| "mat3"
37-
| "mat4";
22+
export type UniformValue = {
23+
name: string,
24+
type: UniformType,
25+
value: any
3826
}
3927

40-
export = simpleShaderComponent;
41-
export as namespace simpleShaderComponent;
28+
export type UniformType =
29+
| "float"
30+
| "vec2"
31+
| "vec3"
32+
| "vec4"
33+
| "int"
34+
| "ivec2"
35+
| "ivec3"
36+
| "ivec4"
37+
| "mat2"
38+
| "mat3"
39+
| "mat4";
40+

0 commit comments

Comments
 (0)