1
0
Fork 0
No description
Find a file
curt b1674cb506 From: "Jim Wilson" <jimw@kelcomaine.com>
This is a new improved patch for the previous tile manager fixes.

Rather than building dependencies between FGlocation or the viewer or fdm with
tilemgr what I ended up doing was linking the pieces together in the Mainloop
in main.cxx.  You'll see what I mean...it's been commented fairly well.  More
than likely we should move that chunk somewhere...just not sure where yet.

The changes seem clean now. As I get more ideas there could be some further
improvement in organizing the update in tilemgr.  You'll note that I left an
override in there for the tilemgr::update() function to preserve earlier
functionality if someone needs it (e.g. usage independent of an fdm or
viewer), not to mention there are a few places in flightgear that call it
directly that have not been changed to the new interface (and may not need to be).

The code has been optimized to avoid duplicate traversals and seems to run
generally quite well.  Note that there can be a short delay reloading tiles
that have been dropped from static views.  We could call the tile scheduler on
a view switch, but it's not a big deal and at the moment I'd like to get this
in so people can try it and comment on it as it is.

Everything has been resycned with CVS tonight and I've included the
description submitted earlier (below).

Best,

Jim

Changes synced with CVS approx 20:30EDT 2002-05-09 (after this evenings updates).

Files:
http://www.spiderbark.com/fgfs/viewer-update-20020516.tar.gz
 or
http://www.spiderbark.com/fgfs/viewer-update-20020516.diffs.gz

Description:
In a nutshell, these patches begin to take what was one value for ground
elevation and calculate ground elevation values seperately for the FDM and the
viewer (eye position).  Several outstanding view related bugs have been fixed.

With the introduction of the new viewer code a lot of that Flight Gear code
broke related to use of a global variable called "scenery.cur_elev".

Therefore the ground_elevation and other associated items (like the current
tile bucket) is maintained per FDM instance and per View.  Each of these has a
"point" or location that can be identified.  See changes to FGLocation class
and main.cxx.

Most of the problems related to the new viewer in terms of sky, ground and
runway lights, and tower views are fixed.

There are four minor problems remaining.  1) The sun/moon spins when you pan
the "lookat" tower view only (view #3).  2) Under stress (esp. magic carpet
full speed with max visibility), there is a memory leak in the tile caching
that was not introduced with these changes.  3) I have not tested these
changes or made corrections to the ADA or External FDM interfaces.  4) The
change view function doesn't call the time/light update (not a problem unless
a tower is very far away).

Details:
FDM/flight.cxx, flight.hxx - FGInterface ties to FGAircraftModel so that it's
 location data can be accessed for runway (ground elevation under aircraft)
 elevation.

FDM/larsim.cxx, larcsim.hxx - gets runway elevation from FGInterface now.
Commented out function that is causing a namespace conflict, hasn't been
called with recent code anyway.

FDM/JSBSim/JSBSim.cxx, YASim/YASim.cxx - gets runway elevation from
FGInterface now.

Scenery/newcache.cxx, newcache.hxx - changed caching scheme to time based
(oldest tiles discard).

Scenery/tileentry.cxx, tileentry.hxx - added place to record time, changed
rendering to reference viewer altitude in order to fix a problem with ground
and runway lights.

Scenery/tilemgr.cxx, tilemgr.hxx - Modified update() to accept values for
multiple locations.   Refresh function added in  order to periodically make
the tiles current for a non-moving view (like a tower).

Main/fg_init.cxx - register event for making tiles current in a non-moving
view (like a tower).

Main/location.hxx - added support for current ground elevation data.

Main/main.cxx - added second tilemgr call for fdm, fixed places where viewer
position data was required for correct sky rendering.

Main/options.cxx - fixed segfault reported by Curtis when using --view-offset
command line parameter.

Main/viewer.cxx, viewer.hxx - removed fudging of view position. Fixed numerous
bugs that were causing eye and target values to get mixed up.
2002-05-17 17:25:28 +00:00
docs-mini Cameron Moore: 2002-05-09 04:39:10 +00:00
man Fixed description of the --time-offset option. 2002-02-14 03:57:22 +00:00
package/mandrake Initial revision. 2001-09-17 21:12:24 +00:00
scripts Added a scripts subdirectory with support for running external python 2002-05-15 21:45:39 +00:00
src From: "Jim Wilson" <jimw@kelcomaine.com> 2002-05-17 17:25:28 +00:00
tests Change fog punch through value a bit. Either way it's a WAG for now, but 2002-03-14 00:52:38 +00:00
.cvsignore Ignore gmon.out, in case people are doing profiling runs. 2002-02-27 14:59:04 +00:00
acconfig.h Removed configuration option --with-old-mouse and FG_OLD_MOUSE macro. 2002-05-12 00:12:19 +00:00
acsite.m4 Packaging fixes. 1999-06-04 20:35:47 +00:00
am2dsp.cfg Updated am2dsp.cfg from Bernie. 2002-04-22 22:42:23 +00:00
AUTHORS Initial revision. 1998-05-23 18:09:09 +00:00
autogen.sh Same autogen.sh tweak as for simgear to better handle irix vs. 2002-01-19 14:58:49 +00:00
ChangeLog Updated ... 2001-06-18 22:25:59 +00:00
config.guess Initial revision 1999-06-17 20:07:19 +00:00
config.sub Initial revision 1999-06-17 20:07:19 +00:00
FlightGear.dsp Added a scripts subdirectory with support for running external python 2002-05-15 21:45:39 +00:00
FlightGear.dsw Initial revision. 2000-10-16 22:02:10 +00:00
irix-hack.sh Detect Irix/CC compiler and substitute AR="CC -ar". 2001-06-01 17:13:03 +00:00
Makefile.am Added a scripts subdirectory with support for running external python 2002-05-15 21:45:39 +00:00
NEWS Tweaks. 2002-04-21 04:42:02 +00:00
README Updates. 2000-02-15 23:32:26 +00:00
Thanks Jim Wilson: 2002-04-19 15:36:51 +00:00

Welcome to the FlightGear Flight Simulator project.
===================================================

The primary web page for this project is: http://www.flightgear.org

For basic installation instructions see the "INSTALL" file.

Before you can run FlightGear you will also need to download and
install the "base" package which is a collection of textures, sounds,
sample scenery, and other data files need by the sim.

For additional install help for specific platforms please browse the
"docs-mini/" subdirectory.

More complete documentation is available from our web page as a
separate distribution.

Please take a look at the "Thanks" file for a list of people who have
contributed to this project.  If you have contributed something but
don't find your name in this file.  Please send a polite reminder to
curt@flightgear.org

For a summary of changes/additions by version see the "NEWS" file.

This project is GPL'd.  For complete details on our licensing please
see the "COPYING" file.

For information on available mailing lists, mailing list archives, and
other available source code and documenation, please visit our web
site.

FlightGear is a product of the collaboration of large international
group of volunteers.  FlightGear is a work in progress.  FlightGear
comes with no warrantee.  We hope you enjoy FlightGear and/or find it
of some value!