1
0
Fork 0
Commit graph

104 commits

Author SHA1 Message Date
curt
dae9b63a14 Nuked the segfault on exit bug everyone was seeing. The material lib could
have multiple ptrs to individual entries (aliases) but the destructor was
trying to delete every ptr so it would delete already freed memory for aliases.
I implimented a simple ref counting scheme (similar to the plib mechanism) to
track references to material lib entries and only "delete" them when the last
reference is removed.
2001-07-13 05:15:29 +00:00
curt
2cb51a228b Restructured code a bit to split out the bits that create objects on the
fly.  More work needs to be done.
Added apt_signs.[ch]xx
2001-07-12 15:03:09 +00:00
curt
bc4859c0fb Attempt to fix a segfault on exit, although I don't think this quite
does it.  We'll have to dig deeper.
2001-07-11 15:50:18 +00:00
curt
6116accf6a Various cleanups, jettison plib-1.2.0 support, remove a potential memory
leak.
2001-07-08 23:38:16 +00:00
curt
93178a944b - added declaration for method get_step 2001-06-26 22:00:31 +00:00
curt
2b6873903c - added implementation for method get_step 2001-06-26 22:00:21 +00:00
curt
46b82360b0 Fixed a couple items for Norman's large resolution print routines. 2001-06-13 20:31:49 +00:00
curt
da33ab1cf8 Oops, fixed a bug introduced in the previous round that munged many
runway textures.
2001-06-12 22:24:52 +00:00
curt
bd0b5085db Fixed an data initialization problem that was causing MSVC grief. 2001-06-12 18:45:23 +00:00
curt
15fadd1687 There was a typo in the $fgbase/materials file where an alias was
pointing to a non-existant material name.  (This has been fixed.)

The alias code didn't check to see if this condition would occur so it
was putting a 'NULL' entry in the material library which was causing
the crash.  It now checks for and skips bad aliases and prints a
warning message.
2001-06-12 17:52:09 +00:00
curt
02896643d7 Minor texture tweaks. 2001-05-23 20:54:51 +00:00
curt
29d540901c Tile pager tweaks.
MSVC++ tweaks.
2001-05-21 20:44:59 +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
a0d50000ba Modifications to coordinate with recent changes in simgear. 2001-05-15 22:30:39 +00:00
curt
b7ccbfe532 Fixed a typo. 2001-05-15 04:08:31 +00:00
curt
a01a26a009 Re-added support for loading on-the-fly textures. 2001-05-15 00:01:04 +00:00
curt
e03752883e Unconvoluted around line #130 2001-04-11 20:09:23 +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
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
f1b1077d93 More fg -> sg namespace changes in simgear. 2001-03-25 14:20:12 +00:00
curt
f380595144 fg_zlib.h -> sg_zlib.h 2001-03-24 14:12:00 +00:00
curt
182fd42b40 SG-ified logstream. 2001-03-24 06:03:11 +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
7191e8b810 Tweaks to PLIB version detection. 2001-03-14 23:38:34 +00:00
curt
e977778527 Fixed a problem with the object loader ignoring custom texture dimensions
specifiec in the materials file.
2001-01-29 04:36:46 +00:00
curt
576432ec75 David Megginson writes:
FGOptions is history, and the modules are (starting) to use the property
manager directly.  Let me know if I left any files out.

Inevitably, there will be some problems with broken options, etc.,
that I haven't found in my tests, but I'll try to fix them quickly.
We also need to stress that the property names currently in use are
not stable -- we need to reorganize them a bit for clarity.
2001-01-13 22:06:39 +00:00
curt
a701a2be4a Debugging output tweaks. 2001-01-13 00:14:47 +00:00
curt
5bfca5eff8 Removed some debugging output and added some optimizations. 2001-01-12 22:47:41 +00:00
curt
690d2ac3e8 Tweaks for new SGBinObject interface. 2001-01-06 05:31:45 +00:00
curt
49fc684885 Tweaks to binobj reader interface. 2001-01-06 05:09:40 +00:00
curt
ba8f62a540 Added support for loading binary object files. 2001-01-05 01:07:10 +00:00
curt
1db7986e0e Added a scenery version check so we will die if the program tries to load
scenery that is newer than we know how to handle.
2001-01-03 19:00:55 +00:00
curt
95d6d93bed Renamed FGBucket -> SGBucket. 2000-12-13 20:36:04 +00:00
curt
da97ac5b9f Tweaks. 2000-12-13 17:56:43 +00:00
curt
5fecec2bba More night ground lighting tweaks. 2000-12-06 22:16:12 +00:00
curt
40d68c5627 Tweaks to get lights to fade in quantity-wise as well as brightness-wise. 2000-12-06 13:57:29 +00:00
curt
84440e9b5e Added support for specifying light coverage on a per material basis in the
materials file (contributed by David Megginson.)
2000-12-05 20:53:14 +00:00
curt
3ec542d18f Faster triangle area routine contributed by Norman Vine. 2000-12-05 20:20:57 +00:00
curt
90d30b023e Generate a set of ground lights when loading a scenery tile. 2000-12-04 22:35:38 +00:00
curt
bb108c7917 Added a hardcoded "LIGHTING" material entry in the matlib.
Fixed a typo in creating textured ssg simple states.
Start looking at a faster method for generating surface lighting based on the
scenery triangles.
2000-12-04 05:23:06 +00:00
curt
b1fbb16b9d Increased FG_MAX_NODES to 4000 2000-11-23 15:48:21 +00:00
curt
7715f7d872 Support aliasing one material name to another. 2000-11-03 20:21:43 +00:00
curt
01c44cbb99 Code clean ups relating to FGOptions ... and moved it into globals-> space. 2000-10-19 21:24:43 +00:00
curt
ce574d59f5 The following changes were made to flightgear-0.7.5 code to implement the follow
ing features:

a) ADA Flight model - ADA.cxx, ADA.hxx, flight.hxx
b) Fighter a/c HUD       - flight.hxx, hud.hxx, hud.cxx, cockpit.cxx, hud_ladr.c
xx, hud_card.cxx
c) 3-window display      - options.hxx, options.cxx, viewer.cxx
d) Moving objects (ship) - main.cxx
e) Patches               - main.cxx

ADA.cxx, ADA.hxx
--------------------------
Interface to the external ADA flight dynamics package.

flight.hxx
----------
Included prototypes for accepting additional data fron the External flight
model for fighter aircraft HUD

Hud.hxx
-------
Included prototypes for accepting additional data for fighter HUD from Exernal F
light model.
Defined FIGHTER_HUD pre-processor directive to enable compilation of fighter hud
 code.

hud.cxx, cockpit.cxx, hud_ladr.cxx, hud_card.cxx
---------------------------------------
Included code to initialise additional reticles/text for fighter HUD which is co
nditionally
compiled if FIGHTER_HUD is defined.

options.hxx
-----------
Added window_offset, and function to retrieve its value for 3 windows

options.cxx
-----------
Changed few options to suit ADA/CEF projection system/screens and checks for win
dow offset.

views.cxx
---------
Added code to retrieve view offset for window.

Main.cxx
--------
Added code to load and move an aircraft carrier.
Patch to enable clouds from command line until Curtis fixes it. By default cloud
s are disabled.
2000-10-19 19:46:13 +00:00
curt
445c4bbdb1 I guess we have to ref() ssgStateTable as well as ssgSimpleState. 2000-10-18 07:03:49 +00:00
curt
806511bd99 Added ref() count increment calls to all ssgSimpleState creation to prevent
them from being delete by ssg once nothing in the scene graph points to them.
2000-10-18 00:48:12 +00:00
curt
f6fac40a11 David Megginson writes:
I have a scrollable panel working (it didn't take long in the end).  A
panel can now be much wider or higher than the available area, and the
user can scroll around using [Shift]F5, [Shift]F6, [Shift]F7, and
[Shift]F8.  The user can also scroll the panel down to get a bigger
external view.  Mouse clicks seem still to be working correctly.

To set the panel's (virtual) height and width, use the panel file's /w
and /h properties in a panel XML file; to set the initial x- and y-
offsets (untested), use the panel file's /x-offset and /y-offset
properties; to set the initial height of the external view (untested
and optional), use the panel file's /view-height property.  Note that
none of these show up in the regular FGFS property manager.

Unfortunately, these patches will not affect your initialization
problems with the property manager -- I'm having a hard time tracking
them down because I cannot reproduce them.

I have also made some patches to main.cxx and views.cxx to do two
things:

1. Expand or shrink the external view as the panel moves up and down.

2. Set the window ratio correctly, so that we don't get an oval sun
   and flat clouds when the panel is visible (the problem before was
   integer division, so I added casts).

Unfortunately, the window ratio is not set properly at start-up --
there are too many dependencies, and I haven't figured that part out
yet.  As soon as you hide and redisplay the panel or move it
vertically (i.e. force fgReshape to be called), you'll see the correct
ratio.
2000-10-06 21:16:01 +00:00
curt
4e3abe851b Trial support for texture sets with varying resolution. 2000-10-04 20:51:57 +00:00