> quote from http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
> The following attributes are supported by wglCreatePbufferARB:
>
> WGL_PBUFFER_LARGEST_ARB If this attribute is set to a
> non-zero value, the largest
> available pbuffer is allocated
> when the allocation of the pbuffer
> would otherwise fail due to
> insufficient resources. The width
> or height of the allocated pbuffer
> never exceeds <iWidth> and <iHeight>,
> respectively. Use wglQueryPbufferARB
> to retrieve the dimensions of the
> allocated pbuffer.
It notifies the user when the size is not as requested, but I could find no way for the program to detect this. I've added two lines to write the new size back into the _traits, I think this is appropriate, but I am not absolutely sure.
In PixelBufferX11 was no support, so I've added GLX_LARGEST_PBUFFER(_SGIX) support, with the same writeback to the _trais.
I have tested the GLX_LARGEST_PBUFFER version on linux and the WGL_PBUFFER_LARGEST_ARB with windows, all tested with the modified autocapture I just submitted.
"autocapture --pbuffer --window 100 100 18192 18192 cow.osg.\[0,0,-22.7\].trans"
gives me a 4096x4096 image on my windows machine,
and a 8192x8192 image on linux."
Issue:
osgQtBrowser fails to compile because it can not find the QTCore header files
Fix:
Add the QT_QTCORE_INCLUDE_DIR to the CMakeList.txt file
Patch:
...\OpenSceneGraphSVN\examples\osgQtBrowser\CMakeLists.txt
change (line 17): INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} )
to (line 17): INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR})
"
I found very useful to have a control whether osgView::setCameraManipulator does or does not reset camera to home position.
I extended method signature as follows:
void setCameraManipulator(osgGA::MatrixManipulator* manipulator, bool resetPosition = true);
keeping the current usage intact (default parameter), while enabling user to disable the position reset. That can be useful in the situation when manipulator position was already loaded, for example from a file (user specification), or defined any other way, while we do not want to be reset to home position. Other usability is usage of two manipulators in a modeling program (orbiting around the model, walking on the model) and changing between them while we want to preserve the position of a camera in the change. Games may benefit from it as well when we change from user-defined helicopter manipulator to soldier manipulator because the user escaped the helicopter. The camera will change manipulator but the position is expected to be kept in the transition (provided that user makes the state transition between the two manipulators himself).
"
From Robert Osfield, I didn't merge the change of parameter type of IntersectKdTree::intersect() as the internal maths is all done in Vec3s. Keeping Vec3 here hasn't effected the test results.
examples\osgautocapture\osgautocapture.cpp
-fixed a bug with --active command line option not rendering
-added --pbuffer command line option
-changed very confusing #ifdef 0
-added OSG_GLES GL_RGB readPixels support if available (UNTESTED)"
OpenSceneGraph/src/osgUtil/SceneView.cpp
introduced in svn
10915 (5 Jan 2010): "Added support for call root Camera CullCallbacks"
It causes a segfault in osgViewer based apps on our linux system (OSG_STEREO=ON OSG_STEREO_MODE=QUAD_BUFFER)
Problem does not show when OSG_STEREO=OFF.
< 976 else _cullVisitor->traverse(*_camera);
> 976 else cullVisitor->traverse(*_camera);
Looks like a typo, and removing the _ does fix the problem."
destruction of RequestQueue to remove any pointers held in DatabaseRequest attached to the scene graph, and to
prevent their subsequent use in cases where the scene graph is attached to a new DatabasePager.
to the osgDB::Registry. Added a osgDB::Registry::getObjectWrapperManager() for access of this object wrapper manager. This
change centralises the singleton management in osgDB.
Merged the osgDB::GlobalLookUpTable functionality into ObjectWrapperManger to keep down the number of singletons in use.
From Robert Osfield, refactor of Wang Rui's original osg2 into 3 parts - parts placed into osgDB, the ReaderWriter placed into src/osg/Plugin/osg and wrappers into src/osgWrappers/serializers/osg