1
0
Fork 0
Commit graph

44 commits

Author SHA1 Message Date
curt
d5a2533411 Fixed a bug in the tile pager / caching / management system that caused
a crash when relocating to a new airport.  Pending work from the old
area is now just completed as normal, rather than trying to empty the various
queues in their various stages when can lead to many problems in a threaded
environment.
2001-05-30 18:21:03 +00:00
curt
7e4a96dc77 Norman Vine contributed more optimized object placement math. 2001-05-23 22:28:38 +00:00
curt
2afcbb4bc8 We can't remove ssg branches in the threaded tile page because if we happen
to have attached an ssg loaded object to this branch, then plib will remove
it and all it's states (and textures) which will call opengl api commands
which will crash the program if run from a separate thread from the main render
thread.
2001-05-20 06:49:06 +00:00
curt
34854ab2af Threaded tile paging:
- model loading deferred to primary thread
- tile removal deferred to paging thread
- other tweaks and rearrangments.

Airport signs
- first stab at some support for adding taxiway and runway signs.  This
  is non-optimal, but I'm under the gun for a demo.
2001-05-19 16:59:43 +00:00
curt
865fb56c5a Tile loading is interleaved now when not threaded. Threaded loader is
throttled to one tile per frame maximum.
2001-05-18 20:31:23 +00:00
curt
31890db125 First stab at adding static objects to scene. 2001-05-16 06:00:02 +00:00
curt
a0d50000ba Modifications to coordinate with recent changes in simgear. 2001-05-15 22:30:39 +00:00
curt
4a609646b6 Modified FlightGear/src/Scenery. The tile loader thread no longer adds
a newly loaded tile to the scene graph.  Instead it puts it in a queue
for the tile manager.  I've used your counter_hack to check the loaded
queue and add any tiles to the scene graph.  I was playing around with
the counter_hack so there might be some commented out code, etc.  I also
changed some SG_DEBUGs to SG_INFOs so I could track the tile loading.
2001-04-16 20:03:52 +00:00
curt
b0b6c34249 Initial stab at a threaded tile loader contributed by Bernie Bright.
He writes:

Here are the final changes to add threads to the tile loading.  All the
thread related code is in the new FGTileLoader class.

./configure.in
./acconfig.h
Added --with-threads option and corresponding ENABLE_THREADS
definition.  The default is no threads.

./src/Scenery/tilemgr
Removed load_queue and associated references.  This has been replaced by
a new class FGTileLoader in FGNewCache.
Made the global variable global_tile_cache a member.
schedule_needed(): removed global_tile_cache.exists() tests since
sched_tile() effectively repeats the test.
initialize_queue(): removed code that loads tiles since this is now
performed by FGTileLoader.
update(): ditto

./src/Scenery/newcache
Added new class FGTileLoader to manage tile queuing and loading.
tile_map typedefs are private.
exists() is a const member function.
fill_in(): deleted
load_tile(): added.

./src/Scenery/FGTileLoader
The new threaded tile loader.  Maintains a queue of tiles waiting to be
loaded and an array of one or more threads to load the tiles.  Currently
only a single thread is created.  The queue is guarded by a mutex to
synchronize access.  A condition variable signals the thread when the
queue is non-empty.

CLO: I made a few tweaks to address a couple issues, hopefully what we
have is solid, but now we kick it out to the general public to see. :-)
2001-04-11 02:47:15 +00:00
curt
606b8d13d9 Added loaded flag to FGTileEntry so that the main thread knows when the
tile has been loaded.  Since this flag can be set by another thread I've
declared it "volatile bool".

Also cleaned up delete vs delete[] usage.  Gcc is happy with delete[],
which is the correct usage.
2001-04-06 18:30:07 +00:00
curt
191bb3956a Updates from Bernie Bright to massage tile loading around to make it
slightly more conducive to future threading.
2001-03-29 01:42:31 +00:00
curt
182fd42b40 SG-ified logstream. 2001-03-24 06:03:11 +00:00
curt
5ea9c04c64 SG_ namespace. 2001-03-24 04:56:46 +00:00
curt
17c96ae69e SG_ namespace 2001-03-24 04:48:44 +00:00
curt
5958389026 FG_ to SG_ namespace changes. 2001-03-23 22:59:18 +00:00
curt
8497f9b1ac FG_ to SG_ name changes. 2001-03-23 22:42:49 +00:00
curt
cff0022a16 Miscellaneous MSVC porting fixes by Christian Mayer. 2001-01-11 05:04:17 +00:00
curt
5fecec2bba More night ground lighting tweaks. 2000-12-06 22:16:12 +00:00
curt
174553feef Tweaked thresholds for staging in ground lighting. 2000-12-05 18:58:05 +00:00
curt
2baba715b4 Adjust ground lighting up significantly higher to avoid zbuffer fighting
on cards with 16 bit (or less) depth buffers.
2000-12-05 14:27:27 +00:00
curt
a775392e31 Bring lights in in stages as it get's darker. 2000-12-04 23:25:05 +00:00
curt
f14e155533 Tweaks to ground lighting infrastructure. 2000-12-04 22:36:18 +00:00
curt
d3c4018baa Started laying out the infrastructure for handling lighting.
Started experimenting with ground lighting.
2000-12-04 05:24:38 +00:00
curt
39632b90b8 Rewrote the tile scheme to use a "map" structure rather than "vector"
structure.  The new approach is simpler, more flexible, and more dynamics.
We can now dynamically size the tile cache up and down.  Also, the range
of tiles to load is now dependent on visibility and is calculated to always
bring in enough tiles.
2000-12-03 20:15:46 +00:00
curt
655ce0e20d MACOS -> macintosh 2000-09-10 00:04:50 +00:00
curt
39ae3864de Cleaned up all the old fragment and material_mgr stuff which originated
from the pre-ssg / render everything ourselves days.  Replaced with a
material library manager that is much better suited for working in the
context of ssg.  This simplified and cleaned up a ton of old junk.
2000-06-23 00:30:04 +00:00
curt
cd1a471f7e Updates, optimizations, and restructures from Norman Vine. 2000-06-15 22:32:26 +00:00
curt
1294aed465 One more pass at a reorg. 2000-02-16 23:01:03 +00:00
curt
485230b443 Code reorganization. 2000-02-15 03:30:01 +00:00
curt
9a207fb4e1 MacOS fixes contributed by Darrell Walisser on 1/26/2000. 2000-02-10 23:37:56 +00:00
curt
715062e85f Fixed (hopefully) a build problem with newer versions of automake
and autoconf.
1999-10-30 02:37:56 +00:00
curt
eb02aba5c8 More tile memory clean ups. 1999-10-27 00:52:25 +00:00
curt
a631bd2e55 Add a key mapping (F3) for taking a screen snap shot.
Keep track of and free index arrays that are fed to ssg.
Ssg branch deletion memory leak work around.
1999-10-26 03:45:33 +00:00
curt
da3271e103 Simplify ssg branch deletion code. Saying we were doing it the
round-a-bout hard way would be an understatement.
1999-10-06 20:59:52 +00:00
curt
5d9577f806 Remove ssg kids in a an attepmpt to fix one memory leak. We think the
remaining leak is ssg's fault.
1999-10-01 20:36:16 +00:00
curt
87e3a7decb Tweaked some log messages. 1999-09-01 18:52:31 +00:00
curt
58a8b0d103 Minor tweaks. 1999-08-14 22:07:35 +00:00
curt
243b73c10b Moving towards increased dependence on ssg. 1999-08-07 18:27:29 +00:00
curt
44400cdff8 Fix a small tile cache bug. 1999-07-31 04:59:28 +00:00
curt
8d58f64257 Fixed a tile caching bug. When I was freeing tiles to make room in the
cache, I was only checking currently visible tiles, rather than checking
all the cache entries.
1999-07-25 01:52:36 +00:00
curt
e5a87cf9fa (Hopefully) fixed bug which caused corrupt entries to be loaded into the
scene graph when a tile shift occured while the tile load queue was not
  empty.
1999-07-04 07:37:30 +00:00
curt
39b3602dce Ssg tweaks.
Better handling of missing tiles.
Added a range selector so we can completely ignore tiles that are beyond
  our visibility range.
Added a routine to prep the ssg nodes before rendering by updating the
  transform and range selector values.
1999-06-30 00:28:20 +00:00
curt
0ae48876a7 More ssg tweaks. 1999-06-29 14:57:00 +00:00
Tim Moore
c90db01dc8 source tree reorganization prior to flightgear 0.7
SimGear and TerraGear appear to have been split off at this time.
2009-09-14 14:26:20 +02:00
Renamed from Simulator/Scenery/tileentry.cxx (Browse further)