X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FScenery%2FFGTileLoader.cxx;h=3bbe26521f994e9a27932f5885287540ff890c84;hb=56592f3869c41e4f189e9ab44abb1a0898c90f4b;hp=8f04c78c8a7fb106011a0637d87ee78025d79fc1;hpb=34854ab2afaeca05e6949755b8d65e991c77675f;p=flightgear.git diff --git a/src/Scenery/FGTileLoader.cxx b/src/Scenery/FGTileLoader.cxx index 8f04c78c8..3bbe26521 100644 --- a/src/Scenery/FGTileLoader.cxx +++ b/src/Scenery/FGTileLoader.cxx @@ -24,6 +24,8 @@ # include #endif +#include + #include
#include "FGTileLoader.hxx" #include "tileentry.hxx" @@ -64,6 +66,19 @@ FGTileLoader::~FGTileLoader() #endif // ENABLE_THREADS } + +#if 0 // we don't ever want to do this I don't think +/** + * + */ +void FGTileLoader::reinit() { + while ( !tile_load_queue.empty() ) { + tile_load_queue.pop(); + } +} +#endif + + /** * */ @@ -77,7 +92,7 @@ FGTileLoader::add( FGTileEntry* tile ) static bool beenhere = false; if (!beenhere) { - if ( globals->get_fg_scenery() != (string)"" ) { + if ( !globals->get_fg_scenery().empty() ) { tile_path.set( globals->get_fg_scenery() ); } else { tile_path.set( globals->get_fg_root() ); @@ -89,6 +104,7 @@ FGTileLoader::add( FGTileEntry* tile ) tile_load_queue.push( tile ); } +#ifdef WISH_PLIB_WAS_THREADED // but it isn't /** * */ @@ -97,6 +113,7 @@ FGTileLoader::remove( FGTileEntry* tile ) { tile_free_queue.push( tile ); } +#endif /** * @@ -104,6 +121,7 @@ FGTileLoader::remove( FGTileEntry* tile ) void FGTileLoader::update() { + #ifdef ENABLE_THREADS // send a signal to the pager thread that it is allowed to load // another tile @@ -112,24 +130,29 @@ FGTileLoader::update() mutex.unlock(); #else if ( !tile_load_queue.empty() ) { - cout << "loading next tile ..." << endl; + // cout << "loading next tile ..." << endl; // load the next tile in the queue FGTileEntry* tile = tile_load_queue.front(); tile_load_queue.pop(); + tile->load( tile_path, true ); - FGTileMgr::loaded( tile ); + + FGTileMgr::ready_to_attach( tile ); } +#ifdef WISH_PLIB_WAS_THREADED // but it isn't if ( !tile_free_queue.empty() ) { - cout << "freeing next tile ..." << endl; + // cout << "freeing next tile ..." << endl; // free the next tile in the queue FGTileEntry* tile = tile_free_queue.front(); tile_free_queue.pop(); tile->free_tile(); delete tile; } +#endif #endif // ENABLE_THREADS + } @@ -156,14 +179,17 @@ FGTileLoader::LoaderThread::run() FGTileMgr::ready_to_attach( tile ); +#ifdef WISH_PLIB_WAS_THREADED // but it isn't // Handle and pending removals while ( !loader->tile_free_queue.empty() ) { - cout << "freeing next tile ..." << endl; + // cout << "freeing next tile ..." << endl; // free the next tile in the queue FGTileEntry* tile = loader->tile_free_queue.pop(); tile->free_tile(); delete tile; } +#endif + } pthread_cleanup_pop(1); }