X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FScenery%2FFGTileLoader.hxx;h=5d7d984928c7a9483571ce428d3f5ba4ab1fc450;hb=8dcf08c965ee6386f6fa1a0d8871906fa7faf989;hp=75b3a0c3d9370989c5039579a52c5b7136b86b1b;hpb=051e2a6dc3b6db4b9bc42fb31f3079d1602cf29c;p=flightgear.git diff --git a/src/Scenery/FGTileLoader.hxx b/src/Scenery/FGTileLoader.hxx index 75b3a0c3d..5d7d98492 100644 --- a/src/Scenery/FGTileLoader.hxx +++ b/src/Scenery/FGTileLoader.hxx @@ -30,8 +30,12 @@ #ifdef ENABLE_THREADS # include # include +#else +# include + SG_USING_STD( queue ); #endif + // Forward reference. class FGTileEntry; @@ -52,13 +56,29 @@ public: */ ~FGTileLoader(); +#if 0 // we don't ever want to do this I don't think + /** + * Flush anything in pending load queue without doing the work + * Leave the free queue intact since that's are only record of + * things we need to remove. + */ + void reinit(); +#endif + /** * Add a tile to the end of the load queue. * @param tile The tile to be loaded from disk. - * @param vis Current visibilty (in feet?) (see FGTileMgr::vis). */ void add( FGTileEntry* tile ); +#ifdef WISH_PLIB_WAS_THREADED // but it isn't + /** + * Remove a tile from memory. + * @param tile The tile to be removed from memory. + */ + void remove( FGTileEntry* tile ); +#endif + /** * The tile loader thread will only load one tile per call to the * update() method. This is a way to spread out the work of the @@ -71,7 +91,7 @@ public: * Returns whether the load queue is empty (contains no elements). * @return true if load queue is empty otherwise returns false. */ - // bool empty() const { return tile_queue.empty(); } + // bool empty() const { return tile_load_queue.empty(); } private: @@ -81,7 +101,11 @@ private: /** * FIFO queue of tiles to load from data files. */ - SGBlockingQueue< FGTileEntry* > tile_queue; + SGBlockingQueue< FGTileEntry * > tile_load_queue; + // SGBlockingQueue< FGTileEntry * > tile_free_queue; +#else + queue< FGTileEntry * > tile_load_queue; + // queue< FGTileEntry * > tile_free_queue; #endif /** @@ -131,7 +155,7 @@ private: * Lock and synchronize access to tile queue. */ SGMutex mutex; - SGCondition frame_cond; + SGPthreadCond frame_cond; /** * Thread cleanup handler.