state( Start ),
last_state( Running ),
vis( 16000 ),
- _terra_sync(NULL)
+ _terra_sync(NULL),
+ _visibilityMeters(fgGetNode("/environment/visibility-m", true)),
+ _maxTileRangeM(fgGetNode("/sim/rendering/static-lod/bare", true))
{
- _maxTileRangeM = fgGetNode("/sim/rendering/static-lod/bare", true);
}
std::copy(sc.begin(), sc.end(), back_inserter(fp));
TileEntry::setModelLoadHelper(this);
-
- _visibilityMeters = fgGetNode("/environment/visibility-m", true);
reinit();
}
SGModelLib::loadModel(fullPath.str(), globals->get_props(),
new FGNasalModelData);
else
+ {
+ /* TODO FGNasalModelData's callback "modelLoaded" isn't thread-safe.
+ * But deferred (or paged) OSG loading runs in a separate thread, which would
+ * trigger the FGNasalModelData::modelLoaded callback. We're easily doomed
+ * when this happens and the model actually contains a Nasal "load" hook - which
+ * would run the Nasal parser and Nasal script execution in a separate thread...
+ * => Disabling the callback for now, to test if all Nasal related segfaults are
+ * gone. Proper resolution is TBD. We'll need to somehow decouple the OSG callback,
+ * so we can run the Nasal stuff in the main thread.
+ */
result=
- SGModelLib::loadDeferredModel(fullPath.str(), globals->get_props(),
- new FGNasalModelData);
+ SGModelLib::loadDeferredModel(fullPath.str(), globals->get_props()/*,
+ new FGNasalModelData*/);
+ }
} catch (const sg_io_exception& exc) {
string m(exc.getMessage());
m += " ";