]> git.mxchange.org Git - flightgear.git/blobdiff - src/Scenery/newcache.cxx
Check for the plib version when using display lists, just to be sure.
[flightgear.git] / src / Scenery / newcache.cxx
index 4da87508d8b6e944eb493159e3cfbb9bd3aa3b75..033e11e8c911cdaef01062be649f975ad8de4b1f 100644 (file)
 #  include <config.h>
 #endif
 
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include <GL/glut.h>
-#include <GL/gl.h>
-
 #include <plib/ssg.h>          // plib include
 
 #include <simgear/bucket/newbucket.hxx>
@@ -132,7 +125,8 @@ bool FGNewCache::make_space() {
        for ( ; current != end; ++current ) {
            long index = current->first;
            FGTileEntry *e = current->second;
-           if ( e->is_loaded() && (e->get_pending_models() == 0) ) {
+           // if ( e->is_loaded() && (e->get_pending_models() == 0) ) {
+           if ( e->is_loaded() ) {
 
                 timestamp = e->get_timestamp();
                 if ( timestamp < min_time ) {
@@ -144,7 +138,7 @@ bool FGNewCache::make_space() {
                 }
 
            } else {
-                SG_LOG( SG_TERRAIN, SG_INFO, "loaded = " << e->is_loaded()
+                SG_LOG( SG_TERRAIN, SG_DEBUG, "loaded = " << e->is_loaded()
                         << " pending models = " << e->get_pending_models()
                         << " time stamp = " << e->get_timestamp() );
             }
@@ -153,9 +147,9 @@ bool FGNewCache::make_space() {
        // If we made it this far, then there were no open cache entries.
        // We will instead free the oldest cache entry and return true
         
-        SG_LOG( SG_TERRAIN, SG_INFO, "    min_time = " << min_time );
-        SG_LOG( SG_TERRAIN, SG_INFO, "    index = " << max_index );
-        SG_LOG( SG_TERRAIN, SG_INFO, "    max_time = " << max_time );
+        SG_LOG( SG_TERRAIN, SG_DEBUG, "    min_time = " << min_time );
+        SG_LOG( SG_TERRAIN, SG_DEBUG, "    index = " << max_index );
+        SG_LOG( SG_TERRAIN, SG_DEBUG, "    max_time = " << max_time );
        if ( max_index >= 0 ) {
            entry_free( max_index );
            return true;
@@ -206,14 +200,28 @@ long FGNewCache::get_oldest_tile() {
         }
     }
 
-    SG_LOG( SG_TERRAIN, SG_INFO, "    min_time = " << min_time );
-    SG_LOG( SG_TERRAIN, SG_INFO, "    index = " << min_index );
-    SG_LOG( SG_TERRAIN, SG_INFO, "    max_time = " << max_time );
+    SG_LOG( SG_TERRAIN, SG_DEBUG, "    min_time = " << min_time );
+    SG_LOG( SG_TERRAIN, SG_DEBUG, "    index = " << min_index );
+    SG_LOG( SG_TERRAIN, SG_DEBUG, "    max_time = " << max_time );
 
     return min_index;
 }
 
 
+// Clear the inner ring flag for all tiles in the cache so that the
+// external tile scheduler can flag the inner ring correctly.
+void FGNewCache::clear_inner_ring_flags() {
+    tile_map_iterator current = tile_cache.begin();
+    tile_map_iterator end = tile_cache.end();
+    
+    for ( ; current != end; ++current ) {
+        FGTileEntry *e = current->second;
+        if ( e->is_loaded() && (e->get_pending_models() == 0) ) {
+            e->set_inner_ring( false );
+        }
+    }
+}
+
 // Clear a cache entry, note that the cache only holds pointers
 // and this does not free the object which is pointed to.
 void FGNewCache::clear_entry( long cache_index ) {