Commit Graph

7752 Commits

Author SHA1 Message Date
Robert Osfield
e19dbe8daa From Paul Martz, "The attached preserves OpenFlight Object record data as UserData in the osg::Group corresponding to the Object record.
The files are:
    include/osgSim/ObjectRecordData -- The new class. Derives from Object to support .osg IO.
    src/osgPlugins/OpenFlight/PrimaryRecords.cpp -- Reads data into that class.
    src/osgPlugins/osgSim/IO_ObjectRecordData.cpp -- .osg IO support."

From Robert Osfield, made the OpenFlight read object record data optional via the -O readObjectRecordData ReaderWriter option.
2008-03-13 14:09:11 +00:00
Robert Osfield
3a11483ba8 Added support for assigning state to created drawables, implemented gluDisk. 2008-03-13 13:44:34 +00:00
Robert Osfield
9ce276c5d7 From Alberto Luaces, "Here I send minor corrections to the text output by the osgforest example when
building its graphs. The message "Creating billboard based forest" appears
four times regardless of the actual type of the graph being built.
"
2008-03-13 13:43:22 +00:00
Robert Osfield
e9b3f06c1b Updated wrappers 2008-03-12 20:20:55 +00:00
Robert Osfield
1b9cefa10f Added extra constructors 2008-03-12 20:15:45 +00:00
Robert Osfield
db256b962c Added proper implementations of OpenGL 1.0 calls to OSG object representation methods in SceneGraphBuilder. 2008-03-12 20:15:28 +00:00
Robert Osfield
eb9f7428bc Fixed bug in output of ProxyLayer's MinLevel/MaxLevel 2008-03-12 15:28:26 +00:00
Robert Osfield
a26bdd9446 Added default implementations of new SceneGraphBuilder class 2008-03-11 13:29:12 +00:00
Robert Osfield
b2ead391b3 From Mathias Froehlich, "it appears to me that sun CC cannot use static functions from template
functions. The attached change is required to make it compile with sun CC."
2008-03-11 13:23:49 +00:00
Robert Osfield
3537d21ae3 From Jose Delport, added support for finding and using GDAL 1.5 2008-03-11 13:19:08 +00:00
Robert Osfield
3bdfb700aa Added extra event handlers to make viewer more functional 2008-03-11 12:10:09 +00:00
Robert Osfield
5f4e8d54af Added commandline help options 2008-03-10 20:30:56 +00:00
Robert Osfield
af29bccf4f From Andreas Ekstrand and Lars Nilsson, fix for reading Texture Attribute file 2008-03-05 13:54:52 +00:00
Robert Osfield
5deac2ce3a Updated wrappers 2008-03-05 12:05:55 +00:00
Robert Osfield
66f1a6ceaa From Atr Trevs, added missinging initializers 2008-03-05 11:52:56 +00:00
Robert Osfield
6e89dc0d94 From Jean-Sebastien Guay, "I changed osgGA::StateSetManipulator to mirror the
osgViewer::StatsHandler and other handlers which allow you to change the
key(s) you would press to get them to do something. Pretty simple change
but useful in our context and possibly in others too."
2008-03-05 11:33:55 +00:00
Robert Osfield
bc406c8bf0 From Jean-Sebastien Guay, "
The problem can be reproduced by simply changing the osgpick example to
use a CompositeViewer with a single view initialized using
setUpViewAcrossAllScreens(). I have attached a modified osgpick.cpp so
you can test it out quickly (please don't check this file in though :-)
) The eventState is then incorrect and picking does not work. The only
changes are in CompositeViewer.cpp (eventTraversal() method), and fix
the problem for me.
"
2008-03-04 17:57:06 +00:00
Robert Osfield
9d0c950bb0 From Colin McDonald, "Attached is an updated to osgViewer::PixelBufferWin32.
The win32 pbuffer implementation returned an error unless both the
WGL_ARB_pbuffer and the WGL_ARB_render_texture functions were present.
This was too restrictive, as a pbuffer can usefully be created without
render-to-texture, e.g. for use with glReadPixels.  The osg 1.2/Producer
pbuffers worked without RTT, and osgUtil::RenderStage has all the code to
handle both RTT and non-RTT pbuffers, doing a read and copy in the
latter case.

With these changes I have successfully tested the osgprerender example
on a graphics card which supports RTT, and one which doesn't.  Plus
tested in my own application.

In order to aid diagnostics I have also added more function status
return checks, and associated error messages.  I have included the win32
error text in all error messages output.  And there were some errors
with multi-threaded handling of "bind to texture" and a temporary window
context which I have corrected.

These is one (pre-existing) problem with multi-threaded use of pbuffers
in osgViewer & osgprerender, which I have not been able to fix.  A win32
device context (HDC) can only be destroyed from the thread that created
it.  The pbuffers for pre-render cameras are created in
osgUtil::RenderStage::runCameraSetUp, from the draw thread.  But
closeImplementation is normally invoked from the destructor in the main
application thread.  With the additional error messages I have added,
osgprerender will now output a couple of warnings from
osgViewer::PixelBufferWin32::closeImplementation() at exit, after
running multi-threaded on windows.  I think that is a good thing, to
highlight the problem.  I looked into fixing it in osgViewer::Renderer &
osgUtil::RenderStage, but it was too involved for me.  My own
application requirements are only single-threaded.

Unrelated fix - an uninitialised variable in
osg::GraphicsThread::FlushDeletedGLObjectsOperation().
"
2008-03-04 16:39:44 +00:00
Robert Osfield
dd2b4ed83e From Wojciech Lewandowski, "Attached is modified osgShadow::ShadowMap. I changed following things:
1:
Shadow map camera sets ABSOLUTE_RF_INHERIT_VIEWPOINT refernce frame. 
 
2:
Light Direction  by matrix multiplications replaced with transform3x3 multiplication.
 
3:
I made DebugingHUD functional by adding special draw callback. Former version was simply drawing pale square. 
 
4:
I was tempted to make 4 th change but decided to not do it. Instead I put it whith #if VIEW_DEPNDENT_TEXGEN. If you decide you may let it go.
 
When objects are not centered at 0,0,0 coord but in some distant location (for example at surface of earth ellipsoid) shadow texgen suffers from inadequate precision of float matrices. I changed that by premultiplying Texgen matrix (using OSG double matrices) with inverse modelview and applying it later with ModelView identity matrix. This tweak may be appropriate for OverlayNode texgen as well.
 
I left former version because I suspect that this change will make osgShadow::ShadowMap view dependant. Currently texgen matrix remains the same no matter what View displays it. With my change it wuld be different for each view. This touches the subject of View Dependent Shadow Techniques that J-S asked recently."
2008-03-04 16:22:47 +00:00
Robert Osfield
23bc6c2fe5 Refactored the way that the camera settings are inhertied 2008-03-04 16:03:37 +00:00
Robert Osfield
1d18bc7f48 From Art Trevs, "in the current implementation of the FrameBufferObject
there is a bug. The header file do specify something
like  this:

FrameBufferAttachment(Texture3D* target, int zoffset,
int level = 0);

However in the .cpp file we have:

FrameBufferAttachment::FrameBufferAttachment(Texture3D*
target, int level, int zoffset)


Which means that the meaning of level and zoffset is
interchanged.

The file with the corrected line is attached. Should
go into src/osg/
"
2008-03-04 15:29:47 +00:00
Robert Osfield
712ca43219 From Philip Lowman, "A missing _WIN32_WINNT declaration causes MinGW compilation to fail when reaching FileNameUtils.cpp and the Windows 2000 function GetLongPathName() is called." 2008-03-04 15:10:22 +00:00
Robert Osfield
d8f674a59d From Jean-Sebastien Guay and Robert Osfield, added optional --CompositeViewer path into osgpick to illustrate how to do picking in both viewers and as unit test for picking. 2008-03-04 14:19:03 +00:00
Robert Osfield
c4d07194a2 From Art Trevs, add support for saving external shader files.
From Robert Osfield, adding missing member variable initializes and Output::getShaderFileNameForOutput() implementation
2008-03-04 14:04:48 +00:00
Robert Osfield
02b52cb73a From Paul Martz, a third person view CompositeViewer example 2008-03-04 13:30:41 +00:00
Robert Osfield
f7c33bb2e8 Change the setViewAsLookAt method to use Vec3d rather than Vec3 for better precision 2008-03-04 11:53:09 +00:00
Robert Osfield
2db68f98a8 Changed the updateStateSet code so that it creates a new StateSet each update
rather than clear and reuse the existing one, this change fixes a threading
issue that occured when the viewer is in DrawThreadPerContext.
2008-03-04 11:52:21 +00:00
Robert Osfield
a145975de1 Removed single threaded setting 2008-03-04 11:50:35 +00:00
Robert Osfield
a2e8d90194 Implemented fade between layers using MultiTextureControl node 2008-03-03 18:12:21 +00:00
Robert Osfield
289ef1279d Added beginings of new osgmultitexturecontrol example 2008-03-03 14:17:56 +00:00
Robert Osfield
9dcab11267 Updated wrappers 2008-03-01 13:42:07 +00:00
Robert Osfield
d42eee693f Added OSG_EXPORT 2008-03-01 13:40:57 +00:00
Robert Osfield
75d35b6ba1 Fixed typo 2008-03-01 12:50:54 +00:00
Robert Osfield
36bbfa9935 Fixed naming 2008-03-01 12:29:49 +00:00
Robert Osfield
dd9dc85d40 Disabled the resizing of Camera's with FBO's 2008-02-29 16:09:48 +00:00
Robert Osfield
aa43b3c8a6 Added Camera::g/setIntialDrawCallback and g/setFinalDrawCallback(), and added
screen snapshot example code to osghud.
2008-02-29 15:25:57 +00:00
Robert Osfield
ca513efc1d Added LODScaleHandler 2008-02-28 20:02:43 +00:00
Robert Osfield
1dfffc0494 Added OSG_EXPIRY_DELAY env var option. 2008-02-28 18:08:32 +00:00
Robert Osfield
e26579b0ec Moved the delete operations to before of the compile operations to ensure that
delete operations don't get pushed out by allocations
2008-02-28 17:59:44 +00:00
Robert Osfield
79276b3169 From He Sicong, "fixed shader calculation of ray tracing" 2008-02-28 10:56:03 +00:00
Robert Osfield
eb46608be4 From Wojciech Lewandowski and Robert Osfield, Support from LightPointNode::s/getPointSprite parameter. 2008-02-27 12:11:02 +00:00
Robert Osfield
a4a39d32ff From Paul Martz, "Per the discussion in osg-users, this change adds code comments to the Matrix* headers to document assumptions in the getRotate() method." 2008-02-27 11:46:05 +00:00
Robert Osfield
3b4af26136 From Paul Martz, fixed get/set methods API 2008-02-27 11:43:58 +00:00
Robert Osfield
335eed204b Added debug message to track cache usage 2008-02-27 11:43:06 +00:00
Robert Osfield
fdb6b31452 From Melchior Franz, fixed handling of modified keys when entering/leaving window 2008-02-25 17:30:30 +00:00
Robert Osfield
a3a5af18b0 From Franz Melchior, "When switching virtual desktops or minimizing a window, keys
remain in pressed state after revealing, even if they are no
longer pressed on the keyboard. This can have bad effects,
especially if the stuck keys are modifier keys. One has to
press and release the stuck keys again to reset the wrong state.

The fix keeps track of all key presses and releases. On FocusOut
and UnmapNotify it releases all keys that are in pressed state,
and on KeymapNotify (following a FocusIn), it sets the currently
pressed keys again. To avoid confusion in the OSG-using application
normal keys are always reported released /before/ and pressed
/after/ modifier keys.

As current key states are returned as char[32] keymap by
XQueryKeymap and XKeymapEvent, this format is also used to
recognize modifier keys and for maintaining the current
internal key state. Functions to set/clear/query bits in
such a keymap are added.

The patch was extensively tested with osgkeyboard and
FlightGear under KDE and fvwm2. It was not tested on a
Xinerama setup or with multiple windows, but as _eventDisplay
is used throughout, there should be no problems. The patch also
makes the following changes:

- removes old and obsolete handling of modifier keys in ::adaptKey().
 This wasn't only unused, but also wrong (and for that reason commented
 out in revision 7066). The modifier states are actually handled
 in ./src/osgGA/EventQueue.cpp (EventQueue::keyPress/keyRelease).
- fixes some spelling"
2008-02-25 16:50:28 +00:00
Robert Osfield
3c2872a36a From Emmanuel Roche, "I'm joining two zip files to this mail for the modified sources and include files of osgIntrospection.
The modifications I made are very small but they are absolutely usefull to use osgIntrospection with visual studio 7.1 or 8 in debug modes.
This should also solve other minor common problems (converter memory leak, virtual destructor for PropertyInfo, etc...).

I choosed two function names : Reflection::uninitialize() and Type::reset(), this can of course be changed if someone has a better idea...

I made the changes against OSG 2.2.0 public release. I tested the result with VS 7.1, VS 7.1 SP1, VS 8.0 SP1 and AQTime 5.0 on Windows XP SP2... All 4 seem to agree : they detected memory leaks before and don't anymore.

Sorry I haven't take the time to test that on linux but the changes are so small I doubt there could be a problem... I let you check that on your side  :-).

I hope this will help making OSG an even more wonderfull library."
2008-02-25 16:26:30 +00:00
Robert Osfield
fb1b58b2e2 From Stephan Huber, "I missed a refactoring of the handling of modifier-keys, so they did not
work on OS X. Attached you'll find the missing implementation for OS X."
2008-02-25 16:05:53 +00:00
Robert Osfield
69d58d6f7c From Paul Martz, "This change adds "GL_NORMALIZE" and "GL_RESCALE_NORMAL" to .osg IO in place of the hex equivalents." 2008-02-25 15:09:56 +00:00
Robert Osfield
359f056c73 Updated wrappers 2008-02-25 15:08:45 +00:00