ehofman [Tue, 5 Jan 2010 11:23:42 +0000 (11:23 +0000)]
Tatsuhiro Nishioka:
These patches fixes minor bug in addition to providing --with-openal-framework and --with-cocoa-framework.
Now you can use your own version of OpenAL.framework for selecting various audio output device.
Plus, you can build FG/SG on Snow Leopard with cocoa configuration.
Tim Moore [Sun, 20 Dec 2009 09:40:26 +0000 (10:40 +0100)]
Merge branch 'ehofman/sound'
Changed include of SGQuat.hxx to SGMath.hxx in
sound/sample_openal.cxx; somehow this happened in a merge commit when
the sound branch was merged to next.
Tim Moore [Mon, 14 Dec 2009 05:52:00 +0000 (06:52 +0100)]
don't render an EffectGeode if there is no valid technique
Normal geometry has a default effect; geometry with no default effect
is unlikely to look correct with no state set applied. This fixes the
problem of clouds being displayed as multi-colored rectangles when
shader effects are turned off.
ehofman [Tue, 17 Nov 2009 13:06:32 +0000 (13:06 +0000)]
Set to default distance attenuation function but change the parameters a but for better sound effects (and most of all quieter sounds at greta distance
Tim Moore [Sun, 15 Nov 2009 22:51:08 +0000 (23:51 +0100)]
When instantiating effects, copy user data of any created nodes.
This bug was the cause of the huge memory consumption / death reported at some places:
the BVH data on "raw" .ac models (random objects) was dropped on the floor.
Tim Moore [Fri, 13 Nov 2009 13:59:29 +0000 (14:59 +0100)]
optimize creation and sharing of effects
Implement equality test and hash for for property trees. In an
Effect, make a hash table of Effects that inherit from it keyed on
their unmerged property tree. Using that, makeEffect() should return a
single Effect for given property tree description. Animations may
change that in the future...
Tim Moore [Tue, 8 Sep 2009 11:09:05 +0000 (13:09 +0200)]
Effects for models
Basically working, at last. Among other things, create effects in
models loaded directly from .ac files; this can happen, for example,
with the random models from the materials library.
ehofman [Tue, 10 Nov 2009 14:28:28 +0000 (14:28 +0000)]
also recalculate the velocity in update_pos_and_orienation, so pass the north-east-down velocity directly and orientate position, orientation and velocity to OpenGL/OpenAL frames (x-right, y-up and z-back)
Tim Moore [Thu, 5 Nov 2009 08:06:18 +0000 (09:06 +0100)]
Property system optimizations
Profiling startup with the new effects code exposed some performance
gotchas. The objective is to reduce allocation of std::string
temporaries, especially when looking up node path names. Also, I
changed some paths to initialize strings with strings instead of char *;
this causes less allocation, at least with glibc. Also, eliminate
the old version of find_node and its helper functions by writing the
template version of find_node_aux to handle an explicit index
parameter.
Also, add const char[] as an internal property type
This doesn't actually add a new type to the property system, but allows using
character arrays as arguments to certain templates.
ehofman [Mon, 2 Nov 2009 10:31:05 +0000 (10:31 +0000)]
Position and orientation fixes thanks to Tim Moore (finaly). Code optimizations by moving code over from SGSoundSample to SGSampleGroup which means it will only run once for every sample group instead of once for every sample.
ehofman [Sun, 1 Nov 2009 14:51:10 +0000 (14:51 +0000)]
proper orientation(?) and comment out relative position and direction code since it messes with OpenAL in such a way that volume doesn't work properly anymore
ehofman [Wed, 28 Oct 2009 14:27:47 +0000 (14:27 +0000)]
Fix a bug where a sample was removed from the sample list before it was stopped. Proper listener orientation when inside the airplane (need to find a good solution for outside view).
ehofman [Sat, 24 Oct 2009 08:18:09 +0000 (08:18 +0000)]
get rid of aut_ptr, it only works with objects that can destroyed with delete (and not even delete[]) which is too limited. take drastic actions to find the sound-not-playing-bug: set all positions and orientations to default all the time.