mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-15 07:42:23 +00:00
Ask a parked Navara globe for no frames and guard parked engines in the switch gate
The Navara look stopped requesting frames once its globe is parked. scripts/qa-app-once.mjs now fails if anything moves a parked engine's camera or asks it to draw (its own resume aside).
This commit is contained in:
1 parent
40a81c58e6
commit
f2117a98f2
2 files changed
+59
-3
No files matched your search
@@ -114,6 +114,8 @@ export async function createNavaraGlobe({
|
||||
let look;
|
||||
let removeLook = null;
|
||||
let removePostSampling = null;
|
||||
// Parked for a switch back: its render loop is off (setRenderLoop).
|
||||
let parked = false;
|
||||
try {
|
||||
view = new ThreeView(navaraViewOptions({ container, canvas, pixelRatio }));
|
||||
const plugin = new DefaultPlugin();
|
||||
@@ -165,7 +167,9 @@ export async function createNavaraGlobe({
|
||||
camera.moveEnd.addEventListener(() => {
|
||||
moving = false;
|
||||
readGround();
|
||||
engine.render.request('navara-look');
|
||||
// A parked globe (setRenderLoop(false)) draws nothing: its camera
|
||||
// settling asks for no frame.
|
||||
if (!parked) engine.render.request('navara-look');
|
||||
}),
|
||||
// After the engine's camera sync: before the first frame the camera
|
||||
// has no position yet (camera.height() throws).
|
||||
@@ -188,7 +192,8 @@ export async function createNavaraGlobe({
|
||||
ground,
|
||||
placed ? lookPlace : null,
|
||||
landscape,
|
||||
)
|
||||
) &&
|
||||
!parked
|
||||
)
|
||||
engine.render.request('navara-look');
|
||||
}),
|
||||
@@ -219,7 +224,10 @@ export async function createNavaraGlobe({
|
||||
look.resetDaylight();
|
||||
engine.render.request('restored-daylight');
|
||||
},
|
||||
setRenderLoop: (enabled) => setRenderLoopEnabled(view, enabled),
|
||||
setRenderLoop: (enabled) => {
|
||||
parked = !enabled;
|
||||
setRenderLoopEnabled(view, enabled);
|
||||
},
|
||||
destroy() {
|
||||
if (destroyed) return;
|
||||
destroyed = true;
|
||||
|
||||
Reference in new issue
Block a user