Skip to content

Commit 9e68e74

Browse files
committed
Introduce RendererStats to WebGLMapRenderer.
1 parent 993029d commit 9e68e74

File tree

3 files changed

+38
-33
lines changed

3 files changed

+38
-33
lines changed

src/mapviewer/MapViewerRenderer.ts

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -13,44 +13,21 @@ import { InputManager } from "../util/InputManager";
1313
import { WebGLMapSquare } from "../renderer/webgl/WebGLMapSquare";
1414
import { SdMapData } from "../renderer/loader/SdMapData";
1515
import { Pathfinder } from "../rs/pathfinder/Pathfinder";
16-
17-
export class MapViewerRendererStats {
18-
frameStart: number;
19-
interactionsTime: number;
20-
21-
opaquePassTime: number;
22-
opaqueNpcPassTime: number;
23-
transparentPassTime: number;
24-
transparentNpcPassTime: number;
25-
26-
constructor() {
27-
this.frameStart = 0;
28-
this.interactionsTime = 0;
29-
this.opaquePassTime = 0;
30-
this.opaqueNpcPassTime = 0;
31-
this.transparentPassTime = 0;
32-
this.transparentNpcPassTime = 0;
33-
}
34-
};
16+
import { RendererStats } from "../renderer/webgl/RendererStats";
3517

3618
export abstract class MapViewerRenderer extends RendererMainLoop {
3719
inputManager: InputManager;
3820
pathfinder: Pathfinder;
3921

40-
tickTime: number;
41-
rendererStats: MapViewerRendererStats;
42-
4322
// Temporary, will be cleaned up in the following commits.
4423
abstract getMapManager(): MapManager<WebGLMapSquare>;
4524
abstract getMapManagerTime(): number;
25+
abstract getRendererStats(): RendererStats;
4626

4727
constructor(public mapViewer: MapViewer) {
4828
super();
4929
this.inputManager = mapViewer.inputManager;
5030
this.pathfinder = mapViewer.pathfinder;
51-
52-
this.tickTime = 0;
53-
this.rendererStats = new MapViewerRendererStats();
5431
}
5532

5633
override async init() {
@@ -214,28 +191,28 @@ export abstract class MapViewerRenderer extends RendererMainLoop {
214191
override onFrameEnd(): void {
215192
super.onFrameEnd();
216193

217-
const frameTime = performance.now() - this.rendererStats.frameStart;
194+
const frameTime = performance.now() - this.getRendererStats().frameStart;
218195

219196
if (this.inputManager.isKeyDown("KeyH")) {
220197
this.mapViewer.debugText = `MapManager: ${this.getMapManagerTime().toFixed(2)}ms`;
221198
}
222199
if (this.inputManager.isKeyDown("KeyJ")) {
223-
this.mapViewer.debugText = `Interactions: ${this.rendererStats.interactionsTime.toFixed(2)}ms`;
200+
this.mapViewer.debugText = `Interactions: ${this.getRendererStats().interactionsTime.toFixed(2)}ms`;
224201
}
225202
if (this.inputManager.isKeyDown("KeyK")) {
226-
this.mapViewer.debugText = `Tick: ${this.tickTime.toFixed(2)}ms`;
203+
this.mapViewer.debugText = `Tick: ${this.getRendererStats().tickTime.toFixed(2)}ms`;
227204
}
228205
if (this.inputManager.isKeyDown("KeyL")) {
229-
this.mapViewer.debugText = `Opaque Pass: ${this.rendererStats.opaquePassTime.toFixed(2)}ms`;
206+
this.mapViewer.debugText = `Opaque Pass: ${this.getRendererStats().opaquePassTime.toFixed(2)}ms`;
230207
}
231208
if (this.inputManager.isKeyDown("KeyB")) {
232-
this.mapViewer.debugText = `Opaque Npc Pass: ${this.rendererStats.opaqueNpcPassTime.toFixed(2)}ms`;
209+
this.mapViewer.debugText = `Opaque Npc Pass: ${this.getRendererStats().opaqueNpcPassTime.toFixed(2)}ms`;
233210
}
234211
if (this.inputManager.isKeyDown("KeyN")) {
235-
this.mapViewer.debugText = `Transparent Pass: ${this.rendererStats.transparentPassTime.toFixed(2)}ms`;
212+
this.mapViewer.debugText = `Transparent Pass: ${this.getRendererStats().transparentPassTime.toFixed(2)}ms`;
236213
}
237214
if (this.inputManager.isKeyDown("KeyM")) {
238-
this.mapViewer.debugText = `Transparent Npc Pass: ${this.rendererStats.transparentNpcPassTime.toFixed(
215+
this.mapViewer.debugText = `Transparent Npc Pass: ${this.getRendererStats().transparentNpcPassTime.toFixed(
239216
2,
240217
)}ms`;
241218
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
export class RendererStats {
2+
frameStart: number;
3+
tickTime: number;
4+
interactionsTime: number;
5+
6+
opaquePassTime: number;
7+
opaqueNpcPassTime: number;
8+
transparentPassTime: number;
9+
transparentNpcPassTime: number;
10+
11+
constructor() {
12+
this.frameStart = 0;
13+
this.tickTime = 0;
14+
this.interactionsTime = 0;
15+
this.opaquePassTime = 0;
16+
this.opaqueNpcPassTime = 0;
17+
this.transparentPassTime = 0;
18+
this.transparentNpcPassTime = 0;
19+
}
20+
};

src/renderer/webgl/WebGLMapRenderer.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import { MapManager } from "../MapManager";
3939
import { SceneBuilder } from "../../rs/scene/SceneBuilder";
4040
import { Camera } from "../Camera";
4141
import { Pathfinder } from "../../rs/pathfinder/Pathfinder";
42+
import { RendererStats } from "./RendererStats";
4243

4344
const MAX_TEXTURES = 2048;
4445
const TEXTURE_SIZE = 128;
@@ -90,6 +91,8 @@ export class WebGLMapRenderer extends MapViewerRenderer {
9091
camera: Camera;
9192
pathfinder: Pathfinder;
9293

94+
rendererStats: RendererStats;
95+
9396
app!: PicoApp;
9497
gl!: WebGL2RenderingContext;
9598

@@ -184,6 +187,10 @@ export class WebGLMapRenderer extends MapViewerRenderer {
184187
return this.mapManagerTime;
185188
}
186189

190+
getRendererStats(): RendererStats {
191+
return this.rendererStats;
192+
}
193+
187194
constructor(public mapViewer: MapViewer, cacheLoaders: CacheLoaders,
188195
inputManager: InputManager, workerPool: RenderDataWorkerPool,
189196
renderDistance: number, unloadDistance: number, lodDistance: number,
@@ -201,6 +208,7 @@ export class WebGLMapRenderer extends MapViewerRenderer {
201208
);
202209
this.camera = camera;
203210
this.pathfinder = pathfinder;
211+
this.rendererStats = new RendererStats();
204212
this.interactions = new Array(INTERACT_BUFFER_COUNT);
205213
for (let i = 0; i < INTERACT_BUFFER_COUNT; i++) {
206214
this.interactions[i] = new Interactions(INTERACTION_RADIUS);
@@ -908,7 +916,7 @@ export class WebGLMapRenderer extends MapViewerRenderer {
908916

909917
const tickStart = performance.now();
910918
this.tickPass(timeSec, ticksElapsed, clientTicksElapsed);
911-
this.tickTime = performance.now() - tickStart;
919+
this.rendererStats.tickTime = performance.now() - tickStart;
912920

913921
const npcDataTextureIndex = this.updateNpcDataTexture();
914922
const npcDataTexture = this.npcDataTextureBuffer[npcDataTextureIndex];

0 commit comments

Comments
 (0)