Skip to content

Commit 3dcd770

Browse files
committed
β™² clean up
1 parent 6232ab2 commit 3dcd770

File tree

5 files changed

+38
-51
lines changed

5 files changed

+38
-51
lines changed

β€Žsrc/index.tsβ€Ž

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import { stepProgress } from "./logic/progress";
1010
import { deriveSprites } from "./logic/sprites";
1111
import { createState } from "./logic/state";
1212
import { attachUserEvent } from "./logic/userEvent";
13-
import { createSpriteRenderer } from "./renderer/spriteRenderer";
13+
import { createBlurPassRenderer } from "./renderer/blurPass/renderer";
14+
import { createSpriteRenderer } from "./renderer/sprite/spriteRenderer";
1415
import { createSpriteAtlas } from "./sprites";
1516

1617
const spritePromise = createSpriteAtlas();
@@ -30,27 +31,51 @@ gl.depthFunc(gl.LESS);
3031
gl.enable(gl.BLEND);
3132
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
3233

33-
const renderer = createSpriteRenderer(gl);
34+
const rendererSprite = createSpriteRenderer(gl);
3435

35-
const set = renderer.createSet();
36+
const set = rendererSprite.createSet();
3637

3738
//
3839
//
3940

4041
const state = createState(runnerCount);
41-
attachUserEvent(state, canvas, gl);
42-
window.dispatchEvent(new Event("resize"));
43-
42+
attachUserEvent(state);
4443
computeFinalPlacement(state, message);
45-
4644
const stepPhysic = createPhysicStepper(runnerCount);
4745

46+
//
47+
//
48+
49+
const resize = () => {
50+
const dpr = window.devicePixelRatio ?? 1;
51+
52+
canvas.width = canvas.clientWidth * dpr;
53+
canvas.height = canvas.clientHeight * dpr;
54+
55+
gl.viewport(0, 0, canvas.width, canvas.height);
56+
57+
const aspect = canvas.width / canvas.height;
58+
mat4.perspective(
59+
state.projectionMatrix,
60+
Math.PI / 4 / aspect,
61+
aspect,
62+
0.1,
63+
2000,
64+
);
65+
};
66+
67+
window.addEventListener("resize", resize);
68+
resize();
69+
70+
//
71+
//
72+
4873
spritePromise.then((res) => {
49-
renderer.updateSet(set, { colorTexture: res.texture });
74+
rendererSprite.updateSet(set, { colorTexture: res.texture });
5075

51-
gl.useProgram(renderer._internal.program);
76+
gl.useProgram(rendererSprite._internal.program);
5277

53-
gl.uniform1i(renderer._internal.u_colorTexture, 0);
78+
gl.uniform1i(rendererSprite._internal.u_colorTexture, 0);
5479
gl.bindVertexArray(set.vao);
5580

5681
gl.activeTexture(gl.TEXTURE0);
@@ -71,27 +96,13 @@ spritePromise.then((res) => {
7196

7297
//
7398

74-
renderer.updateSet(set, state);
99+
rendererSprite.updateSet(set, state);
75100

76101
//
77102

78103
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
79104

80-
//
81-
// usually the API is meant to call renderer.draw(state.projectionMatrix,state.viewMatrix,[set])
82-
// but since there is only oone program let's save some gl instructions
83-
gl.uniformMatrix4fv(
84-
renderer._internal.u_viewMatrix,
85-
false,
86-
state.viewMatrix,
87-
);
88-
gl.uniformMatrix4fv(
89-
renderer._internal.u_projectionMatrix,
90-
false,
91-
state.projectionMatrix,
92-
);
93-
94-
gl.drawArraysInstanced(gl.TRIANGLE_STRIP, 0, 4, set.numInstances);
105+
rendererSprite.draw(state.projectionMatrix, state.viewMatrix, [set]);
95106

96107
//
97108

β€Žsrc/logic/userEvent.tsβ€Ž

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import { mat4 } from "gl-matrix";
22
import { State } from "./state";
33

4-
export const attachUserEvent = (
5-
state: State,
6-
canvas: HTMLCanvasElement,
7-
gl: WebGL2RenderingContext,
8-
) => {
4+
export const attachUserEvent = (state: State) => {
95
window.addEventListener("mousemove", (e) => {
106
state.pointer.x = e.clientX / window.innerWidth;
117
state.pointer.y = e.clientY / window.innerHeight;
@@ -49,24 +45,4 @@ export const attachUserEvent = (
4945
},
5046
{ passive: true },
5147
);
52-
53-
const resize = () => {
54-
const dpr = window.devicePixelRatio ?? 1;
55-
56-
canvas.width = canvas.clientWidth * dpr;
57-
canvas.height = canvas.clientHeight * dpr;
58-
59-
gl.viewport(0, 0, canvas.width, canvas.height);
60-
61-
const aspect = canvas.width / canvas.height;
62-
mat4.perspective(
63-
state.projectionMatrix,
64-
Math.PI / 4 / aspect,
65-
aspect,
66-
0.1,
67-
2000,
68-
);
69-
};
70-
71-
window.addEventListener("resize", resize);
7248
};
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
Β (0)