X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FScenery%2Ftilemgr.cxx;h=4ebce444cabacd8aac80694a2264e70b42bb0ac2;hb=578df0f4845f565592663f86ea690fc5e96a14a4;hp=363ea858b7a16c1ccac9a3096f0589bfcf12eec6;hpb=42fb9b8e9f95b1f3a0b9b1c45b6b02c62bb588ed;p=flightgear.git diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index 363ea858b..4ebce444c 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -57,10 +57,12 @@ using simgear::TileCache; FGTileMgr::FGTileMgr(): 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); } @@ -88,8 +90,6 @@ void FGTileMgr::init() { std::copy(sc.begin(), sc.end(), back_inserter(fp)); TileEntry::setModelLoadHelper(this); - - _visibilityMeters = fgGetNode("/environment/visibility-m", true); reinit(); } @@ -244,11 +244,13 @@ FGTileMgr::loadTileModel(const string& modelPath, bool cacheModel) if(cacheModel) result = SGModelLib::loadModel(fullPath.str(), globals->get_props(), - new FGNasalModelData); + _disableNasalHooks->getBoolValue() ? NULL : new FGNasalModelDataProxy); else + { result= SGModelLib::loadDeferredModel(fullPath.str(), globals->get_props(), - new FGNasalModelData); + _disableNasalHooks->getBoolValue() ? NULL : new FGNasalModelDataProxy); + } } catch (const sg_io_exception& exc) { string m(exc.getMessage()); m += " "; @@ -341,7 +343,6 @@ void FGTileMgr::update_queues() // disk. void FGTileMgr::update(double) { - SG_LOG( SG_TERRAIN, SG_DEBUG, "FGTileMgr::update()" ); SGVec3d viewPos = globals->get_current_view()->get_view_pos(); double vis = _visibilityMeters->getDoubleValue(); schedule_tiles_at(SGGeod::fromCart(viewPos), vis); @@ -373,7 +374,10 @@ int FGTileMgr::schedule_tiles_at(const SGGeod& location, double range_m) // do tile load scheduling. // Note that we need keep track of both viewer buckets and fdm buckets. if ( state == Running ) { - SG_LOG( SG_TERRAIN, SG_DEBUG, "State == Running" ); + if (last_state != state) + { + SG_LOG( SG_TERRAIN, SG_DEBUG, "State == Running" ); + } if (current_bucket != previous_bucket) { // We've moved to a new bucket, we need to schedule any // needed tiles for loading. @@ -386,11 +390,12 @@ int FGTileMgr::schedule_tiles_at(const SGGeod& location, double range_m) // save bucket previous_bucket = current_bucket; } else if ( state == Start || state == Inited ) { - SG_LOG( SG_TERRAIN, SG_INFO, "State == Start || Inited" ); + SG_LOG( SG_TERRAIN, SG_DEBUG, "State == Start || Inited" ); // do not update bucket yet (position not valid in initial loop) state = Running; previous_bucket.make_bad(); } + last_state = state; return 1; }