Every Fulgora render an ordinary user sees is served by TypeScript, not the
engine. That does not break #227's deletion - no Fulgora module is in the dead
set - but it does mean #227's own done-when, "the deployed app renders all three
planets from WASM", is not met when the deletion lands.
Measured three ways
- The module serves three Fulgora views.
crates/fmw-wasm/src/render.rs's
supported match admits (PLANET_FULGORA, VIEW_LANDMASK | VIEW_TERRAIN | VIEW_SCRAP_FOOTPRINT).
- The dispatcher's Fulgora gate admits two of them.
src/noise/preview/elevationRenderRequest.ts routes to
renderFulgoraThroughWasm only for view === "landmask" || view === "terrain". Everything else falls to the TypeScript arm.
- The panel asks for neither.
ElevationPreviewPanel.vue's effectiveView
returns "all" for every non-dev-mode Fulgora request - ported is
["terrain", "all"] and the non-dev branch returns "all" unconditionally.
So the default path is view: "all", which is not in the gate, which means
renderFulgoraTerrain plus renderFulgoraResources in TypeScript. The engine is
reached only by the island finder (landmask) and by a dev-mode user who ticks
Terrain.
Why "all" is the gap rather than "resources"
Fulgora's "all" composite is terrain plus the scrap overlay. The module has
VIEW_SCRAP_FOOTPRINT, so both halves exist in Rust; what is missing is a code
that composites them the way VIEW_ALL does on Nauvis and Vulcanus. That looks
like the smallest change that closes this: give Fulgora a composite view code,
then widen the dispatcher's gate to "all".
Not a deletion hazard
Stated explicitly because it is easy to mistake for one. renderFulgoraTerrain,
renderFulgoraLandMask and renderFulgoraResources are all outside the dead
set, and so is their whole import closure - tiles/fulgoraCatalog.ts reaches
only expressions/fulgora* and touches none of the dead tiles/ modules. The
TypeScript Fulgora path keeps working after the deletion. It is simply the only
planet still doing so.
Found while auditing #227's phase 7. Filed separately because it is scope, not a
blocker.
Every Fulgora render an ordinary user sees is served by TypeScript, not the
engine. That does not break #227's deletion - no Fulgora module is in the dead
set - but it does mean #227's own done-when, "the deployed app renders all three
planets from WASM", is not met when the deletion lands.
Measured three ways
crates/fmw-wasm/src/render.rs'ssupportedmatch admits(PLANET_FULGORA, VIEW_LANDMASK | VIEW_TERRAIN | VIEW_SCRAP_FOOTPRINT).src/noise/preview/elevationRenderRequest.tsroutes torenderFulgoraThroughWasmonly forview === "landmask" || view === "terrain". Everything else falls to the TypeScript arm.ElevationPreviewPanel.vue'seffectiveViewreturns
"all"for every non-dev-mode Fulgora request -portedis["terrain", "all"]and the non-dev branch returns"all"unconditionally.So the default path is
view: "all", which is not in the gate, which meansrenderFulgoraTerrainplusrenderFulgoraResourcesin TypeScript. The engine isreached only by the island finder (
landmask) and by a dev-mode user who ticksTerrain.
Why "all" is the gap rather than "resources"
Fulgora's
"all"composite is terrain plus the scrap overlay. The module hasVIEW_SCRAP_FOOTPRINT, so both halves exist in Rust; what is missing is a codethat composites them the way
VIEW_ALLdoes on Nauvis and Vulcanus. That lookslike the smallest change that closes this: give Fulgora a composite view code,
then widen the dispatcher's gate to
"all".Not a deletion hazard
Stated explicitly because it is easy to mistake for one.
renderFulgoraTerrain,renderFulgoraLandMaskandrenderFulgoraResourcesare all outside the deadset, and so is their whole import closure -
tiles/fulgoraCatalog.tsreachesonly
expressions/fulgora*and touches none of the deadtiles/modules. TheTypeScript Fulgora path keeps working after the deletion. It is simply the only
planet still doing so.
Found while auditing #227's phase 7. Filed separately because it is scope, not a
blocker.