"Geometry.cpp
Make sure number of normals match number of vertices when lit or
vertex-normal pairs are separated when geometries are merged by the
optimizer.
Ancillary.cpp
Improved support for multitexture effect field and use texture
environment from .attr file.
PaletteRecords.cpp
Use search path when looking for shader files.
PrimaryRecords.cpp
Added preset uniforms "TextureUnit0", "TextureUnit1", "TextureUnit2"
and "TextureUnit3" for GLSL shaders."
New features and enhancements:
- Shared OpenGL contexts
- Multithreaded OpenGL Engine support
- Localizable string support
- Offscreen rendering (to framebuffer object) for:
- Copy/Paste (to image) support
- Drag-and-drop (as source image) support
- Print to Printer/PDF
- Dock minimization picture
- More robust initializer handling
- Fix to better handle hardware surfaces in NSScrollViews/NSSplitViews
- Use of respondsToSelector and instancesRespondToSelector to
demonstrate runtime feature checking to provide access to newer
features while still compiling on and supporting legacy versions
The new file "Localizable.strings" needs to be placed inside the
English.lproj directory."
class to encapsulate the pixel coords, SceneView and picking operations in prep for
making the code more general purpose, and less reliant on classes like osgUtil::SceneView and osgUtil::IntersectVisitor.
Vivek's email to osg-submissions:
"I'm happy to release the osgdragger nodekit to the OSG community. I
implemented the nodekit for my company, Fugro-Jason Inc., and they
have kindly agreed to open source it.
The nodekit contains a few draggers but it should be easy to build new
draggers on top of it. The design of the nodekit is based on a
SIGGRAPH 2002 course - "Design and Implementation of Direct
Manipulation in 3D". You can find the course notes at
http://www.pauliface.com/Sigg02/index.html. Reading pages 20 - 29 of
the course notes should give you a fair understanding of how the
nodekit works.
The source code also contains an example of how to use the draggers."
structure of scene graphs. I only considered the case of DEEP_COPY_NODES,
but it is sufficient for me. It is not the most elegant way -- I used
a map to list all the already cloned nodes with multiple parents, to be
looked up whenever such a node is revisited. The good part is, it works."
From Robert Osfield, fixed build problems under Linux 64 due to use of int's to store Node*
in internal maps used in above custom CopyOp. Added ref_ptr<> usage to main to
prevent memory leaks
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."