]> git.mxchange.org Git - simgear.git/log
simgear.git
19 years agoMelchior: Make the (lack of) axis or center location definitions more consistent.
ehofman [Sun, 12 Jun 2005 11:23:28 +0000 (11:23 +0000)]
Melchior: Make the (lack of) axis or center location definitions more consistent.

19 years agoMelchior FRANZ:
ehofman [Sat, 11 Jun 2005 08:39:26 +0000 (08:39 +0000)]
Melchior FRANZ:

This is the more elegant solution that Andy had proposed in a response
to my RFC on Nasal initialization code in joystick configuration files.
As Nasal is initialized last (for good reason), subsystem can currently
not use it for initializing. postinit() is called on all subsystems
after all have been initialized.

19 years agofix a coredump situation, discovered by Melchior.
ehofman [Wed, 8 Jun 2005 14:07:53 +0000 (14:07 +0000)]
fix a coredump situation, discovered by Melchior.

19 years agoHarald JOHSEN:
ehofman [Mon, 30 May 2005 09:04:57 +0000 (09:04 +0000)]
Harald JOHSEN:

Changes
=======

- changed the rotation of sprites, they don't rotate strangely when we
  approach them now
- corrected the strange movement of clouds when banking quickly
- it no more rain above cloud layers
- add a radar echo container used by the weather radar instrument

19 years agoFix two crash conditions Ampere found. These are just temporary
andy [Sun, 29 May 2005 16:13:48 +0000 (16:13 +0000)]
Fix two crash conditions Ampere found.  These are just temporary
patches; my private version has rewritten both of these functions
(ironically fixing these bugs in the process) to handle negative
offsets meaning "from the end".

19 years agoMelchior FRANZ:
ehofman [Tue, 24 May 2005 08:13:09 +0000 (08:13 +0000)]
Melchior FRANZ:

Turn the material animation's <transparency> property into a group, with
members <alpha-prop>/<alpha>, <offset-prop>/<offset>, <factor-prop>/<factor>,
<min>, and <max>. The "material" animation can now fully replace "blend" and
"alpha-test" (--> <threshold>) animations, with enhanced possibilities:
The "material" animation can be used for one or more explicit objects (like
"blend"), but also for all objects that share one material (<global>), which
avoids problems with objects being forced together into one tree. Also, an
object doesn't have to be semitransparent or textured with a semitransparent
texture to make blending work. Unlike the "blend" animation, the "material"
animation also makes fully opaque and untextured objects transparent. (This
fixes the bo105's formerly semi-transparent rotor.)

Erik:
The blend animation and alpha-test animation are depreciated as of now.

19 years agoMelchior FRANZ:
ehofman [Mon, 23 May 2005 16:35:00 +0000 (16:35 +0000)]
Melchior FRANZ:

Currently, the material animation sets glColorMaterial(GL_AMBIENT_AND_DIFFUSE)
for all material properties. This breaks emission-only (e.g. cockpit lighting
for the p51d) or specular-only animation. ==> set glColorMaterial only where
it is really required.

19 years agoMSVC fix.
ehofman [Sun, 22 May 2005 09:18:56 +0000 (09:18 +0000)]
MSVC fix.

19 years agoHarald JOHSNEN:
ehofman [Sun, 22 May 2005 08:09:08 +0000 (08:09 +0000)]
Harald JOHSNEN:

Changes
=======

- correct the transparency probleme when old 3d clouds were enabled
 (rendering context with an alpha channel)
- changed rain cone orientation, it can now be viewed from helicopter or chase
  view (still not tower view)
- clouds are a bit more yellow/red at dawn/dusk
- weather data is now correctly propagated to the interpolator, this correct
  visibility, wind, etc
- the 'metar' weather scenario now immedialty reuse the real metar data
- real metar no more overwrite custom weather scenario

19 years agoMSVC fix.
ehofman [Sun, 22 May 2005 07:35:39 +0000 (07:35 +0000)]
MSVC fix.

19 years agoMake removeChild() work (again?)
ehofman [Tue, 17 May 2005 09:56:08 +0000 (09:56 +0000)]
Make removeChild() work (again?)

19 years agogcc fix.
ehofman [Sun, 15 May 2005 09:34:04 +0000 (09:34 +0000)]
gcc fix.

19 years agoHarald JOHNSEN:
ehofman [Sun, 15 May 2005 09:27:00 +0000 (09:27 +0000)]
Harald JOHNSEN:

This is another update for the cloud code, a lot of lines but this time I have started to add the doxygen doc.

Misc
====

- corrected a bug when RTT is not available, the current rendering context was
  altered
- if RTT is not available then 3d clouds are not drawn at all
- impostors lighting is now recomputed when the sun changes position
- distant objects are no more seen in front of clouds
- blending of distant clouds is a bit better now
- litle optimization of code (uses a less cpu time)
- use layer wind speed and direction (no more hardcoded wind)
- fov is no more hardcoded

Changes
=======

- clouds (cu only) are dissipating/reforming (experimental)
- compute a turbulence factor that depends on surrounding clouds and type of
  clouds (experimental)
- clouds shapes are defined in cloudlayers.xml
- type of clouds present in a layer is also defined in cloudlayers.xml
- cloud layers are generated from metar and other misc. data (in progress)
- added a rain effect around the viewer (enabled in the rendering dialog and
  when the metar property says so)
- added a lightning effect (enabled in the rendering dialog) : cb clouds spawn
  new lightnings
- added a dialog to select from different weather source : metar/property,
  a 'fair weather' environment and a 'thunderstorm' environment.

19 years agoMelchior: Only change types when explicitly requested.
ehofman [Mon, 9 May 2005 16:18:41 +0000 (16:18 +0000)]
Melchior: Only change types when explicitly requested.

19 years agoMelchior FRANZ:
ehofman [Mon, 9 May 2005 14:31:41 +0000 (14:31 +0000)]
Melchior FRANZ:

Vivian pointed out that a redefined Ctrl-U key binding didn't work
correctly. I found out that this is, because the definition in
$FG_ROOT/keyboard.xml sets <value type="bool"> for binding[1],
and ... [better sit down first!] ... and assigning <value type="double">
in a *-set.xml file doesn't *really* set "double" as new type!

Instead, the boolean is kept, and a double sqeezed into it. In other
words: once tainted as bool, you can throw all doubles in the universe
on a property node, and all it will accept is 0 and 1. Without warning!

BTW: I changed the patch: I was overly cautious: clear_value() does already
care for ties and for setting NONE, so we just need to make that public as
clearValue(), and use that. Makes the patch a bit more verbose, though.  :-/

19 years agoSolaris fix.
ehofman [Sat, 7 May 2005 08:46:04 +0000 (08:46 +0000)]
Solaris fix.

19 years agoProperly release the mod lock when returning from a runtime error.
andy [Wed, 4 May 2005 20:17:28 +0000 (20:17 +0000)]
Properly release the mod lock when returning from a runtime error.
Ampere discovered that the interpreter would deadlock at runtime if it
hit such a condition during initialization.

19 years agoPhil Cazzola:
ehofman [Sun, 1 May 2005 08:50:39 +0000 (08:50 +0000)]
Phil Cazzola:

This is a minor bug fix for sgBucketDiff().
If you crossed the bucket size boundary, the answer for dx could be wrong.

E.g.
 going from   0:0, 21:7  to 0:7, 21:7   would give you dx = 7 (correct)
 but going from 0:0, 21:7 to 0:3, 22:0 would give you dx = 6 (instead of 7)

Previously it differenced the center longitudes of the buckets.  When you
cross a boundary, the center point of the larger bucket now lies on the edge of the smaller bucket.

The result was a dx with an integer + 1/2 bucket, which rint() was rounding to the nearest even int.

This function only seems to be used in TerraGear.

19 years agoMake use of the repeatable sg_random() function so display systems can synchronize...
ehofman [Sat, 30 Apr 2005 10:00:16 +0000 (10:00 +0000)]
Make use of the repeatable sg_random() function so display systems can synchronize 3d clouds too.

19 years agoAdd a seed function that gives the same random seed within a ten minute period of...
ehofman [Sat, 30 Apr 2005 09:59:12 +0000 (09:59 +0000)]
Add a seed function that gives the same random seed within a ten minute period of time. This should be useful for synchronizing display systems.

19 years agoMathias:
ehofman [Fri, 29 Apr 2005 14:37:27 +0000 (14:37 +0000)]
Mathias:

I have done a patch to eliminate the jitter of 3D-objects near the viewpoint
(for example 3D cockpit objects).
The problem is the roundoff accuracy of the float values used in the
scenegraph together with the transforms of the eyepoint relative to the
scenery center.

The solution will be to move the scenery center near the view point.
This way floats relative accuracy is enough to show a stable picture.

To get that right I have introduced a transform node for the scenegraph which
is responsible for that shift and uses double values as long as possible.
The scenery subsystem now has a list of all those transforms required to place
objects in the world and will tell all those transforms that the scenery
center has changed when the set_scenery_center() of the scenery subsystem is
called.
The problem was not solvable by SGModelPlacement and SGLocation, since not all
objects, especially the scenery, are placed using these classes.

The first approach was to have the scenery center exactly at the eyepoint.
This works well for the cockpit.
But then the ground jitters a bit below the aircraft. With our default views
you can't see that, but that F-18 has a camera view below the left engine
intake with the nose gear and the ground in its field of view, here I could
see that.
Having the scenery center constant will still have this roundoff problems, but
like it is now too, the roundoff error here is exactly the same in each
frame, so you will not notice any jitter.

The real solution is now to keep the scenery center constant as long as it is
in a ball of 30m radius around the view point. If the scenery center is
outside this ball, just put it at the view point.

As a sideeffect of now beeing able to switch the scenery center in the whole
scenegraph with one function call, I was able to remove a one half of a
problem when switching views, where the scenery center was far off for one or
two frames past switching from one view to the next. Also included is a fix
to the other half of this problem, where the view position was not yet copied
into a view when it is switched (at least under glut). This was responsible
for the 'Error: ...' messages of the cloud subsystem when views were
switched.

19 years agoMathias:
ehofman [Fri, 29 Apr 2005 14:36:50 +0000 (14:36 +0000)]
Mathias:

 have done a patch to eliminate the jitter of 3D-objects near the viewpoint
(for example 3D cockpit objects).
The problem is the roundoff accuracy of the float values used in the
scenegraph together with the transforms of the eyepoint relative to the
scenery center.

The solution will be to move the scenery center near the view point.
This way floats relative accuracy is enough to show a stable picture.

To get that right I have introduced a transform node for the scenegraph which
is responsible for that shift and uses double values as long as possible.
The scenery subsystem now has a list of all those transforms required to place
objects in the world and will tell all those transforms that the scenery
center has changed when the set_scenery_center() of the scenery subsystem is
called.
The problem was not solvable by SGModelPlacement and SGLocation, since not all
objects, especially the scenery, are placed using these classes.

The first approach was to have the scenery center exactly at the eyepoint.
This works well for the cockpit.
But then the ground jitters a bit below the aircraft. With our default views
you can't see that, but that F-18 has a camera view below the left engine
intake with the nose gear and the ground in its field of view, here I could
see that.
Having the scenery center constant will still have this roundoff problems, but
like it is now too, the roundoff error here is exactly the same in each
frame, so you will not notice any jitter.

The real solution is now to keep the scenery center constant as long as it is
in a ball of 30m radius around the view point. If the scenery center is
outside this ball, just put it at the view point.

As a sideeffect of now beeing able to switch the scenery center in the whole
scenegraph with one function call, I was able to remove a one half of a
problem when switching views, where the scenery center was far off for one or
two frames past switching from one view to the next. Also included is a fix
to the other half of this problem, where the view position was not yet copied
into a view when it is switched (at least under glut). This was responsible
for the 'Error: ...' messages of the cloud subsystem when views were
switched.

19 years agoHarald Johnsen: Fix a 'terrible' bug with culling of the clouds.
ehofman [Tue, 26 Apr 2005 20:14:37 +0000 (20:14 +0000)]
Harald Johnsen: Fix a 'terrible' bug with culling of the clouds.

19 years agoIRIX fixes.
ehofman [Tue, 26 Apr 2005 09:08:58 +0000 (09:08 +0000)]
IRIX fixes.

19 years agoHarald Johnson:
ehofman [Tue, 26 Apr 2005 08:30:38 +0000 (08:30 +0000)]
Harald Johnson:

Changes
=======

- corrected some strange behavior when playing with the render dialog options
- the density slider is now working : if you are fps limited and still want to see clouds in
  the distance you should play with that
- added the choice for texture resolution, its more comprehensible now (before it was
  wrongly allways choosing 64x64 textures)
- changed the initial texture size : you now have 64 texture of 64x64, this uses 1Mo of
  texture memory (before it was 20 texture of  256x256, that took more memory and there was
  not enought impostors)
- sun vector is now right so the lighting is a bit better
- removed useless sort and light computations for impostors, this should save a lot of cpu
- blending of distant cloud is more accurate now
- clouds are now positioned correctly, they don't try to escape you anymore
- no more red/white boxes around cloud
- textures are now filtered (no more big pixels)

known bugs
==========

- distant objects are seen in front of clouds

19 years agoDon't refference GLUT but GLU instead.
ehofman [Sun, 24 Apr 2005 13:55:20 +0000 (13:55 +0000)]
Don't refference GLUT but GLU instead.

19 years agoThis one time I did a commit using Linux. <sigh>
ehofman [Sun, 24 Apr 2005 11:45:34 +0000 (11:45 +0000)]
This one time I did a commit using Linux. <sigh>

19 years agoHarald Johnson:
ehofman [Sun, 24 Apr 2005 11:16:50 +0000 (11:16 +0000)]
Harald Johnson:

- new and updated sources for the new volumetric clouds
- 2 new textures for the clouds
- an update to the render dialog to enable/disable and change a few parameters
  for the new clouds

19 years agoSupport for a "forindex(idx; list) {...}" construct analagous to
andy [Fri, 22 Apr 2005 21:54:16 +0000 (21:54 +0000)]
Support for a "forindex(idx; list) {...}" construct analagous to
foreach, except that the variable gets the index instead of the list
element.  Should be useful, and took almost no code to implement.

Support for operator/assignment syntax: +=, -=, *=, /= and ~= now do
what you think they should.

Library support for a bind() function (see the docs Andy is still
writing), allowing runtime modifications to function lexical
environments.

19 years agoFix clamping of the minimum hash size, because the Melchior discovered
andy [Tue, 19 Apr 2005 14:19:46 +0000 (14:19 +0000)]
Fix clamping of the minimum hash size, because the Melchior discovered
  that the column math goes wacky when lgalloced is allowed to be
  zero.
Augment the find() function to take a starting index.
Fix strc() to use a default index of zero.
Fix parser precedence of TOK_MINUS, so that "a-b-1" means (a-b)-1 and
  not a-(b-1).

19 years agoNon gcc fixes.
ehofman [Tue, 19 Apr 2005 12:30:12 +0000 (12:30 +0000)]
Non gcc fixes.

19 years agoFix crash in the code generator when compiling a (now illegal, because
andy [Mon, 18 Apr 2005 20:43:29 +0000 (20:43 +0000)]
Fix crash in the code generator when compiling a (now illegal, because
"var" is a reserved word) expresssion of the vorm "var=<expr>".

19 years agoUpgrade to nasal 1.0 test candidate
andy [Mon, 18 Apr 2005 19:48:47 +0000 (19:48 +0000)]
Upgrade to nasal 1.0 test candidate

19 years agoFix boolean semantics so that the empty string evaluates to false, and
andy [Wed, 30 Mar 2005 18:45:01 +0000 (18:45 +0000)]
Fix boolean semantics so that the empty string evaluates to false, and
numeric strings are false if their numeric values are false.

19 years agoMelchior FRANZ:
ehofman [Mon, 28 Mar 2005 09:13:45 +0000 (09:13 +0000)]
Melchior FRANZ:

Re-organisation: <diffuse>, <ambient>, <emission>, <specular> are
now groups with members <red>, <green>, <blue>, <factor>, <offset>,
and their <*-prop> forms. Additionally, there's an option <property-base>
that can be used to set a path that is prepended to all <*-prop> paths.
It defaults to an empty string. Rationale: see model-howto.html.

19 years agoDon't parse a single "e" or "E" as a numerical zero. You need a
andy [Tue, 22 Mar 2005 20:28:47 +0000 (20:28 +0000)]
Don't parse a single "e" or "E" as a numerical zero.  You need a
numerical prefix to use the 1.0e12 notation, "e" alone is not enough.

19 years agoMelchior FRANZ:
ehofman [Tue, 22 Mar 2005 13:12:51 +0000 (13:12 +0000)]
Melchior FRANZ:

here is the promised material animation. It looks a bit longish, but that
wasn't avoidable -- there are simply too many parameters to consider. I tried
hard, though, to make the animation fast by only doing the necessary stuff.
It doesn't affect the frame rate here with my test model. The animation is
heavily based on Jim's "material-emission" animation.

* implementation of the "material" animation (this required to make the
  texture path available) + documentation update ($FG_ROOT/Docs/)
* fix some more return values (texture animations, and select) for the
  shadow problem (and some in anticipation of other problems  :-)
* fix compiler warning

19 years agoMelchior FRANZ:
ehofman [Sat, 19 Mar 2005 10:19:30 +0000 (10:19 +0000)]
Melchior FRANZ:

the cause for the disappearing shadows is, that SimGear doesn't tell plib
to call the pre-traversal-callback function on culled objects. These calls,
however, are necessary to execute the transform animation that does, for
example, translate a shadow back into the frustum! Curretnly, the callback
is only executed, and the shadow only magically pops up again, when the object
enters the frustum because the view has changed significantly.

The plib documentation does only talk about TRUE and FALSE for possible
return values from the pre-traversal-callback. But src/ssgEntity.cxx reads
like this:

   int ssgEntity::preTravTests ( int *test_needed, int which )
   ...
       int result = (*preTravCB)(this,which) ;

       if ( result == 0 ) return FALSE ;
       if ( result == 2 ) *test_needed = 0 ;
   ...

So the return value needs to be 2 to bypass the cull test for pretraversal,
and get the pretraversal in any case. I only changed the return values in
four animations: scale, rotate, translate, and range, because these are
the most likely to move an object out of the frustum. It's not necessary
for blend/alpha/texture manipulation etc. Of course, this is a bit more work
for plib, but the performance will probably not be affected, because:

* these four animations are mainly used for the aircraft model (the spin
  and billboard (trees!) animations are not affected)

* the number of extra nodes to process is quite low

* a part of the time spent for the extra nodes to be processed, was before
  used for workarounds that are now not necessary any more

I didn't observe a frame rate drop, at least.

19 years agoOops, fixed the wrong test
andy [Sat, 12 Mar 2005 15:51:37 +0000 (15:51 +0000)]
Oops, fixed the wrong test

19 years agoOff by one error when printing exact poweres of ten
andy [Sat, 12 Mar 2005 15:49:53 +0000 (15:49 +0000)]
Off by one error when printing exact poweres of ten

19 years agoFix an infinite loop (due to an overflow condition) when printing some
andy [Fri, 11 Mar 2005 21:49:31 +0000 (21:49 +0000)]
Fix an infinite loop (due to an overflow condition) when printing some
very large numbers.

19 years agoFix the fixes. Note that "." had the same problem as "+" and "-", and
andy [Fri, 11 Mar 2005 20:39:07 +0000 (20:39 +0000)]
Fix the fixes.  Note that "." had the same problem as "+" and "-", and
that we can still match non-identical constants if they are both
strings with the same numerical value.

19 years agoDon't parse the strings "+" and "-" as numerical zeros. Also fix the
andy [Fri, 11 Mar 2005 19:07:06 +0000 (19:07 +0000)]
Don't parse the strings "+" and "-" as numerical zeros.  Also fix the
code generation of constant objects to use real identity and not Nasal
equality, so (e.g.) the constants 1 (number) and "1.0" (string) do not
get turned into the same object in the generated code.

19 years agoIma Sudonim:
ehofman [Thu, 10 Mar 2005 08:58:48 +0000 (08:58 +0000)]
Ima Sudonim:

I have (hopefully) generated a patch for a previously mentioned simgear  problem for a hang condition in mac os x.  Mentioned in  <http://baron.flightgear.org/pipermail/flightgear-devel/2005-February/ 035004.html>

19 years agoautomake 1.8+ fixes
ehofman [Tue, 15 Feb 2005 18:13:15 +0000 (18:13 +0000)]
automake 1.8+ fixes

19 years agoMore MacOS X fixes
ehofman [Sat, 12 Feb 2005 12:44:46 +0000 (12:44 +0000)]
More MacOS X fixes

19 years agoFixes from Norman for users running Cugwin with the XServer package installed.
ehofman [Fri, 11 Feb 2005 15:19:04 +0000 (15:19 +0000)]
Fixes from Norman for users running Cugwin with the XServer package installed.

19 years agoMacOS X fix(?)
ehofman [Fri, 11 Feb 2005 15:07:22 +0000 (15:07 +0000)]
MacOS X fix(?)

19 years agoComment out GLX code for MacOS and (hopefully) add some MacOS AGL compattible code...
ehofman [Tue, 1 Feb 2005 10:35:43 +0000 (10:35 +0000)]
Comment out GLX code for MacOS and (hopefully) add some MacOS AGL compattible code. More needs to be done though.

19 years agoMacOS doesn't have glx.h
ehofman [Mon, 31 Jan 2005 18:29:38 +0000 (18:29 +0000)]
MacOS doesn't have glx.h

19 years agoJim Wilson:
ehofman [Mon, 31 Jan 2005 18:21:12 +0000 (18:21 +0000)]
Jim Wilson:

Fix a couple of loose ends and missed edits on the earlier patch.  For the
most part no change in functionality.

19 years agoCygwin fixes
ehofman [Mon, 31 Jan 2005 18:07:40 +0000 (18:07 +0000)]
Cygwin fixes

19 years agoWindows fixes.
ehofman [Sat, 29 Jan 2005 11:44:01 +0000 (11:44 +0000)]
Windows fixes.

19 years agoJim Wilson:
ehofman [Sat, 29 Jan 2005 10:31:25 +0000 (10:31 +0000)]
Jim Wilson:

This patch adds support to the model animation system for modifying emissive
states on the fly so that it is possible to make "lights" appear to dimm.

This is an example of a configuration entry which should explain how it is used:

 <animation>
  <type>material-emission</type>
  <object-name>Face</object-name>
  <property>/controls/lighting/instruments-norm</property>
  <emiss-red>1.0</emiss-red>
  <emiss-green>0.8</emiss-green>
  <emiss-blue>0.5</emiss-blue>
 </animation>

Note the color entries are the emissive colors when the "property" value is
1.0.  They are useful for tinting the light.   The "property" itself must be
float or double and is clamped to values between 0 ~ 1.0 inclusively.   The
"property" value is multiplied against the colors to get the actual material
properties.  Thus property value 0.0 = darkest, and 1.0 = brightest.

19 years agoMSVC fix.
ehofman [Fri, 28 Jan 2005 15:23:26 +0000 (15:23 +0000)]
MSVC fix.

19 years agoFrederic Bouvier:
ehofman [Fri, 28 Jan 2005 15:21:29 +0000 (15:21 +0000)]
Frederic Bouvier:

code.c is C code ( according to the file extension ), so variables should be declared at the beginning of the function.

19 years agouse a proper delete[]
ehofman [Fri, 28 Jan 2005 15:15:23 +0000 (15:15 +0000)]
use a proper delete[]

19 years agoMSVC fixes
ehofman [Fri, 28 Jan 2005 09:32:57 +0000 (09:32 +0000)]
MSVC fixes

19 years agoFix an NVIDIA problem.
ehofman [Thu, 27 Jan 2005 17:49:22 +0000 (17:49 +0000)]
Fix an NVIDIA problem.

19 years agoAdd a RenderTexture test program.
ehofman [Thu, 27 Jan 2005 10:56:22 +0000 (10:56 +0000)]
Add a RenderTexture test program.

19 years agoMelchior FRANZ:
ehofman [Thu, 27 Jan 2005 10:47:09 +0000 (10:47 +0000)]
Melchior FRANZ:

If alcOpenDevice( NULL ) is NULL, then context is never assigned a
value, and it's pointless to ask for it in the next "if". But as the
ALCcontext that context points to doesn't seem to be fully defined
(OpenAL bug), valgrind still complains ...

Erik Hofman:
Extend this some further and define context=0 otherwise and check for
context != 0 before using it.

19 years agoMelchior FRANZ:
ehofman [Thu, 27 Jan 2005 10:42:31 +0000 (10:42 +0000)]
Melchior FRANZ:

Trying to find the bug in tower.cxx (that crashes fgfs quite frequently
for me!), I'm playing with valgrind again. Until I'm in the ATC subsystem
there will be some other bugs and nitpicking along the way.

valgrind doesn't like that imgage->tmp is once allocated with new and
once with new[], sometimes with malloc() (via map), and sometimes freed
with delete (not delete[]!) and sometimes with free(). With simple types
such as GLubyte this shouldn't really make a difference, but anyway.

Also, I promised that I'd send patches for "if (foo) delete foo;" as
I'm making other changes to concerned files. texture.cxx is one with a
few occurrences thereof. (Remember: C++ explicitly allows to delete
null-pointers, so this check is redundant, and hence not tolerated in
other projects, such as KDE. Doesn't have to impress us, of course.  :-)

Also, fixes 4 signed/unsigned warnings (gcc 3.3.4)

19 years agoAdd Mark Haris' RenderTexture class based on SimGear's extesion support files.
ehofman [Thu, 27 Jan 2005 10:39:15 +0000 (10:39 +0000)]
Add Mark Haris' RenderTexture class based on SimGear's extesion support files.

19 years agoMove error handling in setupFuncall above the stack frame creation.
andy [Tue, 25 Jan 2005 22:37:22 +0000 (22:37 +0000)]
Move error handling in setupFuncall above the stack frame creation.
The error properly belongs to the enclosing scope, not the called
(non-)function.  This bug was fixed a few months back in my private
tree, but Melchior just discovered that the new Concorde scripts
tickle it.  I really need to re-synchronize SimGear with my own Nasal
tree...

19 years agoAdd a bunch of extensions in preparation of render-to-texture support.
ehofman [Tue, 25 Jan 2005 18:33:59 +0000 (18:33 +0000)]
Add a bunch of extensions in preparation of render-to-texture support.

19 years agoFrederic Bouvier:
curt [Mon, 24 Jan 2005 21:46:12 +0000 (21:46 +0000)]
Frederic Bouvier:

The Beaver triggered a problem ( uninitialized variable ). Here is the updated
code.

19 years agoFrederic Bouvier:
curt [Mon, 24 Jan 2005 19:49:35 +0000 (19:49 +0000)]
Frederic Bouvier:

this is the animation code that do randomisation of the spin animation. The XML tags are modified to support the syntax below :

  <use-personality type="bool">true</use-personality>
  <factor>
    <random>
      <min>1.8</min>
      <max>2.2</max>
    </random>
  </factor>
  <starting-pos-deg>
    <random>
      <min>0</min>
      <max>360</max>
    </random>
  </starting-pos-deg>

instead of usual :

  <factor>1.42</factor>
  <starting-deg-pos>42.0</starting-deg-pos>

19 years agoErik Hofman
ehofman [Mon, 24 Jan 2005 15:51:37 +0000 (15:51 +0000)]
Erik Hofman

1. Remove the dependency on alut  which (on certein platforms) might pose
   some restrictuons on commercial use.

2. Create a sound source just prior to playing the sound and destroy it
   again when the sound has stopped. This should greatly reduce the
   error reports from Windows users.

19 years agoMelchior FRANZ:
ehofman [Thu, 20 Jan 2005 09:28:04 +0000 (09:28 +0000)]
Melchior FRANZ:

The following patches to SimGear & FlightGear ...

- create an FGMetar abstraction layer, whose purpose is:
  * provide defaults for unset values
  * interpolate/randomize data (GREATER_THAN)
  * derive additional values (time, age, snow cover)
  * consider minimum identifier (CAVOK, mil. color codes)
- add rain/hail/snow/snowcover support on the METAR side
- add max age of METAR data handling (currently set to
- add support for an external METAR cache proxy server
- add CAVOK handling
- set missing year/month in regular METAR messages
- fix a small bug in metar.cxx (wrong return value)

19 years agoReady for 0.3.8 release.
curt [Tue, 18 Jan 2005 14:34:13 +0000 (14:34 +0000)]
Ready for 0.3.8 release.

19 years agoRequire plib-1.8.4
curt [Mon, 17 Jan 2005 21:48:05 +0000 (21:48 +0000)]
Require plib-1.8.4

19 years agoUse the double precission pow() function to get Solaris compiling.
ehofman [Sun, 16 Jan 2005 08:52:22 +0000 (08:52 +0000)]
Use the double precission pow() function to get Solaris compiling.

19 years agoSolaris fix
ehofman [Sat, 15 Jan 2005 14:24:28 +0000 (14:24 +0000)]
Solaris fix

19 years agoSolaris fix.
ehofman [Sat, 15 Jan 2005 14:22:56 +0000 (14:22 +0000)]
Solaris fix.

19 years agoMingW/MSYS fix
ehofman [Sat, 15 Jan 2005 14:18:30 +0000 (14:18 +0000)]
MingW/MSYS fix

19 years agoEliminate some compiler warnings about converting float to int.
ehofman [Sat, 15 Jan 2005 11:57:34 +0000 (11:57 +0000)]
Eliminate some compiler warnings about converting float to int.

19 years agoAdd a make_bumpmap and a make_maxcolorwindow function, modify the make_normalmap...
ehofman [Sat, 15 Jan 2005 10:48:40 +0000 (10:48 +0000)]
Add a make_bumpmap and a make_maxcolorwindow function, modify the make_normalmap function to maximize the color window before proceding.

19 years agoAdd support for contrast.
ehofman [Fri, 14 Jan 2005 15:52:56 +0000 (15:52 +0000)]
Add support for contrast.

19 years agolittle endian fixes.
ehofman [Fri, 14 Jan 2005 14:27:57 +0000 (14:27 +0000)]
little endian fixes.

19 years agoAdd a make_grayscale function and call it from make_normalmap automatically, removing...
ehofman [Fri, 14 Jan 2005 13:36:38 +0000 (13:36 +0000)]
Add a make_grayscale function and call it from make_normalmap automatically, removing the need to do it make_grayscale prior to calling make_normalmap.

19 years agoFix a mistake.
ehofman [Fri, 14 Jan 2005 13:12:44 +0000 (13:12 +0000)]
Fix a mistake.

19 years agoAdd a function to calculate the normalmap from a regular texture.
ehofman [Fri, 14 Jan 2005 13:08:57 +0000 (13:08 +0000)]
Add a function to calculate the normalmap from a regular texture.

19 years agoRGBA textures can be made monochrome also
ehofman [Fri, 14 Jan 2005 10:12:00 +0000 (10:12 +0000)]
RGBA textures can be made monochrome also

19 years agoFix a few bugs and add a make_monochrome() function
ehofman [Fri, 14 Jan 2005 10:09:21 +0000 (10:09 +0000)]
Fix a few bugs and add a make_monochrome() function

19 years agoSome small updates to the saving code.
ehofman [Thu, 13 Jan 2005 18:35:56 +0000 (18:35 +0000)]
Some small updates to the saving code.

19 years agoFix a crash situation.
ehofman [Thu, 13 Jan 2005 18:05:46 +0000 (18:05 +0000)]
Fix a crash situation.

19 years agoUpdate the code a bit more, add a function to retreive the last error string and...
ehofman [Thu, 13 Jan 2005 14:47:31 +0000 (14:47 +0000)]
Update the code a bit more, add a function to retreive the last error string and add a function to write SGI texture fils.

19 years ago- Fix a couple oops's in cloud.cxx
curt [Tue, 11 Jan 2005 16:02:39 +0000 (16:02 +0000)]
- Fix a couple oops's in cloud.cxx
- In sky.cxx blend low density cloud layers (few/scattered) into nothing (but
  don't touch visibility distance) as we approach them so we can fly through
  clean.
- For high density cloud layers (broken/overcast) we do not fade the layers
  out, but we fade visibility to nearly nothing as we approach the layer.

19 years agoAdd a method to SGCloudLayer to set overall cloud alpha. This gives us the
curt [Tue, 11 Jan 2005 15:21:58 +0000 (15:21 +0000)]
Add a method to SGCloudLayer to set overall cloud alpha.  This gives us the
capability to slowly fade a cloud layer in or out.

We use this effect in combination with lowering visibility as we approach
a cloud layer to hide the fact that it is simply a 2d textured polygon being
drawn across the sky.

19 years agoDo not reduce visibility when passing through a 'few' or 'scattered'
david [Mon, 10 Jan 2005 23:34:52 +0000 (23:34 +0000)]
Do not reduce visibility when passing through a 'few' or 'scattered'
cloud layer (i.e. <50% coverage).  This is a quick hack rather than a
proper fix, but it will at least make it possible to get above a
scattered layer VFR.

19 years agoAdd support for binding a thread to a specific CPU (IRIX only at this time).
ehofman [Sun, 9 Jan 2005 10:24:54 +0000 (10:24 +0000)]
Add support for binding a thread to a specific CPU (IRIX only at this time).

19 years agoFrederic Bouvier:
ehofman [Sat, 8 Jan 2005 11:47:19 +0000 (11:47 +0000)]
Frederic Bouvier:

It comes to me that the bulk of all problem reports, especially from Windows users, have it's cause in an obsolete sound driver. These messages should direct them to the right solution before complaining.

19 years agoUpdates for 0.3.8-pre2 release.
curt [Mon, 3 Jan 2005 19:05:32 +0000 (19:05 +0000)]
Updates for 0.3.8-pre2 release.

19 years agoMelchior FRANZ:
ehofman [Thu, 23 Dec 2004 13:32:01 +0000 (13:32 +0000)]
Melchior FRANZ:

My recent fix for the load/save fgfs.sav feature was a bit too ambitious.
While aliases lead to abortion before, I tried to copy them properly,
although this wasn't a requirement. Unfortunately, this seems to have
worked for absolute aliases only, not for relative ones, and hence broke
several panel instruments. The attached patch backs most of the previous
patch out again, and goes a simpler route: just ignore aliases.

19 years agoMelchior FRANZ:
ehofman [Sun, 19 Dec 2004 10:19:14 +0000 (10:19 +0000)]
Melchior FRANZ:

fgLoadFlight() loads a property file ("fgfs.sav") to a new property tree,
and then copies that over to the main tree. copyProperties() didn't know
how to handle type SGPropertyNode::ALIAS and hence threw an exception that
made fgfs abort.

The attached patch adds support for ALIAS to copyProperties(): aliased
nodes are created in the target tree if necessary, and then linked like in
the source tree. It seemed useful to add an optional argument to
props.[ch]xx/getType() that would indeed return the property type "ALIAS"
for aliased nodes, and not the type of the node that it refers to. The patch
also fixes a bug in writeNode() that caused extra lines after alias entries.

If there's resistance to the change to getType() (David?) I can easily use
isAlias(). This just makes copyProperties() a tad uglier, but I can live with
it. It's useful for scanning a tree, though, if an alias node can be treated
exactly like all other nodes, without automatic redirection.

19 years agogcc 4.0 fix.
ehofman [Sat, 18 Dec 2004 10:53:54 +0000 (10:53 +0000)]
gcc 4.0 fix.

19 years agoInitialize volume to inaudiable at startup.
ehofman [Thu, 16 Dec 2004 13:15:13 +0000 (13:15 +0000)]
Initialize volume to inaudiable at startup.

19 years agoMore prerelease updates.
curt [Wed, 15 Dec 2004 16:45:57 +0000 (16:45 +0000)]
More prerelease updates.

19 years agoPrerelease updates.
curt [Wed, 15 Dec 2004 16:34:14 +0000 (16:34 +0000)]
Prerelease updates.

19 years agoThreads detection code cleanup and FreeBSD fixes.
ehofman [Mon, 13 Dec 2004 20:31:44 +0000 (20:31 +0000)]
Threads detection code cleanup and FreeBSD fixes.