Commit Graph

461 Commits

Author SHA1 Message Date
Robert Osfield
0cad7018a6 Added support for enabling the stencil buffer when horizontal and vertical split stereo are used. 2007-08-05 17:06:16 +00:00
Robert Osfield
175bb58b58 From Tim More, "This patch causes GraphicsWindowX11 to not send key release events when a key
press / release is caused by auto-repeat. This is consistent with Windows and Mac
behavior, as well as other toolkits such as SDL."
2007-08-05 14:59:17 +00:00
Robert Osfield
4c3a13c3a1 From Andy Skinner, fixes for avoiding warnings about mixing c and c++ versions of c libs. 2007-08-05 14:51:56 +00:00
Robert Osfield
6d0f828524 Disable the selection of CullPerCameraDrawPerContext until I am able to fix this
threading model
2007-08-04 17:04:37 +00:00
Robert Osfield
9b9e4cd7c8 Added perlimnary support for reading the DISPLAY variable. 2007-08-03 14:50:58 +00:00
Robert Osfield
cb6640a65e Changed the projection matrix resize policy. 2007-08-02 16:23:40 +00:00
Robert Osfield
c346f5b943 Introduce new osgViewer::Renderer class for implementing of the rendering
of cameras in viewers
2007-08-02 11:02:47 +00:00
Robert Osfield
8fa79e8c7e Ported across Viewer's to use osgUtil::GLObjectOperation, added second option
in GLObjectOperation to handle cases when no subgraph is registered, in these
case the code now compile all Camera subgraphs.
2007-07-30 10:52:37 +00:00
Robert Osfield
59d3e0ceb7 From Andy Skinner, adding C includes to avoid issues when mixing C and C++ standard includes 2007-07-28 10:44:03 +00:00
Robert Osfield
3d9d666b02 From Stephan Huber, added reset of _currentContext when graphics context is closed. 2007-07-27 17:07:44 +00:00
Robert Osfield
2faf38f68f From Stephan Huber, "attached you'll find a fix for the dead locks when closing a window
under OS X."
2007-07-27 16:48:31 +00:00
Robert Osfield
1b9fac45e1 From Thibault Genessay, "Attached is an unitialized variable fix I spotted with Purify. The _currentCursor (of type HCURSOR) member of the graphics window was not properly initialized, causing potential problems if setCursor() was called before anything else set it." 2007-07-26 19:31:41 +00:00
Robert Osfield
ff267d1ad6 Added support for using the CompileContext to do GL object deletion. 2007-07-22 20:33:20 +00:00
Robert Osfield
f7ce35c5ee Converted Operations to GraphicsOperations where apporpriate. 2007-07-13 19:24:50 +00:00
Robert Osfield
ee470f2445 From Mathias Froehlich, "This patch removes the X11/Xmu/WinUtil.h header from GraphicsWindowX11.cpp.
That one is not used and appears not to be present on every platform we
compile on."
2007-07-13 11:42:02 +00:00
Robert Osfield
b2535d55c6 Introduced new GUIEventAdatper singleton for sharing the current state between
multiple GraphicsWindows, this singleton is accessable via GUIEventEvent::getAccumulatedEventState().

Added use of this new singleton in GraphicsWindow* implementations.

Added WindowSizeHandler to osgkeyboard to help with debugging of event state
between windows.
2007-07-13 11:17:41 +00:00
Robert Osfield
ecf0b58a19 Renamed include/osg/OperationsThread to OperationThread.
Created a new GraphicsThread subclass from OperationThread which allows the
GraphicsContext specific calls to be moved out of the base OperationThread class.

Updated the rest of the OSG to respect these changes.
2007-07-12 15:54:45 +00:00
Robert Osfield
095da72020 Fixed typo 2007-07-11 16:06:04 +00:00
Robert Osfield
b93539ee09 Added setting of the Scene's FrameStamp on each CompositeViewer::updateTraversal() call to fix animation path issue. 2007-07-11 13:48:41 +00:00
Robert Osfield
a4499b482b Fixed missinged intialization of the _threadsRunning variable. 2007-07-09 10:12:37 +00:00
Robert Osfield
50ec07b734 Added include of DeleteHandler 2007-07-06 16:54:45 +00:00
Robert Osfield
6931ae4878 Added include/osg/GLObjects + .cpp which provide osg::flush*DeletedGLObjects() methods.
Added and cleaned up DeleteHandler calls in osgViewer to help avoid crashes on exit.

Changed DatabasePager across to dynamically checcking osg::getCompileContext(..)

Updated wrappers.
2007-07-06 13:08:51 +00:00
Robert Osfield
d1fa520349 Added support for managing a CompileContext. Rearranged the DeleteHandler::flushAll call. 2007-07-05 18:33:20 +00:00
Robert Osfield
0434d29ad4 From Adndre Garneau, "Attached is a fix to prevent a cursor being shown in graphics windows when
traits specify that none should be used (a recent change forced a
left-pointer cursor as the default). "
2007-07-05 10:57:34 +00:00
Robert Osfield
70bbb06dd5 Commented out "fix" that explictly sets the key modifier state as this change
actually broke the key modifier state management.
2007-07-05 10:51:47 +00:00
Robert Osfield
7f0b3144ea Added checking of GUIEventAdpter::getHandled(). 2007-07-03 13:26:48 +00:00
Robert Osfield
c7a316e445 From Mike Connell, "This is a tiny fix for win32.
The current code takes the mouse cursor position and adds it to the
window (left,top) position, and sends the mouse cursor there. But this
doesn't take into account the window decoration.

The new code converts the given (x,y) coordinates from the client area
coordinate system to the screen instead using ClientToScreen. I think
this is the natural windows way to do it.

Tested on XP with osgviewer
"

Note from Robet Osfield, made a few changes to layout to make it more consistent 
with the rest of the OSG and used #if 0 instead if (0) blocks.
2007-06-30 16:19:56 +00:00
Robert Osfield
4953e23ab5 From Trajce Nikolov, fixes to pbuffer setup 2007-06-28 12:59:04 +00:00
Robert Osfield
49c15572a9 From Stephan Huber, "attached you'll find a first implementation of pbuffer-support for os x.
I used osgprerender --pbuffer to test the carbon-implementation, for now
it works :)
"
2007-06-27 20:44:12 +00:00
Robert Osfield
14470e12c4 From Andy Skinner, fixed return value. 2007-06-27 17:01:54 +00:00
Robert Osfield
97ff495a9c From Rajce Nickolov, improvements to PixelBufferWin32 and GraphicsWindowWin32 2007-06-27 10:37:30 +00:00
Robert Osfield
350b25c49b From Trajce Nickolov, improvements to PixelBufferWin32. 2007-06-25 11:32:19 +00:00
Robert Osfield
1e506da145 From Trajce Nikolov, PixelBufferWin32 implementation 2007-06-24 10:18:54 +00:00
Robert Osfield
b9947a8189 Simplified decoration code and added support for reading Traits::supportsResize 2007-06-23 21:55:35 +00:00
Robert Osfield
581b1c322e Added setting of the Camera's projection matrix to fit the windowing aspect ratio. 2007-06-23 11:21:54 +00:00
Robert Osfield
1b3468413d Added ability to compile OpenGL objects via pbuffers in the DatabasePager/Viewer 2007-06-22 14:48:18 +00:00
Robert Osfield
e8a65e4cff From Trajce Nikolov, windows build fixes 2007-06-21 11:20:54 +00:00
Robert Osfield
4677fe20a7 Added dummy init method 2007-06-20 12:34:37 +00:00
Robert Osfield
1de128de27 Added placeholder for PixelBufferWin32 2007-06-20 12:29:19 +00:00
Robert Osfield
78b6ada743 Completed implementation of PixelBufferX11. 2007-06-20 11:59:27 +00:00
Robert Osfield
ac69f49b55 Added beginnings of osgViewer::PixelBufferX11 2007-06-19 17:12:05 +00:00
Robert Osfield
a9287fe824 Added ability to set the keyboard bindings in the RecordaAnimationPathHandler 2007-06-13 20:52:07 +00:00
Robert Osfield
21033536a7 From Jeremy Moles & Robert Osfield, Added support for playback of animation paths using 'Z' key 2007-06-13 20:34:16 +00:00
Robert Osfield
29be5312a0 Added OSG_SCREEN and OSG_WINDOW env var checking in the Viewer::realize() 2007-06-13 11:09:31 +00:00
Robert Osfield
a9a55de053 Added osgViewer::View::setUpViewInWindow(...) method and command line option into
osgViewer::Viewer to allow you to specify the window dimentions and screen for
the window on startup.
2007-06-13 10:38:40 +00:00
Robert Osfield
64c8e7c2bc From Stephan Huber, "while porting my own code to the new osgViewer I discover more and more
bugs in the Carbon-implementation of GraphicsWindow, so here's another
fix for setWindowDecorationImplementation, now updates the
titlebar-height, and fixes some display-issues when switching the
decoration on/off.
"
2007-06-12 15:38:09 +00:00
Robert Osfield
c7f5d96caf From Stephan Huber, "the computation of the windowtitlebar-height was wrong, attached you'll
find a fixed version for GraphicsWindowCarbon.cpp
"
2007-06-12 08:28:41 +00:00
Robert Osfield
08a793eb87 From Stephan Huber and Robert Osfield,
Stephan: "attached you'll find some modifications to the GraphicsWindow-class and
their platform-dependant implementations.

The problem:
setWindowRectangle and setWindowDecoration do not update the
traits-object, so, if you call setWindowRectangle on a
not-realized-window it will open with another size when realized later.
getWindowRectangle reports possible wrong sizes if setWindowRectangle
called before.

My solution:
split the implementation in two parts:
GraphicsWindow::setWindowRectangle will update its traits-object and
call afterwards the virtual method setWindowRectangleImplementation
(which is implemented by the derived platformspecific classess). For
setWindowDecoration I am useing a similar mechanism.

I hope you'll find the submission useful, the Win32 and X11 changes are
not tested but should work."

Changes to this made by Robert are call of resized in setWindowRectangle 
instead of setting of Traits, and use of a bool return type.
2007-06-10 19:53:18 +00:00
Robert Osfield
90ae3f385b Added DisplaySettings to osg::Camera, and support into osg::View for initializing
the Camera to the DisplaySettings ScreenWidth/Height/Distance.  Added support
for dual screen horizontal split stereo.
2007-06-09 10:06:38 +00:00
Robert Osfield
3e8be9ac7d From Stephan Huber, "attached you'll find a new GraphicsWindowCarbon-header and .cpp, the
changes I made:

+ put a warning in the console if a nonexistant screen is requested
+ add getters for the aglcontext and pixelformat -- I need access to
them in my own code.
"
2007-06-08 11:04:30 +00:00
Robert Osfield
5a8ec8f470 Commented out the Scene Stats entry as its not implemented yet. 2007-06-07 20:26:29 +00:00
Robert Osfield
51d489fb97 Added View::home() method and updated wrappers 2007-06-07 09:58:49 +00:00
Robert Osfield
3f7ffb088e Revert the setting of SingleThreaded under Windows in suggestBestThreadingModel() 2007-06-06 17:01:37 +00:00
Robert Osfield
34b4fb524d Fixed includes 2007-06-06 14:51:08 +00:00
Robert Osfield
36d50301cf From Olaf Flebbe, "an implementation of GraphicsWindow::setCursor for WIN32." 2007-06-06 11:28:44 +00:00
Robert Osfield
85c8797bc4 Moved HelpHandler and StatsHandler classes into ViewerEventHandlers header, removed HelpHandler and StatsHandler headers 2007-06-06 11:21:13 +00:00
Robert Osfield
6844ac0209 Moved SimpleViewer from osgViewer into the osgviewerCocoa example directory as this
is the only place in the OSG that now relies upon SimpleViewer.
2007-06-06 10:58:21 +00:00
Robert Osfield
6e3c9ad3d3 Added support for passing in ArgumentParser in Viewer and CompositeViewer constructor 2007-06-06 10:57:02 +00:00
Robert Osfield
1f2cfa91c3 Warning fix 2007-06-04 15:05:59 +00:00
Robert Osfield
a1fc3e63a8 From Martin Lavery and Robert Osfield, added use of hardwarded value kCGLCEMPEngine
to fix build failure on slightly older versions of OSX.
2007-06-04 11:14:17 +00:00
Robert Osfield
b5791629ea Added Viewer::setUpViewerAsEmbeddedInWindow convinience method 2007-06-03 09:34:28 +00:00
Robert Osfield
822868ca31 From Mathias Froelich, "have done an interface to change the mouse cursor in the X11 graphics
window.
The win32 implementation is still in its original shape since I have no win32
implementation available.

I have chosen the enum approach for the first cut. That is benefitial since
the user does not need to track creation of mouse cursors for different
windows and displays in presence of multiple viewer windows.

The default set of available mouse shapes is the same set that was available
with glut. That set served many OpenGL applications well, so the hope is that
this is enough.

Even though, that implementation is still extensible:
I have digged out the way SDL defines new mouse cursors and added a still
documented out function prototype in the GraphicsWindow that can be used to
extend the current implemtation for arbitrary mouse shapes. That is not
implemented yet.

I hope that somebody with a win32 test system can catch up that implementation
on win32."
2007-06-01 19:43:28 +00:00
Robert Osfield
78c831f850 Changed name of AnimationPathHandler to RecordCameraPathHandler 2007-06-01 10:42:24 +00:00
Robert Osfield
5a80e4bfdc From Jeremy Moles, new event handler to record the camera path. A few small tweaks by Robert Osfield to make it more consistent with the old osgProducer::Viewer behavior. 2007-06-01 10:39:27 +00:00
Robert Osfield
784383ac08 Added camera event callback support into osgViewer 2007-05-27 17:29:29 +00:00
Robert Osfield
a49ec6e78d Updated calling of master camera's update callback 2007-05-27 15:24:41 +00:00
Robert Osfield
4e3e789acf Added testing to see if camera allows events before automatically attaching a trackball manipulator 2007-05-27 14:52:43 +00:00
Robert Osfield
27a1406819 From Blake Williams, "I discovered why the \u2013CompositeViewer option for the osghud example does not work. The run() function adds a camera manipulator to each view that does not have one assigned, which causes the view with the HUD camera to point somewhere other than where it should. I just added a check before a new default camera manipulator is added to ensure that the view allows event focus before a camera manipulator is added." 2007-05-26 15:47:53 +00:00
Robert Osfield
1676ae839f Added C entry point graphicswindow_X11() to help with static build support 2007-05-25 15:26:13 +00:00
Robert Osfield
babee83194 From Serge Lages, support for install api directories, with tweaks from Robert Osfield 2007-05-24 08:51:55 +00:00
Robert Osfield
bfcaba55fb Added platform specific GraphicsWindow* headers to public headers listings 2007-05-23 12:21:20 +00:00
Robert Osfield
4613269a81 Changed the way the the InputRange is adjusted on the event state to fix bugs related to picking 2007-05-22 13:48:21 +00:00
Robert Osfield
d22208f701 Added extra checks to make sure that graphics operations arn't done on no longer valid graphics contexts 2007-05-21 18:46:57 +00:00
Robert Osfield
d74d62ed0b Fixed Viewer::checkWindowStatus() to work correctly when running single threaded 2007-05-21 18:17:54 +00:00
Robert Osfield
e138b956c5 From Stephan Huber, "attached you'll find some modifications and enhancements to the carbon's
implementation of GraphicsWindow:

- usage of WindowData, you can specify an existing window to use via
osg::Traits
- implementation of setScreenResolution and setScreenRefreshRate
- implementation of setWindowDecoration when window is already created.

There seems to be  a bug regarding multiple threads and closing windows,
see my other mail on osg-users.
"
2007-05-20 13:42:41 +00:00
Robert Osfield
0d71586ee0 Added support for tracking the CoordinateSystemNode path, and passing this on to
camera manipulators.
2007-05-18 10:33:56 +00:00
Robert Osfield
cf9518f346 Added support for View::setFustionDistance(..) 2007-05-17 19:58:57 +00:00
Robert Osfield
fec8b86a00 From Serge Lages, "Here is a modified GraphicsWindowWin32.cpp which handle double click events.
I've modified the file submitted yesterday by Andre and not the current SVN version."
2007-05-17 11:55:53 +00:00
Robert Osfield
8c10301d30 From Andre Garneau,"Please find attached changes to have the GraphicsWindowWin32 class
selectively set the pixel format for windows that are inherited, following
some discussions on the mailing list last week.

This is implemented through a new traits flag
(setInheritedWindowPixelFormat) with a default state of false (to avoid
breaking existing applications). When set to true, the pixel format of the
inherited window will be set according to the traits specifications.
"
2007-05-17 10:33:44 +00:00
Robert Osfield
9cfff7fa19 From Blasius Czink, "when creating windows with decorations (titlebar) the mouse position
should be adjusted."
2007-05-15 19:32:55 +00:00
Robert Osfield
e8cf7b22ad From Laurens Voerman, "Attached is a version of src\osgViewer\GraphicsWindowWin32.cpp that
allows to render in software. (maybe also in hardware w/o
wglChoosePixelFormatARB)"
2007-05-15 19:25:57 +00:00
Robert Osfield
52b2548d31 Renamed ViewerEventHandler to ViewerEventHandlers 2007-05-14 15:16:26 +00:00
Robert Osfield
701ea582e5 Renamed the ScreenHandler to WindowSizeHandler, fixed the code style to be conform more
to the rest of the OSG, and moved the osgviewer across to using the event handlers
in osgViewer.
2007-05-14 15:07:04 +00:00
Robert Osfield
43549f3df6 From Serge Lages, "Here is a ViewerEventHandler file with a collection of helper handlers for osgViewer.
Most of the code is from the osgviewer application, I have took the fullscreen handler and the threading one, and I have just added a fonctionality to be able to change the screen resolution in windowed mode."
2007-05-14 14:41:22 +00:00
Robert Osfield
01083b8aa4 Changed tabs to four spaces 2007-05-14 14:36:03 +00:00
Robert Osfield
1cb4dfbcb5 Added new areThreadsRunning() method to Viewer and CompositeViewer.
Added removeView(View*) method to CompositeViewer

Added stopping/starting of threads in addView/removeView
2007-05-11 19:25:44 +00:00
Robert Osfield
6716f0d845 Added missing HelpHandler::reset() implementation 2007-05-07 19:48:46 +00:00
Robert Osfield
3809d0dad0 Moved the OpenThreads link locally to each lib 2007-05-03 10:06:38 +00:00
Robert Osfield
40db1a8934 Moved VBO switching code into inline methods into osg::State to speed performance 2007-05-01 06:28:20 +00:00
Robert Osfield
0742975f9b Added initalization of _startTick to CompositeViewer 2007-04-30 15:10:57 +00:00
Robert Osfield
367ab032b1 From Jeremy Moles, fixed missing intialization of _startTick member variable. 2007-04-30 14:49:05 +00:00
Robert Osfield
c65278e9dc From Martin Aumueller, "
a collegue of mine noticed that on Windows and X11 the modifier state (such as
Alt or Ctrl) would be applied one key press too late: e.g. press & hold Alt,
press a, release Alt, press a, press a would generate the key sequence a,
Alt-a, a instead of Alt-a, a, a.

The problem is also present on Carbon. Moving the call to setModKeyMask in
front of the call to keyPress fixed it for me on Carbon and X11. I suppose
that this will fix the problem for Windows as well."
2007-04-25 09:32:12 +00:00
Robert Osfield
f242570269 Unified the setup of version numbers so that they all are based on the version
number setup in the include/osg/Version header file.
2007-04-22 20:19:43 +00:00
Robert Osfield
abd0c7fe67 Added support for sorting the graphics contexts so that the first context/window
returned from Viewer::getContexts/getWindows will be the left most window on the lowest screen number.

Added ability for StatsHandler and HelpHandler to support end users setting their
Camera's graphics context.
2007-04-20 16:17:48 +00:00
Robert Osfield
68a6882d04 Bumbped the version number up to 1.9, in preperation for using odd release numbers
for development releases, odd versions for stable releases.
2007-04-16 06:03:22 +00:00
Robert Osfield
1fedab6b49 Fixed choice of display 2007-04-15 20:53:09 +00:00
Robert Osfield
84c4b86da8 Added an #include<unistd.h> and extern "C" around X11ErrorHandling to prevent Solaris build errros 2007-04-14 08:31:40 +00:00
Robert Osfield
9e8e07b373 Added usleep's to avoid X11 errors when doing X11 calls to close to changes in
window size or decoration.
2007-04-13 14:54:22 +00:00
Robert Osfield
934ed30314 Added setWindowRectangle implementation for GraphicsWindowWin32, and
place holder for setWindowRectangle implementation for GraphicsWindowCarbon.
2007-04-13 14:23:10 +00:00
Robert Osfield
035b98993f Added s/getWindowRectangle to GraphicsWindow and implementation in GraphicsWindowX11 2007-04-13 13:22:52 +00:00
Robert Osfield
2e6ee4bb39 Removed old gmake and VisualStudio build files 2007-04-10 13:10:25 +00:00
Robert Osfield
cc1ab2c711 Create new incliude/osgViewer/api directory to hold platform specific classes such as GraphicsWindow implementations.
Moved GraphicsWindowWin32,X11 and Carbon into their api/Win32, api/X11 and api/Carbon directories.
2007-04-10 11:03:37 +00:00
Robert Osfield
6d7b5e7ebd From Eric Wing, pedantic warning fixes 2007-04-06 15:36:13 +00:00
Robert Osfield
acee7ccaee From Laurens Voerman, "I've added the code to set up quad_stereo properly. I have tested with
WinXP / VC8, stereo is working. I also added code to set sampleBuffers
and samples. These cannot yet be properly set, tested (windows only ) by
changing _numMultiSamples in DisplaySettings::setDefaults() and
recompiling."
2007-04-06 14:40:39 +00:00
Robert Osfield
511bc9d571 From Laurens Voerman, "attached is OpenSceneGraph\src\osgViewer\GraphicsWindowWin32.cpp
I've added the code to get the osgViewer working on windows displays
with less than 32 bit color. Only tested with 16 bit color."
2007-04-06 14:36:59 +00:00
Robert Osfield
ee563ee5c3 Added -lgdi32 to CYGWIN path 2007-03-27 08:40:25 +00:00
Robert Osfield
8dc2a28945 Removed WindowData parameter from init(). 2007-03-26 16:28:26 +00:00
Robert Osfield
1cdda0654f Added Locator and layer setting to osgterrain example 2007-03-26 15:52:22 +00:00
Robert Osfield
b419fa93ef From Luigi Calori, "when we link against something that comes out from a Find... we ususally have a variable <LINK_VAR_NAME>available like OPENTHREADS_LIBRARY,
so I' ve set up a macro that uses the variable name expanded for linking, and  test if a variable ${LINK_VAR_NAME}_DEBUG
like OPENTHREADS_LIBRARY_DEBUG exists and in case uses it for linking in debug mode.
I' ve also set up FindOpenThreads to set up these variables.
I had to edit the core libraries CMakeLists to add the calls to the macros used.
I' ve tested under MSVC"
2007-03-26 13:02:38 +00:00
Robert Osfield
7039ff4af4 From Andreas Goebel, build fix 2007-03-19 19:05:18 +00:00
Robert Osfield
6d49904170 From Andreas Goebel, add -lgdi to GNUmakefile 2007-03-19 11:35:36 +00:00
Robert Osfield
ed9aa1c6bf Removed now redundent method 2007-03-18 11:04:12 +00:00
Robert Osfield
aa28f60357 Added WindowData structures to GraphicsWindowX11,Win32 and Carbon to help support
GraphicsWindow inheriting their window handles from an external toolkit
2007-03-16 13:22:05 +00:00
Robert Osfield
d4db767ec5 From Philip Lowman, added gdi32 entry fro Mingw build 2007-03-15 13:17:05 +00:00
Robert Osfield
4173095f0b From Bob Kuehne, fix for AGL build of osgViewer 2007-03-10 17:29:32 +00:00
Robert Osfield
db6f07f1d6 Ran dos2unx of CMakeLists.txt files 2007-03-08 15:31:36 +00:00
Robert Osfield
f50ed9667a From Eric Wing and others, first cut of CMake build support 2007-03-04 13:05:33 +00:00
Robert Osfield
7f8f4e331a Completed changes to osgManipulator to make it more flexible w.r.t viewer usage, and
ported osgmanipulator example across of osgViewer
2007-02-26 13:01:17 +00:00
Robert Osfield
f43cd7332c Further work on add serialization support for osgViewer configurations 2007-02-25 20:05:23 +00:00
Robert Osfield
96f567eff3 Added bool View::Slave::_useMastersSceneData to help manage HUD's and RTT
cameras that are embedded in the Viewer's View
2007-02-23 11:53:45 +00:00
Robert Osfield
2d05286dc2 Clean up the handling of views without camera manipulators, and cameras that
don't allow camera focus
2007-02-23 11:51:52 +00:00
Robert Osfield
03c198da4d Removed the compile objects in init in the SceneView::setDefaults() setup. 2007-02-22 10:56:36 +00:00
Robert Osfield
b9eb2fcdee Fixed calculation of inverted coordindates 2007-02-22 10:31:09 +00:00
Robert Osfield
455b046433 Removed debugging info 2007-02-21 20:47:32 +00:00
Robert Osfield
987fe5d93b Added ability to discount Camera's that arn't appropriate for event focus 2007-02-21 19:41:53 +00:00
Robert Osfield
35a466f400 Removed debug messages 2007-02-21 14:17:15 +00:00
Robert Osfield
228fd04a19 Removed the exclusion of CullSettings from the genwrapper.conf, and then changed the CullStack RefMatrix& methods to RefMatrix*
as the RefMatrix& versions caused the wrappers to fail.
2007-02-21 13:48:01 +00:00
Robert Osfield
416e6486f7 Added inhertCullSettings before SceneView::cull() calls 2007-02-20 16:46:53 +00:00
Robert Osfield
d8e6436dc1 From Andre Garneau:
* Fix for the aspect ratio not being properly set when screens have
different aspect ratios.
* Minor fix for makeCurrentImplementation being called directly instead of
makeCurrent() causing the owning thread pointer not being tracked
* Fix for osglauncher so that it sets its update text regions to DYNAMIC to
prevent multi-threading issues.
2007-02-18 14:21:16 +00:00
Robert Osfield
526ba8c506 From Stephan Huber, "I added a bool to GraphicsContext::Traits to indicate wether to use the
multithreaded-opengl-engine on os x or not. I set its default to false,
perhaps other os x users can test this setting with their data/apps, to
see if we can enable it by default.

I changed also the borderless-window-type, so expos?works correctly."
2007-02-16 13:33:29 +00:00
Robert Osfield
644c92218d Addd an #ifdef _WIN32 to force SingleThreaded usage under Windows when no
threading model is specified.
2007-02-15 15:06:18 +00:00
Robert Osfield
ed01ae9387 From André Garneau, Win32 build fixes 2007-02-15 14:04:22 +00:00
Robert Osfield
3fe4be6e70 Added context sharing support. 2007-02-15 12:24:04 +00:00
Robert Osfield
4f2474ece8 Fixed handling of warp pointer for when its called at startup and the
event queue isn't yet initialized the window range.
2007-02-15 12:11:16 +00:00
Robert Osfield
91ab187ee1 Added checks into Viewer set up of Camera stats so that stats are reused if already present.
Added use of ref_ptr<osg::Stats> into StatsHandler's callbacks
2007-02-15 01:45:44 +00:00
Robert Osfield
87ff8e2b55 Added support for sharing context to GraphicsWindowX11 2007-02-14 20:14:45 +00:00
Robert Osfield
f82c34ff11 Added getState()->setGraphicsContext(this); to the various GrpahicsWindow implementations 2007-02-14 17:28:33 +00:00
Robert Osfield
d81d579f07 Changed the report of lack of WGL_SWAP_METHOD_ARB so that it is INFO rather than WARN. 2007-02-14 14:58:46 +00:00
Robert Osfield
ff126c3d1d Added OSG_RUN_FRAME_COUNT env var which enables a limited run of specified
frame numbers when Viewer::run is called.
2007-02-14 14:36:38 +00:00
Robert Osfield
115cf528a1 Removed debugging run method. 2007-02-14 12:00:33 +00:00
Robert Osfield
89c99a88fa Added computeDataVariance method into osg::Object and implementations in Drawable and StateSet,
and calling of osgUtil::StaticObjectDetectionVisitor in osgViewer::Viewer
2007-02-14 11:24:42 +00:00
Robert Osfield
1138c312b7 Changed the DeleteHandler so by default it doesn't cache objects 2007-02-13 17:39:42 +00:00
Robert Osfield
fe67a91e83 Added OSG_THREADING environmental variable to osgViewer::Viewer::suggestBestThreadingModel 2007-02-13 16:03:35 +00:00
Robert Osfield
d5f2a35a20 Added automatic scaling and translation of help to make sure it always
fits on screen
2007-02-12 13:51:24 +00:00
Robert Osfield
fe177e42d5 Added osgViewer::HelpHandler 2007-02-12 13:39:18 +00:00
Robert Osfield
2a9d2bb25a Changed GraphicsWindowX11 so that it creates two Display* connextions to the Xserver,
one for the graphics thread, one for the main thread that querries events
2007-02-09 13:51:28 +00:00
Robert Osfield
162d08f541 Added #if #else #endif blocks to Viewer::realize() and run() for the purposes of testing 2007-02-09 13:36:44 +00:00
Robert Osfield
4f79634bcd From André Garneau, "Attached is a fix for the hang occuring on Win32 when the thread model is changed.
The issue was caused by the mutex in the ViewerDoubleBufferRenderingOperation being released even though they were not owned. This was causing the underlying critical section object lock count values becoming negative; the next time the lock was acquired it would block because of that."
2007-02-08 22:36:16 +00:00
Robert Osfield
19608966d0 Added the threading model to stats 2007-02-08 12:47:35 +00:00
Robert Osfield
0c59589038 Added check in setThreadingModel so that it only sets up threading if the viewer is realized 2007-02-08 12:21:37 +00:00
Robert Osfield
9eb4beea52 Fixed setThreadModel method so that is doesn't try to set up threading unless
the viewer is realized
2007-02-08 12:20:40 +00:00
Robert Osfield
b3b420de5d Updated the handling of closing of windows 2007-02-08 12:14:26 +00:00
Robert Osfield
34847e4135 Added better clean up of paramters on X display in GraphicsWindowX11:closeImplementation 2007-02-08 11:30:57 +00:00
Robert Osfield
10593edfd0 From Stefan Eilemann, addd more extensive XErrorHandler output 2007-02-08 11:26:04 +00:00
Robert Osfield
6d323f235a Added setting of the DatabasePager's affinity. 2007-02-08 11:24:29 +00:00
Robert Osfield
2826dafa80 From Stephan Huber, "thomas kirk schrieb:
> I put this at the end of realizeImplementation; someone with better knowledge
> of Carbon programming may see a more appropriate place for the call.

I moved your code into the ctor of the OSXCarbonWindowingSystemInterface
so it get called only once. Can you test it again, if it works on your side?

I also disabled multithreaded-rendering because it slowed down the
rendering on my machine by a factor of 3. Perhaps we can make it
optional to test it on other machines.

I had some problems implementing pbuffer-support for os x and stopped it
for now until I have more time to investigate the issues.
"
2007-02-06 20:03:13 +00:00
Robert Osfield
e0163c6ae5 From André Garneau, "Attached is an improved Win32 keyboard handler that should now map key events similarly to the X11 implementation:
* Key event handler now reports left or right SHIFT, CTRL and ALT key variants on key press and release events."
2007-02-06 17:34:28 +00:00
Robert Osfield
c5776b1bf3 From Stefan Eileman, fixes for OSX gmake build to allow AGL or X11 implementation of osgViewer 2007-02-06 17:01:20 +00:00
Robert Osfield
2236c0576e Re-enabled processor affinity 2007-02-06 16:23:19 +00:00
Robert Osfield
3de205ec45 Added new Viewer threading model options 2007-02-06 14:38:08 +00:00
Robert Osfield
bad2a4cc7c Further work on support for ThreadPerCamera, and improved the efficiency of SingleThraeded 2007-02-06 11:03:13 +00:00
Robert Osfield
cfe737c552 Tweak API and updated wrappers to get wrappers to build 2007-02-05 14:56:41 +00:00
Robert Osfield
69da91620f Convert GraphicsThread/GraphicsOperation to more generic OperationsThread/Operation.
This paves the way to running cull traversals in seperate threads.

Updated wrappers
2007-02-02 22:30:36 +00:00
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
019cdd9116 Removed old #if #else #end block 2007-01-31 11:12:58 +00:00
Robert Osfield
493f799a6e Refactored the ViewerRenderingOperation so that the timer querry code is in a separate ViewerQuerySupport class 2007-01-30 17:38:02 +00:00
Robert Osfield
03dbbd5048 Added automatic aspect ratio adjustmeent to View::setUpViewAcrossAllScreens() and setUpViewOnSingleScreen. 2007-01-30 15:37:30 +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
b887226775 Made _useMainThreadForRenderingalTraversal(false) 2007-01-29 22:59:04 +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
6835996c21 Added very simple relaxing of traits by dividing required red, green, blue, alpha and depth by 2. 2007-01-28 17:32:41 +00:00
Robert Osfield
af6de09ab4 Added set/getRealizeOperation() to Viewer and CompositeViewer 2007-01-28 17:11:21 +00:00
Robert Osfield
689578c13a Added osg::PolygonMode to local StateSet to protect it from being affected by
stateset manipulator.
2007-01-27 17:57:58 +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
fd6f5c87b8 Added support for GUIEventAdapter::setHandled 2007-01-24 12:28:18 +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
a7dcd3e9b6 Adde osgText dependency to osgViewer 2007-01-23 13:54:32 +00:00
Robert Osfield
781b3bd5c9 Made stats bars transparent and improved positioning 2007-01-23 13:28:49 +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
71f307c5b2 Further work on GPU stats 2007-01-22 21:16:51 +00:00
Robert Osfield
52e86aaea3 Further work on stats 2007-01-22 17:39:32 +00:00
Robert Osfield
d6ecce6f5f Improvements to stats 2007-01-22 11:22:37 +00:00
Robert Osfield
8e20956511 Changed the camera with focus code to only accept cameras with valid views
as ones that can recieve focus.
2007-01-21 18:34:26 +00:00
Robert Osfield
b47ef11d74 Initial on screen stats support 2007-01-21 18:24:54 +00:00
Robert Osfield
41a0226a8f Added stats for update, event and rendering traversals 2007-01-19 20:25:17 +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
d60d04c8c4 From André Garneau, "Attached is a fix in the GraphicsWindowWin32 class to allow the following usage pattern to work properly; create window, delete window, create window, etc. In all the tests I made I was always creating-deleting and then shutting down the application so this pattern was untested. The osgtexture3d & osgsimulation examples were also using this pattern so would not work. They are working fine now." 2007-01-18 09:56:23 +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
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
dad3deec38 Added debug messages 2007-01-16 17:08:47 +00:00
Robert Osfield
1ee2af9f41 Further work on CompositeViewer 2007-01-16 16:01:01 +00:00
Robert Osfield
0b40a6fc82 Added mouseWarped call into View::requestWarpPointer 2007-01-16 15:05:44 +00:00
Robert Osfield
46b9c19fb5 Further work on event handling in CompositeViewer 2007-01-16 14:15:49 +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
0d8efac569 Added setting of the update visitors' traversal number 2007-01-15 09:30:48 +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
5a515914bc Moved the signalBeginFrame to the start of the rendering traversal. 2007-01-12 19:09:24 +00:00
Robert Osfield
509ac7fb1a Add manually sync of the EventQueue's startTick with the osg::Timer::startTick 2007-01-12 14:45:10 +00:00
Robert Osfield
5c78d06dad Added a default StateSet to osg::View's master Camera. Wired up osgViewer::Viewer so
that the master Camera's StateSet is passed to osgUtil::SceneView to use as its global StateSet.
2007-01-12 12:10:06 +00:00
Robert Osfield
b961179d83 Added setting of DisplaySettings 2007-01-11 17:00:09 +00:00
Robert Osfield
374f8e30a4 Added DisplaySettings support into osgViewer::Viewer 2007-01-11 12:06:24 +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
b039728bf1 Fixed typo 2007-01-09 09:14:25 +00:00
Robert Osfield
96b2b93edc Build fixes 2007-01-08 22:54:02 +00:00
Robert Osfield
462803fd57 From Paul Martz, speeling fixes for Tessellator/Tessellation. 2007-01-08 21:29:49 +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
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
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
3d1c971bca Removed commented out checkEvents calls 2007-01-05 12:22:24 +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
0985a06572 Moved the set of GraphicsContext RenderingOperations into Viewer. 2007-01-04 21:49:02 +00:00
Robert Osfield
fc061f7b15 In Viewer::realize() added default fallback of calling setUpViewAcrossAllScreens()
when no windows have previously been set up.
2007-01-04 21:35:11 +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
cb65524851 Changed debug messages to INFO 2007-01-04 21:18:03 +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
a0374d7c85 Added glXDestryContext to help clean up OpenGL. 2007-01-04 14:34:53 +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
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
dda72a16e8 Changed default multi-screen setup to set up for a flat wall configuration 2007-01-02 12:03:48 +00:00
Robert Osfield
453cd7a4ef Fixed version function names and comment strings 2007-01-02 10:31:38 +00:00
Robert Osfield
9004aa7f8b Added missing init() implementation 2007-01-02 10:11:53 +00:00
Robert Osfield
8ce8061dbe Added mouseWarped update 2007-01-01 20:01:45 +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
b2a0b50a5a Improved handling of window input ranges for single window apps 2006-12-27 20:23: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
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
bd6b7d581e Implemented perliminary multi-threading support in osgViewer::Viewer 2006-12-22 17:46:21 +00:00
Robert Osfield
28fb22568c Added basic support for DatabasePager into osgViewer::Viewer 2006-12-21 17:23:07 +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