Commit Graph

2008 Commits

Author SHA1 Message Date
Robert Osfield
6d9641a78b Added a concrete osg::DeleteHandler implementation which provides support for
retain objects for several frames before deleting them.  Also added RenderStageCache
into CullVistor.cpp that is used for handling RTT osg::Camera's that are being
used in double buffered SceneView usage.
2007-02-02 12:41:13 +00:00
Robert Osfield
158921574c Improved the toggling on/off of thrading modes 2007-02-01 11:07:53 +00:00
Robert Osfield
8dfc5155f4 Further work on new threading model. 2007-01-31 22:24:20 +00:00
Robert Osfield
f8213d1c53 Updated wrappers 2007-01-30 14:47:13 +00:00
Robert Osfield
77b9a7ae19 From Eric Sokolwsky, "osgText is a useful node kit, but when longer paragraphs are displayed
on the screen, it looks more aesthetically pleasing to have a larger
gap between lines than is given by default. I added a new parameter,
lineSpacing, in the Text class to allow the line spacing to be adjustable
by the application. The default value is 0 meaning there is no extra
spacing given. The value should be given as a percentage of the character
height. A good value for longer paragraphs is 0.25 (25%) or more."
2007-01-30 14:32:12 +00:00
Robert Osfield
35c720420e From Bryan Thrall, "The osgDB::ReaderWriter and osgDB::ReaderWriter::Options classes have
copy constructors that take a const osg::CopyOp rather than a
osg::CopyOp&, forcing an unnecessary copy. The attached header fixes
this, based off OSG 1.2.

Also fixed duplicate "or" openArchive()'s comment."
2007-01-30 14:18:39 +00:00
Robert Osfield
b8d98a2cfe Added support for compute average stats attributes in inverse space to improve
the quality of frame rate reporting.
2007-01-30 13:48:04 +00:00
Robert Osfield
ecedc8d86a Added Stats::collectStats(string,bool) controls, getAveragedAttribute methods into osg::Stats class, and
related support into osgViewer::Viewer and osgViewer::StatsHandler.

Added lazy updating of text in StatsHandler HUD to minimize the impact of
slow text updating on observed frame rates.
2007-01-30 11:40:23 +00:00
Robert Osfield
fd0ea388c2 Began work on providing support for threading camera cull traversals in parallel with
the previous frames draw traversal.  Changes range from osg::State, through osgUtil::RenderBin, through to osgViewer
2007-01-29 22:44:29 +00:00
Robert Osfield
af6de09ab4 Added set/getRealizeOperation() to Viewer and CompositeViewer 2007-01-28 17:11:21 +00:00
Robert Osfield
60b5c68221 From Vlad Danciu, fixed leaf depth sort functor 2007-01-28 09:30:11 +00:00
Robert Osfield
9168d1130e From Mike Wittman, "This file removes the virtual destructor of osgText::String. It seemed wrong that osgText::String should have a vtable since it is treated like a value type, and any subclasses containing additional data would effectively be subject to slicing during standard usage. This stuck out as an anomaly when classifying the OSG types for C# bindings." 2007-01-28 09:17:10 +00:00
Robert Osfield
27f6f7c790 Added access methods to PositionStateContainer 2007-01-27 14:27:54 +00:00
Robert Osfield
5bf2dfe3b1 Added _sorted flag into RenderBin to prevent a bin being sorted twice in one frame 2007-01-27 12:54:33 +00:00
Robert Osfield
36330f7e40 Changed osgUtil::RenderBin and osg::State to allow nesting of StateSet's associated with RenderBin's. 2007-01-27 11:13:01 +00:00
Robert Osfield
0c5e9e5a2e Added Program pointer to help with uniform apply. 2007-01-26 16:08:52 +00:00
Robert Osfield
7232a831da Added osg::FrameStamp::set/getSimulationTime().
Added setting of osg_SimulationTime and osg_DeltaSimulationTime to the uniforms set by SceneView

Added frame(double simulationTime) and advance(double simulationTime) parameters to
osgViewer::SimpleViewer, Vewer and CompositeViewer.

Updated various examples and Nodes to use SimulationTime where appropriate.
2007-01-25 12:02:51 +00:00
Robert Osfield
a01cade782 Added setHandled/getHandled to osgGA::GUIEventAdapter 2007-01-24 12:21:29 +00:00
Robert Osfield
056ce866b0 From André Garneau, "
* Setup proper pixel format for ATI boards (removal of WGL_SWAP_METHOD_ARB specification from the requested pixel format since unsupported by the ATI driver)

    * Fix to create sample OpenGL window on the proper display device. This is the temporary window used to choose the desired pixel format. In the previous version, this window was always created on the primary display device, even though it had potentially different pixel formats compared to the target display device containing the window to be created.

    * Implementation of WindowingSystemInterface::setScreenResolution() method

    * Implementation of WindowingSystemInterface::setScreenRefreshRate() method

    * Implementation of GraphicsWindow::requestWarpPointer() method

    * Implementation of GraphicsWindow::useCursor() method and associated trait support. This can be used in two ways; first, when the graphics trait requested indicates that no cursor should be present, a new cursor-less window class is used to create the window. When a cursor-enabled window creation is requested, another window class is used. After creation of a window, it is also possible to toggle the cursor state by using the GraphicsWindow::useCursor method.

    * The way the mouse behaves is now compatible with the behaviour seen on X11; i.e. when pressing a mouse button, the window where the pointer is located will capture the mouse input and release it only after the button has been released. This results in all mouse movement events being dispatched to the window where the button was pressed initially until it is released. This improves the interaction with graphics windows.



    * Preparation work has been done to support the ability of moving a window from one screen to another screen and recreating its rendering context when this happens. This has been tested with a mix of NVIDIA and ATI cards and works properly. For the moment being, this feature is commented out due to changes in the core OSG libraries that have been done but need to be submitted later this week for approval by Robert.



Upcoming features



    * Support for moving windows from one screen to another screen seamlessly



    * Ability to set the window (i.e. the application itself creates the rendering window and passes it to the GraphicsWindowWin32 class)



    * Other miscellaneous items"

---------------------------------------------------
2007-01-24 10:02:04 +00:00
Robert Osfield
055abec7a3 Added osg::StateSet* parameter to constructor to make it more convinient to set
up the StateSetManipulator and moved the initialization of locally cached states
into the handle method to ensure a representative version of the StateSet is captured
2007-01-23 16:26:15 +00:00
Robert Osfield
45dea96d75 Added #define of GL_QUERY_RESULT and GL_QUERY_RESULT_AVAILABLE 2007-01-23 16:02:37 +00:00
Robert Osfield
691e4d7b88 Added ability to customize the keys used to control stats 2007-01-23 11:56:10 +00:00
Robert Osfield
affb8f1289 Moved StatsHandler into its own seperate header/source in osgViewer. 2007-01-23 11:01:20 +00:00
Robert Osfield
d6ecce6f5f Improvements to stats 2007-01-22 11:22:37 +00:00
Robert Osfield
b47ef11d74 Initial on screen stats support 2007-01-21 18:24:54 +00:00
Robert Osfield
15a3972be0 Added OSG_EXPORT to Stats to fix Windows build 2007-01-20 09:03:58 +00:00
Robert Osfield
f0e2404541 Added new osg::Stats class for collecting frame stats of different sorts.
Added s/getStats() to osg::View and osg::Camera.
Added population of View::getStats() with frame stats in osgViewer/Viewer.
Added Basic StatsHandler to osgviewer example.
2007-01-19 19:53:23 +00:00
Robert Osfield
a90206bcbb Added EXT_timer_query support 2007-01-19 14:41:29 +00:00
Robert Osfield
ccc8a922a6 Added osg::StencilTwoSided state attribute to wrap up the stencil_two_sided extension.
Added path in osgShadow work for using StencilTwoSided to accelerate shadow volume rendering.
2007-01-18 22:32:18 +00:00
Robert Osfield
ba9e355550 Added support for stencil GL_INCR_WRAP and GL_DECR_WRAP operations 2007-01-18 17:00:42 +00:00
Robert Osfield
552293eb03 Added extra methods WindowSystemInterface for controlling frame rate and resolution, and adde useCursor flag. 2007-01-17 21:11:57 +00:00
Robert Osfield
3ebc5efe05 From Joakim Simonsson, added osgDB::concateFile and osgDB::getRealPath.
Tweaks by Robert Osfield - Moved methods to FileNameUtils, added unix
implementation of getRealPath add extern and OSGDB_EXPORT to function declarations.
2007-01-17 15:59:29 +00:00
Robert Osfield
3ce53da0e1 From André Garneau, Implementation osg GraphicsWindowWin32 2007-01-17 14:21:18 +00:00
Robert Osfield
6cf85cb953 Cleaned up CompositeViewer interface and added event traversal of views 2007-01-16 19:18:32 +00:00
Robert Osfield
1ee2af9f41 Further work on CompositeViewer 2007-01-16 16:01:01 +00:00
Robert Osfield
0873a8cea0 Work on CompositeViewer and related calsses to implement viewers with multiple views 2007-01-16 08:56:33 +00:00
Robert Osfield
91968a9bec Improved handling of intersection computations on datasets with multiple cameras 2007-01-15 16:09:32 +00:00
Robert Osfield
b06dbda224 Added FramStamp into osgViewer::Viewer and added ability to handle setSceneData
during during the application running.
2007-01-15 14:46:16 +00:00
Robert Osfield
b992451586 Added explicit to ParticleEffect constructors 2007-01-12 22:01:56 +00:00
Robert Osfield
007cc9f4ac From Tom Jolley, "There was some unnecessary creation and deletion of Particle objects in
include/osgParticle/ParticleSystem.  I replaced

   Particle(ptemplate? *ptemplate: _def_ptemp)

with

   ptemplate? *ptemplate: _def_ptemp

in a couple of places.  This should make particle creation and reuse go
a little faster without all that memory allocation and copying."
2007-01-12 21:44:28 +00:00
Robert Osfield
785fd5c0d9 From Stephan Huber, "New features:
+ Multi-display-support
+ automatic hiding of the menubar/dock if one of the windows intersects
the menubar/dock

Bugfixes:
+ event-handling was done by the first opened window, other windows did
not receive events -- fixed
+ mouse-coordinates were absolute, now they are relative to the window.

known bugs:
+ windows with decoration and in fullscreen-size are moved by the system
a little bit, so that the titlebar is accessible/visible. So if you want
real fullscreen-windows, don't decorate the window :)

I updated the XCode-project-file so all ported examples are linked
against osgViewer."
2007-01-12 21:33:19 +00:00
Robert Osfield
694b304c00 Added Viewer::setEndBarrierPosition method, change Viewer::setKeySetsDone(int) to setKeyEventSetDone(int),
added support for toggling threading model and end barrier position into osgviewer
2007-01-12 21:05:39 +00:00
Robert Osfield
374f8e30a4 Added DisplaySettings support into osgViewer::Viewer 2007-01-11 12:06:24 +00:00
Robert Osfield
5ee30edbea Added support for setThreadSafeRefUnref into TexGenNode 2007-01-11 10:35:03 +00:00
Robert Osfield
dd958be8a4 Added setThreadSafeRefUnref, resizeGLObjectBuffers and releaseGLObjects to OverlayNode 2007-01-11 10:21:11 +00:00
Robert Osfield
c4279bd5f1 Ported following examples to osgViewer:
osgparticleeffects
osgphotoalbum
osgpick
osgpoints
osgpointsprite
osgprecipitation
osgprerender
osgprerendercubemap
osgreflect
osgscalarbar
osgscribe
osgsequence
osgplanets
2007-01-10 13:52:22 +00:00
Robert Osfield
c5082cb85c Added support for vertex ratios into LineSegmentIntersector. 2007-01-10 10:40:12 +00:00
Robert Osfield
4954262eb0 Added View::computeIntersection implementation for a node withing a scene graph. 2007-01-10 10:09:05 +00:00
Robert Osfield
4d4b342e97 Added View::computeIntersections methods 2007-01-09 17:35:46 +00:00
Robert Osfield
d6d1a46db9 From Stephan Huber, GraphicsWindowCarbon implementation 2007-01-09 10:06:20 +00:00
Robert Osfield
462803fd57 From Paul Martz, speeling fixes for Tessellator/Tessellation. 2007-01-08 21:29:49 +00:00
Robert Osfield
7f5aaa8424 Improved resizeGLObjectBuffers support 2007-01-08 20:46:56 +00:00
Robert Osfield
709d2fa435 Improved the handling a releaseGLObjects() and add setThreadSafeRefUnref and resizeGLObjectsBuffers methods 2007-01-08 20:40:29 +00:00
Robert Osfield
16d1c00a3d Changed the return types of makeCurrent to bool, and added a bool GraphicsContext::releaseContext method
along with implementations in osgViewer.
2007-01-08 19:29:59 +00:00
Robert Osfield
4a5eda6522 Added GraphicsContext::ResizedCallback and GraphicsContext::resizedImplementation.
Added message on non implementation of GraphicsContext::valid().
Added prelimary GraphicsContext clean up support.
2007-01-08 16:20:10 +00:00
Robert Osfield
a3726fba66 Added Tessellator 2007-01-08 14:12:57 +00:00
Robert Osfield
81449a7625 Fixed spelling of Tessellator in comment 2007-01-08 13:28:44 +00:00
Robert Osfield
fdc6e675aa Updated wrappers 2007-01-08 11:37:09 +00:00
Robert Osfield
574761d479 From André Garneau, added export to StatsVisitor 2007-01-07 17:29:34 +00:00
Robert Osfield
773fbd1b16 Added setThreadSafeRefUnref to LightSource 2007-01-07 10:00:50 +00:00
Robert Osfield
0cd64c8c4f Added View::setUpViewOnSingleScreen(uint) method to help set up view on
a single full screen window
2007-01-06 21:06:35 +00:00
Robert Osfield
fea694a0bf Ported osgcluster to osgViewer. 2007-01-05 21:19:01 +00:00
Robert Osfield
9a4209c61b Simplified the nameing of updateTraversal etc methods 2007-01-05 16:48:04 +00:00
Robert Osfield
9fcace0e73 Added GraphicsContext support for clearing the graphis context. The clearing
is off by default (ClearMask is 0), but can be switched on when ClearMask is
non zero.  GraphicsContext::clear() is called after each swap buffers
2007-01-05 15:24:06 +00:00
Robert Osfield
fc07efa656 Added int return type of Viewer::run(). 2007-01-05 13:16:24 +00:00
Robert Osfield
23ac972d4e Added a workaround for computing the time of an event. 2007-01-05 13:01:08 +00:00
Robert Osfield
552bda4cc5 Added Viewer::isRealized() and run() methods to make it easier to
set up and run a viewer, taking care of realized() calls if not already
done, and assigning trackball manipulator if not already assigned.
2007-01-05 10:59:23 +00:00
Robert Osfield
9e30014634 Removed inappropriate comment about normal orientation. 2007-01-05 09:55:04 +00:00
Robert Osfield
0985a06572 Moved the set of GraphicsContext RenderingOperations into Viewer. 2007-01-04 21:49:02 +00:00
Robert Osfield
1fd2047cf5 Added Viewer::setKeySetsDone(int) to allow developers to specify which
key should set done and cause the main loop to exit.
2007-01-04 21:28:16 +00:00
Robert Osfield
733c6e9e62 Changed the ReadWriteMutex to use standard OpenThreads::Mutex to fix
crashes in osgcatch.
2007-01-04 21:14:29 +00:00
Robert Osfield
9a31b7652e Added mutex to lock of ReentrantMutex 2007-01-04 20:50:35 +00:00
Robert Osfield
73fffe1800 Made Refernced::setThreadSafeReferenceCounting(bool) a virtual then overrode
this in various scene graph classes to ensure that the scene graph gets
updated as well as the objects that the initialial call is made from.
2007-01-04 16:49:58 +00:00
Robert Osfield
ff195bddf5 Added Object::resizeGLObjectBuffers(uint) method to help improve the ability
to change the number of active graphics contexts on the fly during an applications
life.
2007-01-04 14:11:51 +00:00
Robert Osfield
0ec854a365 Added support for starting and stopping osgViewer::Viewer threading and
automatic handling of windows being closed.
2007-01-04 11:49:15 +00:00
Robert Osfield
23206270e0 Added catch of window close 2007-01-03 23:00:05 +00:00
Robert Osfield
21869a79a9 From Paul Martz, added export to fix Windows build 2007-01-03 19:11:57 +00:00
Robert Osfield
4f87afdbf5 Improved the robustness of thread start and cancellation 2007-01-03 16:06:12 +00:00
Robert Osfield
f14aa7ef66 Added support for different threading models in osgViewer::Viewer 2007-01-02 17:39:31 +00:00
Robert Osfield
d068f7025a Added support for getting all windows and hiding the cursor 2007-01-02 12:50:57 +00:00
Robert Osfield
7155f7d1b0 Various work on osgViewer library, including warp point and graphics window resize support 2007-01-01 18:20:10 +00:00
Robert Osfield
96071fd1b1 Removed osgViewer::GraphicsWindowProxy as its was causing wrapper compile
problems and also no longer has a key role in osgViewer.
2006-12-28 08:16:36 +00:00
Robert Osfield
d7e3ed3fb2 Updated wrappers 2006-12-27 23:19:37 +00:00
Robert Osfield
11fef2d75e Tweaks from using a ReadWriteMutex& to a ReadWriteMutex* parameter to avoid
problems with osgIntrospection generation.
2006-12-27 23:19:17 +00:00
Robert Osfield
30cb8735d3 Added an osgDB::ReadWriteMutex to help manage the ability to have serialize
write to objects but allow multiple threads to read at once in a read only way.
2006-12-27 16:40:34 +00:00
Robert Osfield
791d884b44 Added GraphicsWindowWin32 and GraphicsWindowCocoa classes, curently not implmented,
but added as a placeholder for members of the community to step forward and implement.
2006-12-27 15:04:04 +00:00
Robert Osfield
6a74240d22 Various tweaks to keep in sync with new changes to osg::Timer and osgGA::EventQueue 2006-12-26 17:38:47 +00:00
Robert Osfield
84d22f9999 Added new adapter methods to EventQueue to allow the time value of the
event to be specified.
2006-12-26 17:37:58 +00:00
Robert Osfield
93dbfa04b7 Aded new convinience methods to osg::Timer - s/getStartTick and time_s(), time_m() etc
to help get time reletive the new start tick.
2006-12-26 17:37:06 +00:00
Robert Osfield
39c0c2df76 Unified the osg::GraphicsThread::Operation and osg::GraphicsContext::Operation classes
as osg::GraphicsOperation.  Unpdated parts of OSG depending upon these.

Added a virtaul bool valid() method to osg::GraphicsContext to allow apps to
test whether a valid graphis context has been created or not.
2006-12-24 16:40:19 +00:00
Robert Osfield
76461b3ab2 Added support for sample and sampleBuffers to osg::GraphicsContext::Traits and
cleaned up the Traits naming
2006-12-22 21:53:44 +00:00
Robert Osfield
401f3bcd43 Added mutexes to ParticleProcessor and ParticleSystemUpdater to improve the thread safety of osgParticle 2006-12-22 21:52:53 +00:00
Robert Osfield
bd6b7d581e Implemented perliminary multi-threading support in osgViewer::Viewer 2006-12-22 17:46:21 +00:00
Robert Osfield
4fc9af7ea0 Moved rendering support into GraphisContext, osgViewer::Viewer/View, and
added frame stamp updating and update traversal to osgViewer::Scene/Viewer.

Updated osgcamera example to use new Viewer API calls instead of using local
rendering calls.
2006-12-21 16:56:20 +00:00
Robert Osfield
8f9d2eeb46 Cleaned up the includes in the GraphicsWindowX11 header 2006-12-21 12:24:20 +00:00
Robert Osfield
a56d273fe3 Moved the implementation of GraphicsWindowX11 from the head into the src/osgViewer directory. 2006-12-21 12:19:14 +00:00
Robert Osfield
7772da71eb Improved the handling of moving the mouse pointer across screens, and add
grab focus support that honours where the mouse pointer was originally.
2006-12-21 11:20:42 +00:00
Robert Osfield
2255771b74 Further work osgViewer::Viewer and related classes. 2006-12-20 21:13:29 +00:00
Robert Osfield
d9d3b99c2e From Paul Martz, "minor code comment cleaup/rewording" 2006-12-19 17:16:14 +00:00
Robert Osfield
c9c2950759 Moved UnitTestFramework from core osg lib into osgunittests example 2006-12-19 17:06:59 +00:00