@oyna360/lobby-sdk 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +123 -0
- package/dist/avatar-accessories.d.ts +16 -0
- package/dist/avatar-accessories.d.ts.map +1 -0
- package/dist/avatar-accessories.js +214 -0
- package/dist/avatar-accessories.js.map +1 -0
- package/dist/avatar-asset-manager.d.ts +54 -0
- package/dist/avatar-asset-manager.d.ts.map +1 -0
- package/dist/avatar-asset-manager.js +215 -0
- package/dist/avatar-asset-manager.js.map +1 -0
- package/dist/avatar-clips.d.ts +17 -0
- package/dist/avatar-clips.d.ts.map +1 -0
- package/dist/avatar-clips.js +47 -0
- package/dist/avatar-clips.js.map +1 -0
- package/dist/avatar-config.d.ts +4 -0
- package/dist/avatar-config.d.ts.map +1 -0
- package/dist/avatar-config.js +9 -0
- package/dist/avatar-config.js.map +1 -0
- package/dist/avatar-factory.d.ts +64 -0
- package/dist/avatar-factory.d.ts.map +1 -0
- package/dist/avatar-factory.js +464 -0
- package/dist/avatar-factory.js.map +1 -0
- package/dist/avatar-instance.d.ts +31 -0
- package/dist/avatar-instance.d.ts.map +1 -0
- package/dist/avatar-instance.js +56 -0
- package/dist/avatar-instance.js.map +1 -0
- package/dist/avatar-material-pipeline.d.ts +34 -0
- package/dist/avatar-material-pipeline.d.ts.map +1 -0
- package/dist/avatar-material-pipeline.js +580 -0
- package/dist/avatar-material-pipeline.js.map +1 -0
- package/dist/avatar-rig-builder.d.ts +74 -0
- package/dist/avatar-rig-builder.d.ts.map +1 -0
- package/dist/avatar-rig-builder.js +347 -0
- package/dist/avatar-rig-builder.js.map +1 -0
- package/dist/draco.d.ts +7 -0
- package/dist/draco.d.ts.map +1 -0
- package/dist/draco.js +82 -0
- package/dist/draco.js.map +1 -0
- package/dist/humanoid-animator.d.ts +35 -0
- package/dist/humanoid-animator.d.ts.map +1 -0
- package/dist/humanoid-animator.js +191 -0
- package/dist/humanoid-animator.js.map +1 -0
- package/dist/humanoid-bone-names.d.ts +35 -0
- package/dist/humanoid-bone-names.d.ts.map +1 -0
- package/dist/humanoid-bone-names.js +126 -0
- package/dist/humanoid-bone-names.js.map +1 -0
- package/dist/humanoid-locomotion.d.ts +101 -0
- package/dist/humanoid-locomotion.d.ts.map +1 -0
- package/dist/humanoid-locomotion.js +300 -0
- package/dist/humanoid-locomotion.js.map +1 -0
- package/dist/humanoid-rig.d.ts +51 -0
- package/dist/humanoid-rig.d.ts.map +1 -0
- package/dist/humanoid-rig.js +304 -0
- package/dist/humanoid-rig.js.map +1 -0
- package/dist/index.d.ts +60 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/lobby-chat-ui.d.ts +3 -0
- package/dist/lobby-chat-ui.d.ts.map +1 -0
- package/dist/lobby-chat-ui.js +258 -0
- package/dist/lobby-chat-ui.js.map +1 -0
- package/dist/lobby-colliders.d.ts +10 -0
- package/dist/lobby-colliders.d.ts.map +1 -0
- package/dist/lobby-colliders.js +225 -0
- package/dist/lobby-colliders.js.map +1 -0
- package/dist/lobby-connection-ui.d.ts +8 -0
- package/dist/lobby-connection-ui.d.ts.map +1 -0
- package/dist/lobby-connection-ui.js +68 -0
- package/dist/lobby-connection-ui.js.map +1 -0
- package/dist/lobby-debug.d.ts +50 -0
- package/dist/lobby-debug.d.ts.map +1 -0
- package/dist/lobby-debug.js +132 -0
- package/dist/lobby-debug.js.map +1 -0
- package/dist/lobby-font.d.ts +5 -0
- package/dist/lobby-font.d.ts.map +1 -0
- package/dist/lobby-font.js +35 -0
- package/dist/lobby-font.js.map +1 -0
- package/dist/lobby-music.d.ts +40 -0
- package/dist/lobby-music.d.ts.map +1 -0
- package/dist/lobby-music.js +250 -0
- package/dist/lobby-music.js.map +1 -0
- package/dist/lobby-orientation-ui.d.ts +10 -0
- package/dist/lobby-orientation-ui.d.ts.map +1 -0
- package/dist/lobby-orientation-ui.js +64 -0
- package/dist/lobby-orientation-ui.js.map +1 -0
- package/dist/lobby-perf-diag.d.ts +254 -0
- package/dist/lobby-perf-diag.d.ts.map +1 -0
- package/dist/lobby-perf-diag.js +775 -0
- package/dist/lobby-perf-diag.js.map +1 -0
- package/dist/lobby-plaza-diag.d.ts +103 -0
- package/dist/lobby-plaza-diag.d.ts.map +1 -0
- package/dist/lobby-plaza-diag.js +534 -0
- package/dist/lobby-plaza-diag.js.map +1 -0
- package/dist/lobby-presence-ui.d.ts +4 -0
- package/dist/lobby-presence-ui.d.ts.map +1 -0
- package/dist/lobby-presence-ui.js +89 -0
- package/dist/lobby-presence-ui.js.map +1 -0
- package/dist/lobby-real-device-diag.d.ts +119 -0
- package/dist/lobby-real-device-diag.d.ts.map +1 -0
- package/dist/lobby-real-device-diag.js +468 -0
- package/dist/lobby-real-device-diag.js.map +1 -0
- package/dist/lobby-spawn.d.ts +15 -0
- package/dist/lobby-spawn.d.ts.map +1 -0
- package/dist/lobby-spawn.js +18 -0
- package/dist/lobby-spawn.js.map +1 -0
- package/dist/lobby-ui-i18n.d.ts +11 -0
- package/dist/lobby-ui-i18n.d.ts.map +1 -0
- package/dist/lobby-ui-i18n.js +21 -0
- package/dist/lobby-ui-i18n.js.map +1 -0
- package/dist/lobby-voice-ui.d.ts +3 -0
- package/dist/lobby-voice-ui.d.ts.map +1 -0
- package/dist/lobby-voice-ui.js +105 -0
- package/dist/lobby-voice-ui.js.map +1 -0
- package/dist/local-player-controller.d.ts +80 -0
- package/dist/local-player-controller.d.ts.map +1 -0
- package/dist/local-player-controller.js +422 -0
- package/dist/local-player-controller.js.map +1 -0
- package/dist/name-tag.d.ts +3 -0
- package/dist/name-tag.d.ts.map +1 -0
- package/dist/name-tag.js +59 -0
- package/dist/name-tag.js.map +1 -0
- package/dist/network-client.d.ts +87 -0
- package/dist/network-client.d.ts.map +1 -0
- package/dist/network-client.js +182 -0
- package/dist/network-client.js.map +1 -0
- package/dist/platform-bridge.d.ts +17 -0
- package/dist/platform-bridge.d.ts.map +1 -0
- package/dist/platform-bridge.js +90 -0
- package/dist/platform-bridge.js.map +1 -0
- package/dist/platform-lobby.d.ts +176 -0
- package/dist/platform-lobby.d.ts.map +1 -0
- package/dist/platform-lobby.js +679 -0
- package/dist/platform-lobby.js.map +1 -0
- package/dist/platform-types.d.ts +56 -0
- package/dist/platform-types.d.ts.map +1 -0
- package/dist/platform-types.js +3 -0
- package/dist/platform-types.js.map +1 -0
- package/dist/player-label.d.ts +9 -0
- package/dist/player-label.d.ts.map +1 -0
- package/dist/player-label.js +14 -0
- package/dist/player-label.js.map +1 -0
- package/dist/playground/playground-layout.d.ts +14 -0
- package/dist/playground/playground-layout.d.ts.map +1 -0
- package/dist/playground/playground-layout.js +320 -0
- package/dist/playground/playground-layout.js.map +1 -0
- package/dist/playground/playground-system.d.ts +30 -0
- package/dist/playground/playground-system.d.ts.map +1 -0
- package/dist/playground/playground-system.js +202 -0
- package/dist/playground/playground-system.js.map +1 -0
- package/dist/plaza-layout.d.ts +30 -0
- package/dist/plaza-layout.d.ts.map +1 -0
- package/dist/plaza-layout.js +527 -0
- package/dist/plaza-layout.js.map +1 -0
- package/dist/plugins.d.ts +5 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +26 -0
- package/dist/plugins.js.map +1 -0
- package/dist/protocol.d.ts +276 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +107 -0
- package/dist/protocol.js.map +1 -0
- package/dist/quality.d.ts +39 -0
- package/dist/quality.d.ts.map +1 -0
- package/dist/quality.js +95 -0
- package/dist/quality.js.map +1 -0
- package/dist/remote-player-manager.d.ts +48 -0
- package/dist/remote-player-manager.d.ts.map +1 -0
- package/dist/remote-player-manager.js +339 -0
- package/dist/remote-player-manager.js.map +1 -0
- package/dist/scene-manager.d.ts +26 -0
- package/dist/scene-manager.d.ts.map +1 -0
- package/dist/scene-manager.js +169 -0
- package/dist/scene-manager.js.map +1 -0
- package/dist/spawn-utils.d.ts +8 -0
- package/dist/spawn-utils.d.ts.map +1 -0
- package/dist/spawn-utils.js +29 -0
- package/dist/spawn-utils.js.map +1 -0
- package/dist/starter-layout.d.ts +17 -0
- package/dist/starter-layout.d.ts.map +1 -0
- package/dist/starter-layout.js +102 -0
- package/dist/starter-layout.js.map +1 -0
- package/dist/third-person-camera.d.ts +35 -0
- package/dist/third-person-camera.d.ts.map +1 -0
- package/dist/third-person-camera.js +181 -0
- package/dist/third-person-camera.js.map +1 -0
- package/dist/types.d.ts +164 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/voice-chat.d.ts +78 -0
- package/dist/voice-chat.d.ts.map +1 -0
- package/dist/voice-chat.js +321 -0
- package/dist/voice-chat.js.map +1 -0
- package/dist/yield-to-render.d.ts +3 -0
- package/dist/yield-to-render.d.ts.map +1 -0
- package/dist/yield-to-render.js +11 -0
- package/dist/yield-to-render.js.map +1 -0
- package/dist/zones.d.ts +36 -0
- package/dist/zones.d.ts.map +1 -0
- package/dist/zones.js +68 -0
- package/dist/zones.js.map +1 -0
- package/docs/00-overview.md +47 -0
- package/docs/01-connect.md +85 -0
- package/docs/02-github.md +43 -0
- package/docs/03-modes.md +70 -0
- package/docs/04-api.md +106 -0
- package/docs/05-features.md +55 -0
- package/docs/06-controls.md +34 -0
- package/docs/07-troubleshooting.md +39 -0
- package/package.json +65 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lobby performance diagnostic — measurement only.
|
|
3
|
+
* Does not change default render/avatar behavior unless a toggle is explicitly invoked.
|
|
4
|
+
*/
|
|
5
|
+
import type { Engine, Scene } from '@babylonjs/core';
|
|
6
|
+
export type LobbyPerfPhase = 'draco_ensure' | 'glb_container_load' | 'glb_instantiate' | 'harden_materials' | 'humanoid_bind' | 'accessories' | 'albedo_tint' | 'createAsync_total' | 'remote_spawn_total' | 'remote_placeholder' | 'remote_yield' | 'remote_update' | 'local_update' | 'frame_logic' | 'scene_render' | 'gpu_frame_time';
|
|
7
|
+
export interface LobbyPerfPhaseStat {
|
|
8
|
+
count: number;
|
|
9
|
+
totalMs: number;
|
|
10
|
+
maxMs: number;
|
|
11
|
+
lastMs: number;
|
|
12
|
+
}
|
|
13
|
+
export interface LobbyPerfPhaseDist extends LobbyPerfPhaseStat {
|
|
14
|
+
avgMs: number;
|
|
15
|
+
p50Ms: number;
|
|
16
|
+
p95Ms: number;
|
|
17
|
+
p99Ms: number;
|
|
18
|
+
}
|
|
19
|
+
export interface LobbyPerfSnapshot {
|
|
20
|
+
at: string;
|
|
21
|
+
label: string;
|
|
22
|
+
fps: number;
|
|
23
|
+
frameTimeMs: number;
|
|
24
|
+
avgFrameTimeMs: number;
|
|
25
|
+
p50FrameTimeMs: number;
|
|
26
|
+
p95FrameTimeMs: number;
|
|
27
|
+
p99FrameTimeMs: number;
|
|
28
|
+
maxFrameTimeMs: number;
|
|
29
|
+
drawCallsApprox: number;
|
|
30
|
+
meshCount: number;
|
|
31
|
+
activeMeshCount: number;
|
|
32
|
+
alwaysSelectCount: number;
|
|
33
|
+
doubleSidedCount: number;
|
|
34
|
+
skinnedMeshCount: number;
|
|
35
|
+
skeletonCount: number;
|
|
36
|
+
boneCount: number;
|
|
37
|
+
materialCount: number;
|
|
38
|
+
uniqueMaterialIds: number;
|
|
39
|
+
textureCount: number;
|
|
40
|
+
triangleApprox: number;
|
|
41
|
+
vertexApprox: number;
|
|
42
|
+
lobbyAvatarRoots: number;
|
|
43
|
+
remotePlayers: number;
|
|
44
|
+
disableUniformBuffers: boolean;
|
|
45
|
+
bloomEnabled: boolean | null;
|
|
46
|
+
glowIntensity: number | null;
|
|
47
|
+
memory: LobbyPerfMemoryInfo;
|
|
48
|
+
phases: Record<string, LobbyPerfPhaseStat>;
|
|
49
|
+
phaseDist: Record<string, LobbyPerfPhaseDist>;
|
|
50
|
+
recentMarks: Array<{
|
|
51
|
+
phase: string;
|
|
52
|
+
ms: number;
|
|
53
|
+
detail?: string;
|
|
54
|
+
at: number;
|
|
55
|
+
}>;
|
|
56
|
+
/** Per-root avatar cost (local + remotes). */
|
|
57
|
+
avatarCosts: LobbyPerfAvatarCost[];
|
|
58
|
+
/** Metrics Babylon/WebGL cannot expose in this build. */
|
|
59
|
+
unavailable: string[];
|
|
60
|
+
}
|
|
61
|
+
export interface LobbyPerfSampleSeries {
|
|
62
|
+
label: string;
|
|
63
|
+
durationMs: number;
|
|
64
|
+
samples: number;
|
|
65
|
+
avgFps: number;
|
|
66
|
+
minFps: number;
|
|
67
|
+
maxFps: number;
|
|
68
|
+
avgFrameTimeMs: number;
|
|
69
|
+
p50FrameTimeMs: number;
|
|
70
|
+
p95FrameTimeMs: number;
|
|
71
|
+
p99FrameTimeMs: number;
|
|
72
|
+
maxFrameTimeMs: number;
|
|
73
|
+
avgDrawCalls: number;
|
|
74
|
+
avgActiveMeshes: number;
|
|
75
|
+
avgSkinnedMeshes: number;
|
|
76
|
+
phaseDist: Record<string, LobbyPerfPhaseDist>;
|
|
77
|
+
memory: LobbyPerfMemoryInfo;
|
|
78
|
+
snapshot: LobbyPerfSnapshot;
|
|
79
|
+
}
|
|
80
|
+
export interface LobbyPerfMemoryInfo {
|
|
81
|
+
available: boolean;
|
|
82
|
+
note?: string;
|
|
83
|
+
usedJSHeapBytes?: number;
|
|
84
|
+
totalJSHeapBytes?: number;
|
|
85
|
+
jsHeapLimitBytes?: number;
|
|
86
|
+
}
|
|
87
|
+
export interface LobbyPerfAvatarCost {
|
|
88
|
+
name: string;
|
|
89
|
+
kind: 'local' | 'remote' | 'other';
|
|
90
|
+
meshCount: number;
|
|
91
|
+
skinnedMeshCount: number;
|
|
92
|
+
skeletonCount: number;
|
|
93
|
+
boneCount: number;
|
|
94
|
+
materialCount: number;
|
|
95
|
+
textureCount: number;
|
|
96
|
+
animationGroupCount: number;
|
|
97
|
+
vertexCount: number;
|
|
98
|
+
triangleCount: number;
|
|
99
|
+
alwaysSelectCount: number;
|
|
100
|
+
doubleSidedCount: number;
|
|
101
|
+
rigidGlb: boolean;
|
|
102
|
+
boneDriven: boolean;
|
|
103
|
+
}
|
|
104
|
+
type MarkRec = {
|
|
105
|
+
phase: string;
|
|
106
|
+
ms: number;
|
|
107
|
+
detail?: string;
|
|
108
|
+
at: number;
|
|
109
|
+
};
|
|
110
|
+
export declare function isLobbyPerfDiagEnabled(): boolean;
|
|
111
|
+
export declare function setLobbyPerfDiagEnabled(on: boolean): void;
|
|
112
|
+
export declare function resetLobbyPerfDiag(opts?: {
|
|
113
|
+
keepPhases?: boolean;
|
|
114
|
+
}): void;
|
|
115
|
+
/** Time a sync/async section when diag is enabled. Zero overhead when disabled. */
|
|
116
|
+
export declare function lobbyPerfTimeAsync<T>(phase: LobbyPerfPhase | string, fn: () => Promise<T>, detail?: string): Promise<T>;
|
|
117
|
+
export declare function lobbyPerfTimeSync<T>(phase: LobbyPerfPhase | string, fn: () => T, detail?: string): T;
|
|
118
|
+
export declare function lobbyPerfMark(phase: LobbyPerfPhase | string, ms: number, detail?: string): void;
|
|
119
|
+
export declare function lobbyPerfNoteRemoteUpdate(ms: number): void;
|
|
120
|
+
export declare function lobbyPerfNoteLocalUpdate(ms: number): void;
|
|
121
|
+
export declare function lobbyPerfBeginFrame(): void;
|
|
122
|
+
export declare function lobbyPerfEndFrame(engine: Engine, scene: Scene): void;
|
|
123
|
+
export declare function captureLobbyPerfMemory(): LobbyPerfMemoryInfo;
|
|
124
|
+
export declare function collectLobbyAvatarCosts(scene: Scene): LobbyPerfAvatarCost[];
|
|
125
|
+
export declare function captureLobbyPerfSnapshot(scene: Scene, engine: Engine, label?: string): LobbyPerfSnapshot;
|
|
126
|
+
/** Sample FPS/frame metrics for durationMs while the render loop runs. */
|
|
127
|
+
export declare function sampleLobbyPerf(scene: Scene, engine: Engine, label: string, durationMs?: number, intervalMs?: number): Promise<LobbyPerfSampleSeries>;
|
|
128
|
+
/** Temporary toggle for measurement — does not change spawn defaults. */
|
|
129
|
+
export declare function diagSetAlwaysSelectAsActiveMesh(scene: Scene, on: boolean): number;
|
|
130
|
+
/**
|
|
131
|
+
* Temporary DoubleSide / backFaceCulling toggle for lobby avatar meshes only.
|
|
132
|
+
* Baseline project default is DoubleSide ON + backFaceCulling false — restore after A/B.
|
|
133
|
+
* Does not change MaterialPipeline spawn behavior.
|
|
134
|
+
*/
|
|
135
|
+
export declare function diagSetAvatarDoubleSide(scene: Scene, on: boolean): number;
|
|
136
|
+
/** Temporary toggle for measurement — does not change SceneManager defaults. */
|
|
137
|
+
export declare function diagSetDisableUniformBuffers(engine: Engine, on: boolean): boolean;
|
|
138
|
+
/** Non-sensitive WebGL/caps snapshot for render reports. */
|
|
139
|
+
export declare function captureWebGlInfo(engine: Engine): {
|
|
140
|
+
webglVersion: string | null;
|
|
141
|
+
renderer: string | null;
|
|
142
|
+
vendor: string | null;
|
|
143
|
+
maxTextureSize: number | null;
|
|
144
|
+
maxVertexTextureImageUnits: number | null;
|
|
145
|
+
parallelShaderCompile: boolean | null;
|
|
146
|
+
gpuFrameTimerAvailable: boolean;
|
|
147
|
+
note: string;
|
|
148
|
+
};
|
|
149
|
+
export interface AvatarRenderCostSummary {
|
|
150
|
+
label: string;
|
|
151
|
+
skinnedAvatarCount: number;
|
|
152
|
+
skinnedMeshCount: number;
|
|
153
|
+
skeletonCount: number;
|
|
154
|
+
boneCount: number;
|
|
155
|
+
triangleCount: number;
|
|
156
|
+
vertexCount: number;
|
|
157
|
+
materialCount: number;
|
|
158
|
+
textureCount: number;
|
|
159
|
+
alwaysSelectCount: number;
|
|
160
|
+
doubleSidedCount: number;
|
|
161
|
+
animationGroupCount: number;
|
|
162
|
+
/** Scene-wide (includes plaza); useful context, not avatar-only. */
|
|
163
|
+
sceneActiveMeshCount: number;
|
|
164
|
+
sceneDrawCallsApprox: number;
|
|
165
|
+
sceneTriangleApprox: number;
|
|
166
|
+
sceneVertexApprox: number;
|
|
167
|
+
sceneMaterialCount: number;
|
|
168
|
+
sceneTextureCount: number;
|
|
169
|
+
sceneSkeletonCount: number;
|
|
170
|
+
sceneBoneCount: number;
|
|
171
|
+
avatars: LobbyPerfAvatarCost[];
|
|
172
|
+
}
|
|
173
|
+
/** Avatar-only costs (excludes plaza NPCs / props). */
|
|
174
|
+
export declare function summarizeAvatarRenderCosts(scene: Scene, label?: string): AvatarRenderCostSummary;
|
|
175
|
+
export interface AvatarRenderSample {
|
|
176
|
+
label: string;
|
|
177
|
+
durationMs: number;
|
|
178
|
+
avatarCosts: AvatarRenderCostSummary;
|
|
179
|
+
series: LobbyPerfSampleSeries;
|
|
180
|
+
phases: {
|
|
181
|
+
scene_render: LobbyPerfPhaseDist | null;
|
|
182
|
+
remote_update: LobbyPerfPhaseDist | null;
|
|
183
|
+
local_update: LobbyPerfPhaseDist | null;
|
|
184
|
+
frame_logic: LobbyPerfPhaseDist | null;
|
|
185
|
+
};
|
|
186
|
+
webgl: ReturnType<typeof captureWebGlInfo>;
|
|
187
|
+
toggles: {
|
|
188
|
+
alwaysSelectAsActiveMesh: boolean;
|
|
189
|
+
doubleSide: boolean;
|
|
190
|
+
disableUniformBuffers: boolean;
|
|
191
|
+
};
|
|
192
|
+
unavailable: string[];
|
|
193
|
+
}
|
|
194
|
+
/** Sample while render loop runs; focuses report on avatar render cost. */
|
|
195
|
+
export declare function sampleAvatarRender(scene: Scene, engine: Engine, label: string, durationMs?: number): Promise<AvatarRenderSample>;
|
|
196
|
+
export declare function getLobbyPerfPhaseSummary(): {
|
|
197
|
+
phases: Record<string, LobbyPerfPhaseDist>;
|
|
198
|
+
remoteUpdateAvgMs: number;
|
|
199
|
+
localUpdateAvgMs: number;
|
|
200
|
+
remoteUpdateCount: number;
|
|
201
|
+
localUpdateCount: number;
|
|
202
|
+
recentMarks: MarkRec[];
|
|
203
|
+
};
|
|
204
|
+
/** Build a structured spawn-timeline view from recent marks (measurement only). */
|
|
205
|
+
export declare function extractSpawnTimelineFromMarks(marks?: MarkRec[]): Record<string, {
|
|
206
|
+
ms: number;
|
|
207
|
+
detail?: string;
|
|
208
|
+
at: number;
|
|
209
|
+
}[]>;
|
|
210
|
+
export interface LobbyPerfDiagHandle {
|
|
211
|
+
enable: (on?: boolean) => void;
|
|
212
|
+
disable: () => void;
|
|
213
|
+
reset: (opts?: {
|
|
214
|
+
keepPhases?: boolean;
|
|
215
|
+
}) => void;
|
|
216
|
+
snapshot: (label?: string) => LobbyPerfSnapshot;
|
|
217
|
+
sample: (label: string, durationMs?: number) => Promise<LobbyPerfSampleSeries>;
|
|
218
|
+
phases: () => ReturnType<typeof getLobbyPerfPhaseSummary>;
|
|
219
|
+
report: (label?: string) => {
|
|
220
|
+
snapshot: LobbyPerfSnapshot;
|
|
221
|
+
phases: ReturnType<typeof getLobbyPerfPhaseSummary>;
|
|
222
|
+
spawnTimeline: ReturnType<typeof extractSpawnTimelineFromMarks>;
|
|
223
|
+
memory: LobbyPerfMemoryInfo;
|
|
224
|
+
};
|
|
225
|
+
memory: () => LobbyPerfMemoryInfo;
|
|
226
|
+
avatarCosts: () => LobbyPerfAvatarCost[];
|
|
227
|
+
/** Additive Phase-7 APIs */
|
|
228
|
+
avatarRenderCosts: (label?: string) => AvatarRenderCostSummary;
|
|
229
|
+
sampleAvatarRender: (label: string, durationMs?: number) => Promise<AvatarRenderSample>;
|
|
230
|
+
webglInfo: () => ReturnType<typeof captureWebGlInfo>;
|
|
231
|
+
/** Temporary A/B — restore after measuring. */
|
|
232
|
+
setAlwaysSelectAsActiveMesh: (on: boolean) => number;
|
|
233
|
+
setAvatarDoubleSide: (on: boolean) => number;
|
|
234
|
+
setDisableUniformBuffers: (on: boolean) => boolean;
|
|
235
|
+
getToggles: () => {
|
|
236
|
+
alwaysSelectCount: number;
|
|
237
|
+
doubleSideCount: number;
|
|
238
|
+
disableUniformBuffers: boolean;
|
|
239
|
+
};
|
|
240
|
+
/** Phase-8 additive real-device helpers (attached by PlatformLobby). */
|
|
241
|
+
deviceInfo?: () => import('./lobby-real-device-diag').RealDeviceInfo;
|
|
242
|
+
runRealDeviceSuite?: (options?: import('./lobby-real-device-diag').RealDeviceSuiteOptions) => Promise<import('./lobby-real-device-diag').RealDeviceAvatarReport>;
|
|
243
|
+
/** Phase-10 plaza isolation helpers (attached by PlatformLobby). */
|
|
244
|
+
plazaInventory?: () => import('./lobby-plaza-diag').PlazaSubsystemInventory[];
|
|
245
|
+
runPlazaSuite?: (options?: import('./lobby-plaza-diag').PlazaDiagSuiteOptions) => Promise<import('./lobby-plaza-diag').PlazaDiagReport>;
|
|
246
|
+
}
|
|
247
|
+
export declare function attachLobbyPerfDiag(getScene: () => Scene, getEngine: () => Engine, win?: Window): LobbyPerfDiagHandle;
|
|
248
|
+
declare global {
|
|
249
|
+
interface Window {
|
|
250
|
+
__OYNA360_LOBBY_PERF__?: LobbyPerfDiagHandle;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
export {};
|
|
254
|
+
//# sourceMappingURL=lobby-perf-diag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lobby-perf-diag.d.ts","sourceRoot":"","sources":["../src/lobby-perf-diag.ts"],"names":[],"mappings":"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"}
|