Skip to content

Commit 21e003d

Browse files
committed
Introduce RendererStats to WebGLMapRenderer.
1 parent df7c0c5 commit 21e003d

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
@@ -12,42 +12,19 @@ import { isTouchDevice } from "../util/DeviceUtil";
1212
import { InputManager } from "../util/InputManager";
1313
import { WebGLMapSquare } from "../renderer/webgl/WebGLMapSquare";
1414
import { SdMapData } from "../renderer/loader/SdMapData";
15-
16-
export class MapViewerRendererStats {
17-
frameStart: number;
18-
interactionsTime: number;
19-
20-
opaquePassTime: number;
21-
opaqueNpcPassTime: number;
22-
transparentPassTime: number;
23-
transparentNpcPassTime: number;
24-
25-
constructor() {
26-
this.frameStart = 0;
27-
this.interactionsTime = 0;
28-
this.opaquePassTime = 0;
29-
this.opaqueNpcPassTime = 0;
30-
this.transparentPassTime = 0;
31-
this.transparentNpcPassTime = 0;
32-
}
33-
};
15+
import { RendererStats } from "../renderer/webgl/RendererStats";
3416

3517
export abstract class MapViewerRenderer extends RendererMainLoop {
3618
inputManager: InputManager;
3719

38-
tickTime: number;
39-
rendererStats: MapViewerRendererStats;
40-
4120
// Temporary, will be cleaned up in the following commits.
4221
abstract getMapManager(): MapManager<WebGLMapSquare>;
4322
abstract getMapManagerTime(): number;
23+
abstract getRendererStats(): RendererStats;
4424

4525
constructor(public mapViewer: MapViewer) {
4626
super();
4727
this.inputManager = mapViewer.inputManager;
48-
49-
this.tickTime = 0;
50-
this.rendererStats = new MapViewerRendererStats();
5128
}
5229

5330
override async init() {
@@ -211,28 +188,28 @@ export abstract class MapViewerRenderer extends RendererMainLoop {
211188
override onFrameEnd(): void {
212189
super.onFrameEnd();
213190

214-
const frameTime = performance.now() - this.rendererStats.frameStart;
191+
const frameTime = performance.now() - this.getRendererStats().frameStart;
215192

216193
if (this.inputManager.isKeyDown("KeyH")) {
217194
this.mapViewer.debugText = `MapManager: ${this.getMapManagerTime().toFixed(2)}ms`;
218195
}
219196
if (this.inputManager.isKeyDown("KeyJ")) {
220-
this.mapViewer.debugText = `Interactions: ${this.rendererStats.interactionsTime.toFixed(2)}ms`;
197+
this.mapViewer.debugText = `Interactions: ${this.getRendererStats().interactionsTime.toFixed(2)}ms`;
221198
}
222199
if (this.inputManager.isKeyDown("KeyK")) {
223-
this.mapViewer.debugText = `Tick: ${this.tickTime.toFixed(2)}ms`;
200+
this.mapViewer.debugText = `Tick: ${this.getRendererStats().tickTime.toFixed(2)}ms`;
224201
}
225202
if (this.inputManager.isKeyDown("KeyL")) {
226-
this.mapViewer.debugText = `Opaque Pass: ${this.rendererStats.opaquePassTime.toFixed(2)}ms`;
203+
this.mapViewer.debugText = `Opaque Pass: ${this.getRendererStats().opaquePassTime.toFixed(2)}ms`;
227204
}
228205
if (this.inputManager.isKeyDown("KeyB")) {
229-
this.mapViewer.debugText = `Opaque Npc Pass: ${this.rendererStats.opaqueNpcPassTime.toFixed(2)}ms`;
206+
this.mapViewer.debugText = `Opaque Npc Pass: ${this.getRendererStats().opaqueNpcPassTime.toFixed(2)}ms`;
230207
}
231208
if (this.inputManager.isKeyDown("KeyN")) {
232-
this.mapViewer.debugText = `Transparent Pass: ${this.rendererStats.transparentPassTime.toFixed(2)}ms`;
209+
this.mapViewer.debugText = `Transparent Pass: ${this.getRendererStats().transparentPassTime.toFixed(2)}ms`;
233210
}
234211
if (this.inputManager.isKeyDown("KeyM")) {
235-
this.mapViewer.debugText = `Transparent Npc Pass: ${this.rendererStats.transparentNpcPassTime.toFixed(
212+
this.mapViewer.debugText = `Transparent Npc Pass: ${this.getRendererStats().transparentNpcPassTime.toFixed(
236213
2,
237214
)}ms`;
238215
}
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)