@dunes/render 0.9.26 → 0.9.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,2 @@
1
- export declare class Canvas {
2
- #private;
3
- constructor(id: string);
4
- constructor(c: HTMLElement);
5
- makeContextCurrent(): void;
6
- get rect(): DOMRect;
7
- }
1
+ export {};
8
2
  //# sourceMappingURL=Canvas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../src/engine/Canvas.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;;gBAIL,EAAE,EAAE,MAAM;gBACV,CAAC,EAAE,WAAW;IAmB1B,kBAAkB;IASlB,IAAI,IAAI,YAGP;CACF"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../src/engine/Canvas.ts"],"names":[],"mappings":""}
@@ -1,24 +1,36 @@
1
- export class Canvas {
2
- #canvas;
3
- constructor(c) {
4
- if (typeof c == "string") {
5
- this.#canvas = document.querySelector(c);
6
- }
7
- else {
8
- this.#canvas = c;
9
- }
10
- if (!(this.#canvas instanceof HTMLCanvasElement)) {
11
- throw "Canvas was not loaded properly";
12
- }
13
- }
14
- makeContextCurrent() {
15
- GL = this.#canvas.getContext("webgl2");
16
- if (!GL) {
17
- throw "Could not initialize WebGL2 context";
18
- }
19
- }
20
- get rect() {
21
- return this.#canvas.getBoundingClientRect();
22
- }
23
- }
1
+ // export class Canvas
2
+ // {
3
+ // #canvas: HTMLCanvasElement
4
+ export {};
5
+ // constructor(id: string)
6
+ // constructor(c: HTMLElement)
7
+ // constructor(c: string | HTMLElement)
8
+ // {
9
+ // if (typeof c == "string")
10
+ // {
11
+ // this.#canvas = document.querySelector<
12
+ // HTMLCanvasElement>(c)!;
13
+ // }
14
+ // else
15
+ // {
16
+ // this.#canvas = c as HTMLCanvasElement;
17
+ // }
18
+ // if (!(this.#canvas instanceof HTMLCanvasElement))
19
+ // {
20
+ // throw "Canvas was not loaded properly";
21
+ // }
22
+ // }
23
+ // makeContextCurrent()
24
+ // {
25
+ // GL = this.#canvas.getContext("webgl2")!;
26
+ // if (!GL)
27
+ // {
28
+ // throw "Could not initialize WebGL2 context";
29
+ // }
30
+ // }
31
+ // get rect()
32
+ // {
33
+ // return this.#canvas.getBoundingClientRect();
34
+ // }
35
+ // }
24
36
  //# sourceMappingURL=Canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.js","sourceRoot":"","sources":["../../src/engine/Canvas.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IAEjB,OAAO,CAAmB;IAI1B,YAAY,CAAuB;QAEjC,IAAI,OAAO,CAAC,IAAI,QAAQ,EACxB;YACE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAChB,CAAC,CAAE,CAAC;SAC1B;aAED;YACE,IAAI,CAAC,OAAO,GAAG,CAAsB,CAAC;SACvC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,YAAY,iBAAiB,CAAC,EAChD;YACE,MAAM,gCAAgC,CAAC;SACxC;IACH,CAAC;IAED,kBAAkB;QAEhB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC;QACxC,IAAI,CAAC,EAAE,EACP;YACE,MAAM,qCAAqC,CAAC;SAC7C;IACH,CAAC;IAED,IAAI,IAAI;QAEN,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"Canvas.js","sourceRoot":"","sources":["../../src/engine/Canvas.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,IAAI;AACJ,+BAA+B;;AAE/B,4BAA4B;AAC5B,gCAAgC;AAChC,yCAAyC;AACzC,MAAM;AACN,gCAAgC;AAChC,QAAQ;AACR,+CAA+C;AAC/C,kCAAkC;AAClC,QAAQ;AACR,WAAW;AACX,QAAQ;AACR,+CAA+C;AAC/C,QAAQ;AAER,wDAAwD;AACxD,QAAQ;AACR,gDAAgD;AAChD,QAAQ;AACR,MAAM;AAEN,yBAAyB;AACzB,MAAM;AACN,+CAA+C;AAC/C,eAAe;AACf,QAAQ;AACR,qDAAqD;AACrD,QAAQ;AACR,MAAM;AAEN,eAAe;AACf,MAAM;AACN,mDAAmD;AACnD,MAAM;AACN,IAAI"}
@@ -1,17 +1,2 @@
1
- export declare abstract class Engine {
2
- #private;
3
- constructor();
4
- deltaFrames: number;
5
- deltaUpdates: number;
6
- fps: number;
7
- upd: number;
8
- delay: number;
9
- update_d: number;
10
- run(): Promise<void>;
11
- protected abstract init(): Promise<void>;
12
- protected abstract render(): Promise<void>;
13
- protected abstract update(): Promise<void>;
14
- protected abstract conclude(): Promise<void>;
15
- protected quit(): Promise<void>;
16
- }
1
+ export {};
17
2
  //# sourceMappingURL=Engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../src/engine/Engine.ts"],"names":[],"mappings":"AAAA,8BAAsB,MAAM;;;IAQ1B,WAAW,SAAK;IAGhB,YAAY,SAAK;IAEjB,GAAG,SAAK;IACR,GAAG,SAAK;IAER,KAAK,SAAM;IACX,QAAQ,SAAO;IAEF,GAAG;IA+ChB,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAE5B,IAAI;CAIrB"}
1
+ {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../src/engine/Engine.ts"],"names":[],"mappings":""}
@@ -1,50 +1,61 @@
1
- export class Engine {
2
- constructor() { }
3
- #running = true;
4
- #lastFrameTime = 0;
5
- deltaFrames = 0;
6
- #lastUpdateTime = 0;
7
- deltaUpdates = 0;
8
- fps = 0;
9
- upd = 0;
10
- delay = 10;
11
- update_d = 0.1;
12
- async run() {
13
- await this.init();
14
- this.#lastFrameTime = Date.now();
15
- this.fps = 0;
16
- while (this.#running) {
17
- await this.#render();
18
- await this.#update();
19
- const error = GL.getError();
20
- if (error !== GL.NO_ERROR) {
21
- console.error('WebGL error:', error);
22
- break;
23
- }
24
- if (this.delay) {
25
- await new Promise(res => setTimeout(res, this.delay));
26
- }
27
- }
28
- await this.conclude();
29
- }
30
- async #render() {
31
- await this.render();
32
- this.deltaFrames = (Date.now() - this.#lastFrameTime) / 1000;
33
- this.#lastFrameTime = Date.now();
34
- this.fps = 1 / this.deltaFrames;
35
- }
36
- async #update() {
37
- const delta = (Date.now() - this.#lastUpdateTime) / 1000;
38
- if (delta < this.update_d)
39
- return;
40
- await this.update();
41
- this.deltaUpdates = delta;
42
- this.#lastUpdateTime = Date.now();
43
- this.upd = 1 / this.deltaUpdates;
44
- }
45
- async quit() {
46
- this.#running = false;
47
- }
48
- ;
49
- }
1
+ // export abstract class Engine
2
+ // {
3
+ // constructor()
4
+ // {}
5
+ export {};
6
+ // #running = true;
7
+ // #lastFrameTime = 0;
8
+ // deltaFrames = 0;
9
+ // #lastUpdateTime = 0;
10
+ // deltaUpdates = 0;
11
+ // fps = 0;
12
+ // upd = 0;
13
+ // delay = 10;
14
+ // update_d = 0.1;
15
+ // public async run()
16
+ // {
17
+ // await this.init();
18
+ // this.#lastFrameTime = Date.now();
19
+ // this.fps = 0;
20
+ // while(this.#running)
21
+ // {
22
+ // await this.#render();
23
+ // await this.#update();
24
+ // const error = GL.getError();
25
+ // if (error !== GL.NO_ERROR) {
26
+ // console.error('WebGL error:', error);
27
+ // break;
28
+ // }
29
+ // if (this.delay)
30
+ // {
31
+ // await new Promise(res => setTimeout(res, this.delay));
32
+ // }
33
+ // }
34
+ // await this.conclude();
35
+ // }
36
+ // async #render()
37
+ // {
38
+ // await this.render();
39
+ // this.deltaFrames = (Date.now() - this.#lastFrameTime) / 1000;
40
+ // this.#lastFrameTime = Date.now();
41
+ // this.fps = 1/this.deltaFrames;
42
+ // }
43
+ // async #update()
44
+ // {
45
+ // const delta = (Date.now() - this.#lastUpdateTime) / 1000;
46
+ // if (delta < this.update_d) return;
47
+ // await this.update();
48
+ // this.deltaUpdates = delta;
49
+ // this.#lastUpdateTime = Date.now();
50
+ // this.upd = 1/this.deltaUpdates;
51
+ // }
52
+ // protected abstract init(): Promise<void>;
53
+ // protected abstract render(): Promise<void>;
54
+ // protected abstract update(): Promise<void>;
55
+ // protected abstract conclude(): Promise<void>;
56
+ // protected async quit()
57
+ // {
58
+ // this.#running = false;
59
+ // };
60
+ // }
50
61
  //# sourceMappingURL=Engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../src/engine/Engine.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,MAAM;IAE1B,gBACC,CAAC;IAEF,QAAQ,GAAG,IAAI,CAAC;IAEhB,cAAc,GAAG,CAAC,CAAC;IACnB,WAAW,GAAG,CAAC,CAAC;IAEhB,eAAe,GAAG,CAAC,CAAC;IACpB,YAAY,GAAG,CAAC,CAAC;IAEjB,GAAG,GAAG,CAAC,CAAC;IACR,GAAG,GAAG,CAAC,CAAC;IAER,KAAK,GAAG,EAAE,CAAC;IACX,QAAQ,GAAG,GAAG,CAAC;IAER,KAAK,CAAC,GAAG;QAEd,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QAEb,OAAM,IAAI,CAAC,QAAQ,EACnB;YACE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAErB,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,EAAE,CAAC,QAAQ,EAAE;gBACzB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM;aACP;YAED,IAAI,IAAI,CAAC,KAAK,EACd;gBACE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aACvD;SACF;QACD,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO;QAEX,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAC,IAAI,CAAC,WAAW,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,OAAO;QAEX,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;QACzD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;YAAE,OAAO;QAElC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAC,IAAI,CAAC,YAAY,CAAC;IACjC,CAAC;IAOS,KAAK,CAAC,IAAI;QAElB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAAA,CAAC;CACH"}
1
+ {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../src/engine/Engine.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,IAAI;AACJ,kBAAkB;AAClB,OAAO;;AAEP,qBAAqB;AAErB,wBAAwB;AACxB,sBAAsB;AAEtB,yBAAyB;AACzB,uBAAuB;AAEvB,aAAa;AACb,aAAa;AAEb,gBAAgB;AAChB,qBAAqB;AAErB,uBAAuB;AACvB,MAAM;AACN,yBAAyB;AAEzB,wCAAwC;AACxC,oBAAoB;AAEpB,2BAA2B;AAC3B,QAAQ;AACR,8BAA8B;AAC9B,8BAA8B;AAE9B,qCAAqC;AACrC,qCAAqC;AACrC,gDAAgD;AAChD,iBAAiB;AACjB,UAAU;AAEV,wBAAwB;AACxB,UAAU;AACV,iEAAiE;AACjE,UAAU;AACV,QAAQ;AACR,6BAA6B;AAC7B,MAAM;AAEN,oBAAoB;AACpB,MAAM;AACN,2BAA2B;AAE3B,oEAAoE;AACpE,wCAAwC;AACxC,qCAAqC;AACrC,MAAM;AAEN,oBAAoB;AACpB,MAAM;AACN,gEAAgE;AAChE,yCAAyC;AAEzC,2BAA2B;AAE3B,iCAAiC;AACjC,yCAAyC;AACzC,sCAAsC;AACtC,MAAM;AAEN,8CAA8C;AAC9C,gDAAgD;AAChD,gDAAgD;AAChD,kDAAkD;AAElD,2BAA2B;AAC3B,MAAM;AACN,6BAA6B;AAC7B,OAAO;AACP,IAAI"}
package/lib/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- export * from "./engine/Engine.js";
2
- export * from "./engine/Canvas.js";
3
1
  export * from "./program/Program.js";
2
+ export * from "./program/Vao.js";
4
3
  declare global {
5
- var GL: WebGL2RenderingContext;
6
4
  }
7
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AAGpC,OAAO,CAAC,MAAM,CACd;IACE,IAAI,EAAE,EAAE,sBAAsB,CAAC;CAChC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAGhC,OAAO,CAAC,MAAM,CACd;CAEC"}
package/lib/index.js CHANGED
@@ -1,4 +1,5 @@
1
- export * from "./engine/Engine.js";
2
- export * from "./engine/Canvas.js";
1
+ // export * from "./engine/Engine.js"
2
+ // export * from "./engine/Canvas.js"
3
3
  export * from "./program/Program.js";
4
+ export * from "./program/Vao.js";
4
5
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,qCAAqC;AACrC,qCAAqC;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA"}
@@ -1,13 +1,14 @@
1
1
  export declare class Program {
2
2
  #private;
3
- constructor();
3
+ private GL;
4
+ constructor(GL: WebGL2RenderingContext);
4
5
  get program(): WebGLProgram;
5
6
  onVertex(source: string): void;
6
7
  onFragment(source: string): void;
7
8
  link(): void;
8
9
  use(): void;
9
10
  unuse(): void;
10
- private static createShader;
11
+ private createShader;
11
12
  uniform(name: string): WebGLUniformLocation | null;
12
13
  setBool(name: string, value: boolean): void;
13
14
  setInt(name: string, value: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Program.d.ts","sourceRoot":"","sources":["../../src/program/Program.ts"],"names":[],"mappings":"AACA,qBAAa,OAAO;;;IAalB,IAAW,OAAO,iBAGjB;IAEM,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMhC,IAAI,IAAI,IAAI;IAUZ,GAAG,IAAI,IAAI;IAKX,KAAK,IAAI,IAAI;IAKpB,OAAO,CAAC,MAAM,CAAC,YAAY;IAgBpB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAKlD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAQpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAQlC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAQpC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQvE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQvE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQvE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQ1F,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQ1F,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAOlG"}
1
+ {"version":3,"file":"Program.d.ts","sourceRoot":"","sources":["../../src/program/Program.ts"],"names":[],"mappings":"AACA,qBAAa,OAAO;;IAIN,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,sBAAsB;IAS9C,IAAW,OAAO,iBAGjB;IAEM,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMhC,IAAI,IAAI,IAAI;IAUZ,GAAG,IAAI,IAAI;IAKX,KAAK,IAAI,IAAI;IAKpB,OAAO,CAAC,YAAY;IAgBb,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAKlD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAQpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAQlC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAQpC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQvE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQvE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQvE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQ1F,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQ1F,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAOlG"}
@@ -1,7 +1,9 @@
1
1
  export class Program {
2
+ GL;
2
3
  #program;
3
- constructor() {
4
- this.#program = GL.createProgram();
4
+ constructor(GL) {
5
+ this.GL = GL;
6
+ this.#program = this.GL.createProgram();
5
7
  if (!this.#program) {
6
8
  console.log("Failed to create program");
7
9
  }
@@ -10,65 +12,65 @@ export class Program {
10
12
  return this.#program;
11
13
  }
12
14
  onVertex(source) {
13
- const shader = Program.createShader(GL, source, GL.VERTEX_SHADER);
14
- GL.attachShader(this.#program, shader);
15
+ const shader = this.createShader(this.GL, source, this.GL.VERTEX_SHADER);
16
+ this.GL.attachShader(this.#program, shader);
15
17
  }
16
18
  onFragment(source) {
17
- const shader = Program.createShader(GL, source, GL.FRAGMENT_SHADER);
18
- GL.attachShader(this.#program, shader);
19
+ const shader = this.createShader(this.GL, source, this.GL.FRAGMENT_SHADER);
20
+ this.GL.attachShader(this.#program, shader);
19
21
  }
20
22
  link() {
21
- GL.linkProgram(this.#program);
22
- if (!GL.getProgramParameter(this.#program, GL.LINK_STATUS)) {
23
- const info = GL.getProgramInfoLog(this.#program);
23
+ this.GL.linkProgram(this.#program);
24
+ if (!this.GL.getProgramParameter(this.#program, this.GL.LINK_STATUS)) {
25
+ const info = this.GL.getProgramInfoLog(this.#program);
24
26
  throw `Could not compile WebGL program. \n\n${info}`;
25
27
  }
26
28
  }
27
29
  use() {
28
- GL.useProgram(this.#program);
30
+ this.GL.useProgram(this.#program);
29
31
  }
30
32
  unuse() {
31
- GL.useProgram(null);
32
- }
33
- static createShader(GL, source, type) {
34
- const shader = GL.createShader(type);
35
- GL.shaderSource(shader, source);
36
- GL.compileShader(shader);
37
- if (!GL.getShaderParameter(shader, GL.COMPILE_STATUS)) {
38
- const info = GL.getShaderInfoLog(shader);
39
- throw `Could not compile ${type == GL.VERTEX_SHADER ? "vertex" : "fragment"} shader. \n\n${info}`;
33
+ this.GL.useProgram(null);
34
+ }
35
+ createShader(GL, source, type) {
36
+ const shader = this.GL.createShader(type);
37
+ this.GL.shaderSource(shader, source);
38
+ this.GL.compileShader(shader);
39
+ if (!this.GL.getShaderParameter(shader, this.GL.COMPILE_STATUS)) {
40
+ const info = this.GL.getShaderInfoLog(shader);
41
+ throw `Could not compile ${type == this.GL.VERTEX_SHADER ? "vertex" : "fragment"} shader. \n\n${info}`;
40
42
  }
41
43
  return shader;
42
44
  }
43
45
  uniform(name) {
44
- return GL.getUniformLocation(this.#program, name);
46
+ return this.GL.getUniformLocation(this.#program, name);
45
47
  }
46
48
  setBool(name, value) {
47
- GL.uniform1i(GL.getUniformLocation(this.#program, name), value ? 1 : 0);
49
+ this.GL.uniform1i(this.GL.getUniformLocation(this.#program, name), value ? 1 : 0);
48
50
  }
49
51
  setInt(name, value) {
50
- GL.uniform1i(GL.getUniformLocation(this.#program, name), value);
52
+ this.GL.uniform1i(this.GL.getUniformLocation(this.#program, name), value);
51
53
  }
52
54
  setFloat(name, value) {
53
- GL.uniform1f(GL.getUniformLocation(this.#program, name), value);
55
+ this.GL.uniform1f(this.GL.getUniformLocation(this.#program, name), value);
54
56
  }
55
57
  setVec2(name, value, offset, length) {
56
- GL.uniform2fv(GL.getUniformLocation(this.#program, name), value, offset, length);
58
+ this.GL.uniform2fv(this.GL.getUniformLocation(this.#program, name), value, offset, length);
57
59
  }
58
60
  setVec3(name, value, offset, length) {
59
- GL.uniform3fv(GL.getUniformLocation(this.#program, name), value, offset, length);
61
+ this.GL.uniform3fv(this.GL.getUniformLocation(this.#program, name), value, offset, length);
60
62
  }
61
63
  setVec4(name, value, offset, length) {
62
- GL.uniform4fv(GL.getUniformLocation(this.#program, name), value, offset, length);
64
+ this.GL.uniform4fv(this.GL.getUniformLocation(this.#program, name), value, offset, length);
63
65
  }
64
66
  setMat2(name, value, transpose = false, offset, length) {
65
- GL.uniformMatrix2fv(GL.getUniformLocation(this.#program, name), transpose, value, offset, length);
67
+ this.GL.uniformMatrix2fv(this.GL.getUniformLocation(this.#program, name), transpose, value, offset, length);
66
68
  }
67
69
  setMat3(name, value, transpose = false, offset, length) {
68
- GL.uniformMatrix3fv(GL.getUniformLocation(this.#program, name), transpose, value, offset, length);
70
+ this.GL.uniformMatrix3fv(this.GL.getUniformLocation(this.#program, name), transpose, value, offset, length);
69
71
  }
70
72
  setMat4(name, value, transpose = false, offset, length) {
71
- GL.uniformMatrix4fv(GL.getUniformLocation(this.#program, name), transpose, value, offset, length);
73
+ this.GL.uniformMatrix4fv(this.GL.getUniformLocation(this.#program, name), transpose, value, offset, length);
72
74
  }
73
75
  }
74
76
  //# sourceMappingURL=Program.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Program.js","sourceRoot":"","sources":["../../src/program/Program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Program.js","sourceRoot":"","sources":["../../src/program/Program.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare class Vao {
2
+ private gl;
3
+ private vao;
4
+ private vertexBuffer;
5
+ private indexBuffer;
6
+ private indexCount;
7
+ private vertexCount;
8
+ private indexType;
9
+ constructor(gl: WebGL2RenderingContext);
10
+ setVertices(data: Float32Array, attributeLocation: number, size: number, usage?: GLenum): void;
11
+ setIndices(data: Uint16Array | Uint32Array, usage?: GLenum): void;
12
+ bind(): void;
13
+ unbind(): void;
14
+ draw(mode?: GLenum): void;
15
+ }
16
+ //# sourceMappingURL=Vao.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vao.d.ts","sourceRoot":"","sources":["../../src/program/Vao.ts"],"names":[],"mappings":"AAAA,qBAAa,GAAG;IACd,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,SAAS,CAAa;gBAElB,EAAE,EAAE,sBAAsB;IAStC,WAAW,CACT,IAAI,EAAE,YAAY,EAClB,iBAAiB,EAAE,MAAM,EACzB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAA4B,GAClC,IAAI;IA4BP,UAAU,CACR,IAAI,EAAE,WAAW,GAAG,WAAW,EAC/B,KAAK,GAAE,MAA4B,GAClC,IAAI;IA0BP,IAAI,IAAI,IAAI;IAIZ,MAAM,IAAI,IAAI;IAId,IAAI,CAAC,IAAI,GAAE,MAA0B,GAAG,IAAI;CAY7C"}
@@ -0,0 +1,75 @@
1
+ export class Vao {
2
+ gl;
3
+ vao;
4
+ vertexBuffer = null;
5
+ indexBuffer = null;
6
+ indexCount = 0;
7
+ vertexCount = 0;
8
+ indexType = 0;
9
+ constructor(gl) {
10
+ this.gl = gl;
11
+ const vao = this.gl.createVertexArray();
12
+ if (vao === null) {
13
+ throw new Error("Unable to create VAO");
14
+ }
15
+ this.vao = vao;
16
+ }
17
+ setVertices(data, attributeLocation, size, usage = this.gl.STATIC_DRAW) {
18
+ const { gl, vao } = this;
19
+ if (!this.vertexBuffer) {
20
+ this.vertexBuffer = gl.createBuffer();
21
+ if (this.vertexBuffer === null) {
22
+ throw new Error("Unable to create vertex buffer");
23
+ }
24
+ }
25
+ gl.bindVertexArray(vao);
26
+ gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer);
27
+ gl.bufferData(gl.ARRAY_BUFFER, data, usage);
28
+ gl.enableVertexAttribArray(attributeLocation);
29
+ gl.vertexAttribPointer(attributeLocation, size, gl.FLOAT, false, 0, 0);
30
+ gl.bindBuffer(gl.ARRAY_BUFFER, null);
31
+ gl.bindVertexArray(null);
32
+ this.vertexCount = data.length / size;
33
+ }
34
+ setIndices(data, usage = this.gl.STATIC_DRAW) {
35
+ const { gl, vao } = this;
36
+ if (data instanceof Uint32Array) {
37
+ this.indexType = gl.UNSIGNED_INT;
38
+ }
39
+ else if (data instanceof Uint16Array) {
40
+ this.indexType = gl.UNSIGNED_SHORT;
41
+ }
42
+ else {
43
+ throw new Error("Index data must be Uint16Array or Uint32Array");
44
+ }
45
+ if (!this.indexBuffer) {
46
+ this.indexBuffer = gl.createBuffer();
47
+ if (this.indexBuffer === null) {
48
+ throw new Error("Unable to create index buffer");
49
+ }
50
+ }
51
+ gl.bindVertexArray(vao);
52
+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer);
53
+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, usage);
54
+ gl.bindVertexArray(null);
55
+ this.indexCount = data.length;
56
+ }
57
+ bind() {
58
+ this.gl.bindVertexArray(this.vao);
59
+ }
60
+ unbind() {
61
+ this.gl.bindVertexArray(null);
62
+ }
63
+ draw(mode = this.gl.TRIANGLES) {
64
+ const { gl, indexBuffer, indexCount, vertexCount, indexType } = this;
65
+ this.bind();
66
+ if (indexBuffer && indexCount > 0) {
67
+ gl.drawElements(mode, indexCount, indexType, 0);
68
+ }
69
+ else if (vertexCount > 0) {
70
+ gl.drawArrays(mode, 0, vertexCount);
71
+ }
72
+ this.unbind();
73
+ }
74
+ }
75
+ //# sourceMappingURL=Vao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vao.js","sourceRoot":"","sources":["../../src/program/Vao.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dunes/render",
3
- "version": "0.9.26",
3
+ "version": "0.9.28",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "main": "./lib/index.js",
@@ -17,7 +17,7 @@
17
17
  "author": "Omar <omarfkuri@gmail.com>",
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "git://github.com/omarfkuri/dunes.git"
20
+ "url": "git://github.com/dunes-js/render.git"
21
21
  },
22
22
  "dependencies": {
23
23
  "@dunes/tools": "^0.9.60"
package/tsconfig.json CHANGED
@@ -1,6 +1,5 @@
1
1
  {
2
- "extends": "../../tsconfig.json",
3
-
2
+ "exclude": ["test", "lib"],
4
3
  "compilerOptions": {
5
4
  "outDir": "lib",
6
5
  "declaration": true,
@@ -11,5 +10,25 @@
11
10
 
12
11
  "sourceMap": true,
13
12
  "declarationMap": true,
13
+
14
+ "verbatimModuleSyntax": true,
15
+ "target": "ES2022",
16
+ "module": "NodeNext",
17
+ "moduleResolution": "NodeNext",
18
+ "esModuleInterop": true,
19
+ "forceConsistentCasingInFileNames": true,
20
+ "strict": true,
21
+ "noImplicitAny": true,
22
+ "strictNullChecks": true,
23
+ "strictFunctionTypes": true,
24
+ "strictBindCallApply": true,
25
+ "strictPropertyInitialization": true,
26
+ "noImplicitThis": true,
27
+ "useUnknownInCatchVariables": true,
28
+ "alwaysStrict": true,
29
+ "noFallthroughCasesInSwitch": true,
30
+ "noUncheckedIndexedAccess": true,
31
+ "noImplicitOverride": true,
32
+ "skipLibCheck": true
14
33
  }
15
34
  }