refactor(overlays): use the globe engine

The world overlay host takes its frames (frames.postRender), camera events
(camera.moveEnd), canvas size (host.size), projection matrix
(projector.viewProjection), horizon test (projector.horizonVisible) and
render requests (render.request('world-overlay')) from the globe engine.
initWorldOverlay accepts an engine or, for callers that still hold a
viewer, resolves the viewer's engine through engineFromViewer.

Contract: camera.position(result) becomes camera.livePosition, one
engine-owned object holding the current position, so per-frame readers
and paint lanes keep a live camera position without allocating; engine
events gain raiseValue for argument-list-free frame dispatch. Steady-state
frame allocation is unchanged (worker probe, 30 chunks: 2696/9536/38593
B/frame before and after; detection 473749 -> 408085).
This commit is contained in:
German Khokhlov committed 2026-10-15 18:32:40 +04:00
1 parent 58a196374f
commit aaa6074663
11 files changed
+284 -134

No files matched your search

+45 -1
View File
@@ -550,6 +550,7 @@
"ui-shell": {
"exports": ["./ui/shell"],
"modules": [
"src/globe/contract.js",
"src/hudLayouts.js",
"src/hudLayoutPolicy.js",
"src/cyberSonar.js",
@@ -2528,6 +2529,27 @@
"application-layer-construction": {
"exports": ["./application/layers"],
"modules": [
"src/globe/cesium/engineFromViewer.js",
"src/globe/cesium/createCesiumEngine.js",
"src/globe/cesium/maps.js",
"src/maps/terrain.js",
"src/maps/terrainRetry.js",
"src/maps/sceneApply.js",
"src/maps/credits.js",
"src/globe/cesium/surface.js",
"src/maps/imagery.js",
"src/services/groundSnap.js",
"src/maps/google3d.js",
"src/globe/cesium/input.js",
"src/globe/cesium/convert.js",
"src/globe/cesium/camera.js",
"src/globe/cesium/frames.js",
"src/globe/cesium/picker.js",
"src/globe/cesium/events.js",
"src/globe/cesium/render.js",
"src/globe/cesium/projector.js",
"src/globe/cesium/credits.js",
"src/globe/contract.js",
"src/cyberSonar.js",
"src/data/bhoteKoshiEvent.js",
"src/ui/imagerySplit.js",
@@ -3064,6 +3086,8 @@
"application-operations": {
"exports": ["./application/operations"],
"modules": [
"src/services/groundSnap.js",
"src/globe/contract.js",
"src/annotations/annotationResolver.js",
"src/annotations/resolver.js",
"src/app/operations.js",
@@ -3095,7 +3119,6 @@
"src/search/placeSearch.js",
"src/services/application.js",
"src/services/groundFloor.js",
"src/services/groundSnap.js",
"src/services/meshFloorSampler.js",
"src/services/requests.js",
"src/services/terrainHeights.js",
@@ -3508,6 +3531,27 @@
"transit-standalone": {
"exports": ["./layers/transit/standalone"],
"modules": [
"src/globe/cesium/events.js",
"src/globe/cesium/picker.js",
"src/globe/cesium/frames.js",
"src/globe/cesium/camera.js",
"src/globe/cesium/convert.js",
"src/globe/cesium/input.js",
"src/maps/google3d.js",
"src/services/groundSnap.js",
"src/maps/imagery.js",
"src/globe/cesium/surface.js",
"src/maps/credits.js",
"src/maps/sceneApply.js",
"src/maps/terrainRetry.js",
"src/maps/terrain.js",
"src/globe/cesium/maps.js",
"src/globe/cesium/createCesiumEngine.js",
"src/globe/cesium/engineFromViewer.js",
"src/globe/cesium/projector.js",
"src/globe/cesium/render.js",
"src/globe/cesium/credits.js",
"src/globe/contract.js",
"src/cyberSonar.js",
"src/app/sourceSlot.js",
"src/celestialRing.js",