- The new classes in libmisc.tgz define a stream interface into zlib.
I've put these in a new directory, Lib/Misc. Feel free to rename it
to something more appropriate. However you'll have to change the
include directives in all the other files. Additionally you'll have
add the library to Lib/Makefile.am and Simulator/Main/Makefile.am.
The StopWatch class in Lib/Misc requires a HAVE_GETRUSAGE autoconf
test so I've included the required changes in config.tgz.
There are a fair few changes to Simulator/Objects as I've moved
things around. Loading tiles is quicker but thats not where the delay
is. Tile loading takes a few tenths of a second per file on a P200
but it seems to be the post-processing that leads to a noticeable
blip in framerate. I suppose its time to start profiling to see where
the delays are.
I've included a brief description of each archives contents.
Lib/Misc/
zfstream.cxx
zfstream.hxx
C++ stream interface into zlib.
Taken from zlib-1.1.3/contrib/iostream/.
Minor mods for STL compatibility.
There's no copyright associated with these so I assume they're
covered by zlib's.
fgstream.cxx
fgstream.hxx
FlightGear input stream using gz_ifstream. Tries to open the
given filename. If that fails then filename is examined and a
".gz" suffix is removed or appended and that file is opened.
stopwatch.hxx
A simple timer for benchmarking. Not used in production code.
Taken from the Blitz++ project. Covered by GPL.
strutils.cxx
strutils.hxx
Some simple string manipulation routines.
Simulator/Airports/
Load airports database using fgstream.
Changed fgAIRPORTS to use set<> instead of map<>.
Added bool fgAIRPORTS::search() as a neater way doing the lookup.
Returns true if found.
Simulator/Astro/
Modified fgStarsInit() to load stars database using fgstream.
Simulator/Objects/
Modified fgObjLoad() to use fgstream.
Modified fgMATERIAL_MGR::load_lib() to use fgstream.
Many changes to fgMATERIAL.
Some changes to fgFRAGMENT but I forget what!
- use strings for fg_root and airport_id and added methods to return
them as strings,
- inlined all access methods,
- made the parsing functions private methods,
- deleted some unused functions.
- propogated some of these changes out a bit further.
Eliminated libtool use.
Added options to specify initial position and orientation.
Changed default fov to 55 degrees.
Added command line option to start in paused or unpaused state.
are doing textures. Assumptions: If we are doing textures we have hardware
support that can clear the color buffer for "free." If we are doing software
rendering with textures, then the extra clear time gets lost in the noise.
states.
Better checking for xmesa/fx 3dfx fullscreen/window support for deciding
whether or not to build in the feature.
Translucent menu support.
HAVE_AUDIO_SUPPORT -> ENABLE_AUDIO_SUPPORT
Use fork() / wait() for playing mp3 init music in background under unix.
Changed default tile diameter to 5.
Did some serious horsing around to be able to "hug" the ground properly
and still be able to take off.
Set the near clip plane to 1.0 meters when less than 10 meters above the
ground.
Did some serious horsing around getting the initial airplane position to be
correct based on rendered terrain elevation.
Added a little cheat/hack that will prevent the view position from ever
dropping below the terrain, even when the flight model doesn't quite
put you as high as you'd like.
Added an enable/disable intro music option.
Added an enable/disable instrument panel option.
Added an enable/disable mouse pointer option.
Added using namespace std for compilers that support this.
Mesa/3dfx/glide.
Added a basic splash screen. Restructured the main loop and top level
initialization routines to do this.
Hacked in some support for playing a startup mp3 sound file while rest
of sim initializes. Currently only works in Unix using the mpg123 player.
Waits for the mpg123 player to finish before initializing internal
sound drivers.
Mesa/glu version.) But, by calculating the Model View matrix our selves
we can save this matrix without having to read it back in from the video
card. This hopefully allows us to save a few cpu cycles when rendering
out the fragments because we can just use glLoadMatrixd() with the
precalculated matrix for each tile rather than doing a push(), translate(),
pop() for every fragment.
Panel status defaults to off for now until it gets a bit more developed.
Extract OpenGL driver info on initialization.
Shuffled some additional view parameters into the fgVIEW class.
Changed tile-radius to tile-diameter because it is a much better
name.
Added a WORLD_TO_EYE transformation to views.cxx. This allows us
to transform world space to eye space for view frustum culling.
Added a command line option to specify fov.
Adjusted terrain color.
Root path info moved to fgOPTIONS.
Added ability to parse options out of a config file.