Mattias Helsing | 18 Dec 00:14 2014
Picon

The new FinGStreamer.cmake script won't work

Hi

The addition of the GStreamer cmake find script broke my build because
cmake vars weren't passed correctly to find_package_handler_args, so
while the find script didn't find a single required GStreamer lib or
include path it still reported GSTREAMER_FOUND=TRUE (and then tried to
compile the new plugin). This fixes it and correctly reports missing
components.

cheers
Mattias
Attachment (FindGStreamer.cmake): text/x-cmake, 10 KiB
_______________________________________________
osg-submissions mailing list
osg-submissions@...
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
Mattias Helsing | 18 Dec 00:08 2014
Picon

support for policy settings with cmake with major version > 2

Hi,

CMake have release 3.0 and 3.1 and we have some bad checks for cmake
major version when settings cmake policies in CMakeLists.txt.

This fixes it, but it will be nice when we can drop support for
cmake-2.4 and loose a few lines of cmake code.

cheers
Mattias
Sukender | 17 Dec 18:21 2014
Picon

Added options for FBX writer

Hi Robert,

"
Added options to the FBX writer: an ascii/binary switch, and the ability to select FBX version as the SDK
handles it (Ex: "FBX201300").

This allows the user to achieve backward compatibility, and debug format issues using text output.
" 

Base revision: SVN trunk 14422 / 381c1b73cdd94ef0f81f77ea3fb1ee4c1ae378d9 (= the same as my previous subission)

Cheers,

--

-- 
Sukender
_______________________________________________
osg-submissions mailing list
osg-submissions@...
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
Sukender | 16 Dec 11:42 2014
Picon

Fix for FBX Writer

Hi Robert,

Here is a fix for the FBX writer:
"
FBX writer was writing an empty file when the scene had a root node being a Geode.
This was caused be the change in Drawable (now derived from Node) and Geode (now derived from Group).
This fix simply sticks with previous behaviour. Another change could be to adapt WriterNodeVisitor.
"

Base revision : SVN trunk 14422 / 381c1b73cdd94ef0f81f77ea3fb1ee4c1ae378d9

Cheers,

--

-- 
Sukender
_______________________________________________
osg-submissions mailing list
osg-submissions@...
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
Marc Helbling | 12 Dec 11:10 2014
Picon

VertexAccessOrderVisitor improvements

Hi Robert,

please find enclosed a submission that should improve the VertexAccessOrderVisitor (pre-transform) optimizer:
* it sorts primitives to keep "more complex" primitives first; maybe you'll prefer to have this as an option
(but usually it should make more sense to pre-transform triangles before e.g. lines)
* currently, the visitor rely on TriangleIndexFunctor and does not take care of points and lines (see
https://github.com/openscenegraph/osg/blob/master/include/osg/TriangleIndexFunctor#L124-130).
This can lead to issues e.g. if you store the wireframe lines along with some triangles: the triangles will
be reindexed but not the line. I've therefore added osg/include/TriangleLinePointIndexFunctor to
index triangles, lines and points and derived VertexReorder from this class.
* to avoid issues, shared arrays are duplicated. However, in some cases (e.g. an UV channel shared in the
geometry only) this is not required. I'm adding a SharedArrayOptimizer to optimize this: it looks for
duplicated UVs before the array duplication and deduplicate arrays after.

Hope this is useful.
Cheers,
Marc

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=62041#62041

Attachments: 
http://forum.openscenegraph.org//files/vertexaccessordervisitor_152.zip
http://forum.openscenegraph.org//files/vertexaccessordervisitor_848.zip
Robert Osfield | 2 Dec 18:21 2014
Picon

Re: Separated blending formultiplerenderingtargets

Hi Rui,

On 2 December 2014 at 16:04, Wang Rui <wangray84-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
I understand. So what about deriving from current BlendFunc/ColorMask classes directly? In this way we are not going to rewrite those set/get functions but still use the parent's. Re-implementing the apply() method and making use of the member variable will make the separate-indexed subclasses work.

This is essentially what I have done - I have just checked them in, along with a refactor of how the extensions are set up.  An svn update will get osg::BlendFunci, BlendEquationi and ColorMaski.   I have included serializers for these.

The new mechanism I've used for setting up extensions is much simpler and require far less code so I'm planning on rolling it out more widely.  The BlenFunc*, BlendEquation* classes will illustrate how the extensions.  I'll write more about this on osg-users once I've got a bit further with the refactor efforts.

I haven't yet implement glEnablei/glDisablei, so will tackle these tomorrow morning.

I haven't written any tests for these new classes yet either.  I'd appreciate others diving in to help out with new example development to help illustrate how to use them.

Cheers,
Robert.
 
_______________________________________________
osg-submissions mailing list
osg-submissions@...
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
Farshid Lashkari | 1 Dec 17:34 2014
Picon

Fix crash in collada loader

Hi Robert,

The Collada loader would crash while processing textures on certain files. I've attached the fix.

Cheers,
Farshid
Attachment (daeRMaterials.zip): application/zip, 13 KiB
_______________________________________________
osg-submissions mailing list
osg-submissions@...
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
Marc Helbling | 30 Nov 11:53 2014
Picon

Re: Add option to disable DrawArrays in TriStripper

Hi Robert,

Thanks a lot for your feedback and analysis. I totally agree with you that removing DrawArrays code path is
probably the best choice!
Note also that we have been using (for quite a while in production) a very simple code to generate a single
triangle strip from the list of strips (see https://github.com/cedricpinson/osg/blob/develop/src/osgPlugins/gles/TriangleStripVisitor.cpp#L19-95).

Let me know if you'd like me to clean my initial submission to remove DrawArrays) and/or if you would be
interested in a submission with this simple strip merge algorithm.

Cheers,
Marc

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=61921#61921
Jason Beverage | 26 Nov 21:23 2014
Picon

Missing Callback header in CMakeLists.txt

Hi Robert,


It looks like the Callback header got accidentally removed from the CMakeLists.txt in the submission yesterday for the geometry instancing example.

Thanks!

Jason

# FIXME: For OS X, need flag for Framework or dylib
IF(DYNAMIC_OPENSCENEGRAPH)
    ADD_DEFINITIONS(-DOSG_LIBRARY)
ELSE()
    ADD_DEFINITIONS(-DOSG_LIBRARY_STATIC)
ENDIF()

SET(LIB_NAME osg)

#
# Enable workaround for OpenGL driver crash with occlusion query
#
OPTION(OSG_FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL "Set to ON to build OcclussionQueryNode
with a workaround for multi-threaded OpenGL driver occlussion query crash. " OFF)
IF(OSG_FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL)
    ADD_DEFINITIONS(-DFORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL)
ENDIF()

SET(HEADER_PATH ${OpenSceneGraph_SOURCE_DIR}/include/${LIB_NAME})
SET(TARGET_H
    ${HEADER_PATH}/AlphaFunc
    ${HEADER_PATH}/AnimationPath
    ${HEADER_PATH}/ApplicationUsage
    ${HEADER_PATH}/ArgumentParser
    ${HEADER_PATH}/Array
    ${HEADER_PATH}/ArrayDispatchers
    ${HEADER_PATH}/AudioStream
    ${HEADER_PATH}/AutoTransform
    ${HEADER_PATH}/Billboard
    ${HEADER_PATH}/BlendColor
    ${HEADER_PATH}/BlendEquation
    ${HEADER_PATH}/BlendFunc
    ${HEADER_PATH}/BoundingBox
    ${HEADER_PATH}/BoundingSphere
    ${HEADER_PATH}/BoundsChecking
    ${HEADER_PATH}/buffered_value
    ${HEADER_PATH}/BufferIndexBinding
    ${HEADER_PATH}/BufferObject
    ${HEADER_PATH}/BufferTemplate
    ${HEADER_PATH}/Callback
    ${HEADER_PATH}/Camera
    ${HEADER_PATH}/CameraView
    ${HEADER_PATH}/ClampColor
    ${HEADER_PATH}/ClearNode
    ${HEADER_PATH}/ClipNode
    ${HEADER_PATH}/ClipPlane
    ${HEADER_PATH}/ClusterCullingCallback
    ${HEADER_PATH}/CollectOccludersVisitor
    ${HEADER_PATH}/ColorMask
    ${HEADER_PATH}/ColorMatrix
    ${HEADER_PATH}/ComputeBoundsVisitor
    ${HEADER_PATH}/ConvexPlanarOccluder
    ${HEADER_PATH}/ConvexPlanarPolygon
    ${HEADER_PATH}/CoordinateSystemNode
    ${HEADER_PATH}/CopyOp
    ${HEADER_PATH}/CullFace
    ${HEADER_PATH}/CullingSet
    ${HEADER_PATH}/CullSettings
    ${HEADER_PATH}/CullStack
    ${HEADER_PATH}/DeleteHandler
    ${HEADER_PATH}/Depth
    ${HEADER_PATH}/DisplaySettings
    ${HEADER_PATH}/Drawable
    ${HEADER_PATH}/DrawPixels
    ${HEADER_PATH}/Endian
    ${HEADER_PATH}/Export
    ${HEADER_PATH}/fast_back_stack
    ${HEADER_PATH}/Fog
    ${HEADER_PATH}/FragmentProgram
    ${HEADER_PATH}/FrameBufferObject
    ${HEADER_PATH}/FrameStamp
    ${HEADER_PATH}/FrontFace
    ${HEADER_PATH}/Geode
    ${HEADER_PATH}/Geometry
    ${HEADER_PATH}/GL2Extensions
    ${HEADER_PATH}/GLExtensions
    ${HEADER_PATH}/GLBeginEndAdapter
    ${HEADER_PATH}/GLObjects
    ${HEADER_PATH}/GLU
    ${HEADER_PATH}/GraphicsCostEstimator
    ${HEADER_PATH}/GraphicsContext
    ${HEADER_PATH}/GraphicsThread
    ${HEADER_PATH}/Group
    ${HEADER_PATH}/Hint
    ${HEADER_PATH}/Image
    ${HEADER_PATH}/ImageSequence
    ${HEADER_PATH}/ImageStream
    ${HEADER_PATH}/ImageUtils
    ${HEADER_PATH}/io_utils
    ${HEADER_PATH}/KdTree
    ${HEADER_PATH}/Light
    ${HEADER_PATH}/LightModel
    ${HEADER_PATH}/LightSource
    ${HEADER_PATH}/LineSegment
    ${HEADER_PATH}/LineStipple
    ${HEADER_PATH}/LineWidth
    ${HEADER_PATH}/LOD
    ${HEADER_PATH}/LogicOp
    ${HEADER_PATH}/Material
    ${HEADER_PATH}/Math
    ${HEADER_PATH}/Matrix
    ${HEADER_PATH}/Matrixd
    ${HEADER_PATH}/Matrixf
    ${HEADER_PATH}/MatrixTransform
    ${HEADER_PATH}/MixinVector
    ${HEADER_PATH}/Multisample
    ${HEADER_PATH}/Node
    ${HEADER_PATH}/NodeCallback
    ${HEADER_PATH}/NodeTrackerCallback
    ${HEADER_PATH}/NodeVisitor
    ${HEADER_PATH}/Notify
    ${HEADER_PATH}/Object
    ${HEADER_PATH}/observer_ptr
    ${HEADER_PATH}/Observer
    ${HEADER_PATH}/ObserverNodePath
    ${HEADER_PATH}/OccluderNode
    ${HEADER_PATH}/OcclusionQueryNode
    ${HEADER_PATH}/OperationThread
    ${HEADER_PATH}/PatchParameter
    ${HEADER_PATH}/PagedLOD
    ${HEADER_PATH}/Plane
    ${HEADER_PATH}/Point
    ${HEADER_PATH}/PointSprite
    ${HEADER_PATH}/PolygonMode
    ${HEADER_PATH}/PolygonOffset
    ${HEADER_PATH}/PolygonStipple
    ${HEADER_PATH}/Polytope
    ${HEADER_PATH}/PositionAttitudeTransform
    ${HEADER_PATH}/PrimitiveSet
    ${HEADER_PATH}/PrimitiveRestartIndex
    ${HEADER_PATH}/Program
    ${HEADER_PATH}/Projection
    ${HEADER_PATH}/ProxyNode
    ${HEADER_PATH}/Quat
    ${HEADER_PATH}/Referenced
    ${HEADER_PATH}/ref_ptr
    ${HEADER_PATH}/RenderInfo
    ${HEADER_PATH}/SampleMaski
    ${HEADER_PATH}/Scissor
    ${HEADER_PATH}/ScriptEngine
    ${HEADER_PATH}/Sequence
    ${HEADER_PATH}/ShadeModel
    ${HEADER_PATH}/Shader
    ${HEADER_PATH}/ShaderAttribute
    ${HEADER_PATH}/ShaderComposer
    ${HEADER_PATH}/ShadowVolumeOccluder
    ${HEADER_PATH}/Shape
    ${HEADER_PATH}/ShapeDrawable
    ${HEADER_PATH}/State
    ${HEADER_PATH}/StateAttribute
    ${HEADER_PATH}/StateAttributeCallback
    ${HEADER_PATH}/StateSet
    ${HEADER_PATH}/Stats
    ${HEADER_PATH}/Stencil
    ${HEADER_PATH}/StencilTwoSided
    ${HEADER_PATH}/Switch
    ${HEADER_PATH}/TemplatePrimitiveFunctor
    ${HEADER_PATH}/TexEnv
    ${HEADER_PATH}/TexEnvCombine
    ${HEADER_PATH}/TexEnvFilter
    ${HEADER_PATH}/TexGen
    ${HEADER_PATH}/TexGenNode
    ${HEADER_PATH}/TexMat
    ${HEADER_PATH}/Texture
    ${HEADER_PATH}/Texture1D
    ${HEADER_PATH}/Texture2D
    ${HEADER_PATH}/Texture2DMultisample
    ${HEADER_PATH}/Texture2DArray
    ${HEADER_PATH}/Texture3D
    ${HEADER_PATH}/TextureBuffer
    ${HEADER_PATH}/TextureCubeMap
    ${HEADER_PATH}/TextureRectangle
    ${HEADER_PATH}/Timer
    ${HEADER_PATH}/TransferFunction
    ${HEADER_PATH}/Transform
    ${HEADER_PATH}/TriangleFunctor
    ${HEADER_PATH}/TriangleIndexFunctor
    ${HEADER_PATH}/Uniform
    ${HEADER_PATH}/UserDataContainer
    ${HEADER_PATH}/ValueObject
    ${HEADER_PATH}/Vec2
    ${HEADER_PATH}/Vec2b
    ${HEADER_PATH}/Vec2d
    ${HEADER_PATH}/Vec2f
    ${HEADER_PATH}/Vec2i
    ${HEADER_PATH}/Vec2s
    ${HEADER_PATH}/Vec2ub
    ${HEADER_PATH}/Vec2ui
    ${HEADER_PATH}/Vec2us
    ${HEADER_PATH}/Vec3
    ${HEADER_PATH}/Vec3b
    ${HEADER_PATH}/Vec3d
    ${HEADER_PATH}/Vec3f
    ${HEADER_PATH}/Vec3i
    ${HEADER_PATH}/Vec3s
    ${HEADER_PATH}/Vec3ub
    ${HEADER_PATH}/Vec3ui
    ${HEADER_PATH}/Vec3us
    ${HEADER_PATH}/Vec4
    ${HEADER_PATH}/Vec4b
    ${HEADER_PATH}/Vec4d
    ${HEADER_PATH}/Vec4f
    ${HEADER_PATH}/Vec4i
    ${HEADER_PATH}/Vec4s
    ${HEADER_PATH}/Vec4ub
    ${HEADER_PATH}/Vec4ui
    ${HEADER_PATH}/Vec4us
    ${HEADER_PATH}/Version
    ${HEADER_PATH}/VertexAttribDivisor
    ${HEADER_PATH}/VertexProgram
    ${HEADER_PATH}/View
    ${HEADER_PATH}/Viewport
    ${OPENSCENEGRAPH_CONFIG_HEADER}
    ${OPENSCENEGRAPH_OPENGL_HEADER}
)

#ADD_LIBRARY(${LIB_NAME}
#    ${OPENSCENEGRAPH_USER_DEFINED_DYNAMIC_OR_STATIC}
#    ${LIB_PUBLIC_HEADERS}
SET(TARGET_SRC
    AlphaFunc.cpp
    AnimationPath.cpp
    ApplicationUsage.cpp
    ArgumentParser.cpp
    Array.cpp
    ArrayDispatchers.cpp
    AudioStream.cpp
    AutoTransform.cpp
    Billboard.cpp
    BlendColor.cpp
    BlendEquation.cpp
    BlendFunc.cpp
    BufferIndexBinding.cpp
    BufferObject.cpp
    Callback.cpp
    Camera.cpp
    CameraView.cpp
    ClampColor.cpp
    ClearNode.cpp
    ClipNode.cpp
    ClipPlane.cpp
    ClusterCullingCallback.cpp
    CollectOccludersVisitor.cpp
    ColorMask.cpp
    ColorMatrix.cpp
    ComputeBoundsVisitor.cpp
    ConvexPlanarOccluder.cpp
    ConvexPlanarPolygon.cpp
    CoordinateSystemNode.cpp
    CopyOp.cpp
    CullFace.cpp
    CullingSet.cpp
    CullSettings.cpp
    CullStack.cpp
    DeleteHandler.cpp
    Depth.cpp
    DisplaySettings.cpp
    Drawable.cpp
    DrawPixels.cpp
    dxtctool.cpp
    dxtctool.h
    Fog.cpp
    FragmentProgram.cpp
    FrameBufferObject.cpp
    FrameStamp.cpp
    FrontFace.cpp
    Geode.cpp
    Geometry.cpp
    GL2Extensions.cpp
    GLExtensions.cpp
    GLBeginEndAdapter.cpp
    GLObjects.cpp
    GLStaticLibrary.h
    GLStaticLibrary.cpp
    GraphicsCostEstimator.cpp
    GraphicsContext.cpp
    GraphicsThread.cpp
    Group.cpp
    Hint.cpp
    Image.cpp
    ImageSequence.cpp
    ImageStream.cpp
    ImageUtils.cpp
    KdTree.cpp
    Light.cpp
    LightModel.cpp
    LightSource.cpp
    LineSegment.cpp
    LineStipple.cpp
    LineWidth.cpp
    LOD.cpp
    LogicOp.cpp
    Material.cpp
    Math.cpp
    Matrixd.cpp
    MatrixDecomposition.cpp
    Matrixf.cpp
    # We don't build this one
    #    Matrix_implementation.cpp
    MatrixTransform.cpp
    Multisample.cpp
    Node.cpp
    NodeTrackerCallback.cpp
    NodeVisitor.cpp
    Notify.cpp
    Object.cpp
    Observer.cpp
    ObserverNodePath.cpp
    OccluderNode.cpp
    OcclusionQueryNode.cpp
    OperationThread.cpp
    PatchParameter.cpp
    PagedLOD.cpp
    Point.cpp
    PointSprite.cpp
    PolygonMode.cpp
    PolygonOffset.cpp
    PolygonStipple.cpp
    PositionAttitudeTransform.cpp
    PrimitiveSet.cpp
    PrimitiveRestartIndex.cpp
    Program.cpp
    Projection.cpp
    ProxyNode.cpp
    Quat.cpp
    Referenced.cpp
    SampleMaski.cpp
    Scissor.cpp
    ScriptEngine.cpp
    Sequence.cpp
    ShadeModel.cpp
    Shader.cpp
    ShaderAttribute.cpp
    ShaderComposer.cpp
    ShadowVolumeOccluder.cpp
    Shape.cpp
    ShapeDrawable.cpp
    StateAttribute.cpp
    State.cpp
    StateSet.cpp
    Stats.cpp
    Stencil.cpp
    StencilTwoSided.cpp
    Switch.cpp
    TexEnvCombine.cpp
    TexEnv.cpp
    TexEnvFilter.cpp
    TexGen.cpp
    TexGenNode.cpp
    TexMat.cpp
    Texture1D.cpp
    Texture2DArray.cpp
    Texture2D.cpp
    Texture2DMultisample.cpp
    Texture3D.cpp
    Texture.cpp
    TextureBuffer.cpp
    TextureCubeMap.cpp
    TextureRectangle.cpp
    Timer.cpp
    TransferFunction.cpp
    Transform.cpp
    Uniform.cpp
    UserDataContainer.cpp
    Version.cpp
    VertexAttribDivisor.cpp
    VertexProgram.cpp
    View.cpp
    Viewport.cpp

    glu/libutil/error.cpp
    glu/libutil/mipmap.cpp

    glu/libtess/normal.cpp
    glu/libtess/memalloc.cpp
    glu/libtess/dict-list.h
    glu/libtess/alg-outline
    glu/libtess/priorityq.cpp
    glu/libtess/normal.h
    glu/libtess/dict.h
    glu/libtess/render.cpp
    glu/libtess/tessmono.h
    glu/libtess/mesh.cpp
    glu/libtess/render.h
    glu/libtess/tessmono.cpp
    glu/libtess/priorityq.h
    glu/libtess/sweep.h
    glu/libtess/priorityq-sort.h
    glu/libtess/sweep.cpp
    glu/libtess/tess.h
    glu/libtess/geom.h
    glu/libtess/memalloc.h
    glu/libtess/dict.cpp
    glu/libtess/priorityq-heap.h
    glu/libtess/geom.cpp
    glu/libtess/tess.cpp
    glu/libtess/mesh.h

    ${OPENSCENEGRAPH_VERSIONINFO_RC}
)
SET(TARGET_LIBRARIES OpenThreads)

SET(TARGET_EXTERNAL_LIBRARIES
    ${CMAKE_THREAD_LIBS_INIT}
    ${MATH_LIBRARY}
    ${RT_LIBRARY}
    ${DL_LIBRARY}
)

#LINK_INTERNAL(${LIB_NAME}
#    OpenThreads
#)
#LINK_EXTERNAL(${LIB_NAME} ${CMAKE_THREAD_LIBS_INIT}    ${MATH_LIBRARY} ${RT_LIBRARY} ${DL_LIBRARY})
#LINK_CORELIB_DEFAULT(${LIB_NAME} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIBRARY} ${RT_LIBRARY} )

#INCLUDE(ModuleInstall OPTIONAL)

SETUP_LIBRARY(${LIB_NAME})

_______________________________________________
osg-submissions mailing list
osg-submissions@...
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
Jordi Torres | 25 Nov 12:28 2014
Picon

Remove not existent header from CMakeLists.txt

Hi Robert, 

The GL header in src/osg/CMakeLists.txt is not needed anymore, it was causing a cmake configuration failure in my Ubuntu system. 

Cheers. 

--
Jordi Torres



# FIXME: For OS X, need flag for Framework or dylib
IF(DYNAMIC_OPENSCENEGRAPH)
    ADD_DEFINITIONS(-DOSG_LIBRARY)
ELSE()
    ADD_DEFINITIONS(-DOSG_LIBRARY_STATIC)
ENDIF()

SET(LIB_NAME osg)

#
# Enable workaround for OpenGL driver crash with occlusion query
#
OPTION(OSG_FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL "Set to ON to build OcclussionQueryNode
with a workaround for multi-threaded OpenGL driver occlussion query crash. " OFF)
IF(OSG_FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL)
    ADD_DEFINITIONS(-DFORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL)
ENDIF()

SET(HEADER_PATH ${OpenSceneGraph_SOURCE_DIR}/include/${LIB_NAME})
SET(TARGET_H
    ${HEADER_PATH}/AlphaFunc
    ${HEADER_PATH}/AnimationPath
    ${HEADER_PATH}/ApplicationUsage
    ${HEADER_PATH}/ArgumentParser
    ${HEADER_PATH}/Array
    ${HEADER_PATH}/ArrayDispatchers
    ${HEADER_PATH}/AudioStream
    ${HEADER_PATH}/AutoTransform
    ${HEADER_PATH}/Billboard
    ${HEADER_PATH}/BlendColor
    ${HEADER_PATH}/BlendEquation
    ${HEADER_PATH}/BlendFunc
    ${HEADER_PATH}/BoundingBox
    ${HEADER_PATH}/BoundingSphere
    ${HEADER_PATH}/BoundsChecking
    ${HEADER_PATH}/buffered_value
    ${HEADER_PATH}/BufferIndexBinding
    ${HEADER_PATH}/BufferObject
    ${HEADER_PATH}/BufferTemplate
    ${HEADER_PATH}/Camera
    ${HEADER_PATH}/CameraView
    ${HEADER_PATH}/ClampColor
    ${HEADER_PATH}/ClearNode
    ${HEADER_PATH}/ClipNode
    ${HEADER_PATH}/ClipPlane
    ${HEADER_PATH}/ClusterCullingCallback
    ${HEADER_PATH}/CollectOccludersVisitor
    ${HEADER_PATH}/ColorMask
    ${HEADER_PATH}/ColorMatrix
    ${HEADER_PATH}/ComputeBoundsVisitor
    ${HEADER_PATH}/ConvexPlanarOccluder
    ${HEADER_PATH}/ConvexPlanarPolygon
    ${HEADER_PATH}/CoordinateSystemNode
    ${HEADER_PATH}/CopyOp
    ${HEADER_PATH}/CullFace
    ${HEADER_PATH}/CullingSet
    ${HEADER_PATH}/CullSettings
    ${HEADER_PATH}/CullStack
    ${HEADER_PATH}/DeleteHandler
    ${HEADER_PATH}/Depth
    ${HEADER_PATH}/DisplaySettings
    ${HEADER_PATH}/Drawable
    ${HEADER_PATH}/DrawPixels
    ${HEADER_PATH}/Endian
    ${HEADER_PATH}/Export
    ${HEADER_PATH}/fast_back_stack
    ${HEADER_PATH}/Fog
    ${HEADER_PATH}/FragmentProgram
    ${HEADER_PATH}/FrameBufferObject
    ${HEADER_PATH}/FrameStamp
    ${HEADER_PATH}/FrontFace
    ${HEADER_PATH}/Geode
    ${HEADER_PATH}/Geometry
    ${HEADER_PATH}/GL2Extensions
    ${HEADER_PATH}/GLExtensions
    ${HEADER_PATH}/GLBeginEndAdapter
    ${HEADER_PATH}/GLObjects
    ${HEADER_PATH}/GLU
    ${HEADER_PATH}/GraphicsCostEstimator
    ${HEADER_PATH}/GraphicsContext
    ${HEADER_PATH}/GraphicsThread
    ${HEADER_PATH}/Group
    ${HEADER_PATH}/Hint
    ${HEADER_PATH}/Image
    ${HEADER_PATH}/ImageSequence
    ${HEADER_PATH}/ImageStream
    ${HEADER_PATH}/ImageUtils
    ${HEADER_PATH}/io_utils
    ${HEADER_PATH}/KdTree
    ${HEADER_PATH}/Light
    ${HEADER_PATH}/LightModel
    ${HEADER_PATH}/LightSource
    ${HEADER_PATH}/LineSegment
    ${HEADER_PATH}/LineStipple
    ${HEADER_PATH}/LineWidth
    ${HEADER_PATH}/LOD
    ${HEADER_PATH}/LogicOp
    ${HEADER_PATH}/Material
    ${HEADER_PATH}/Math
    ${HEADER_PATH}/Matrix
    ${HEADER_PATH}/Matrixd
    ${HEADER_PATH}/Matrixf
    ${HEADER_PATH}/MatrixTransform
    ${HEADER_PATH}/MixinVector
    ${HEADER_PATH}/Multisample
    ${HEADER_PATH}/Node
    ${HEADER_PATH}/NodeCallback
    ${HEADER_PATH}/NodeTrackerCallback
    ${HEADER_PATH}/NodeVisitor
    ${HEADER_PATH}/Notify
    ${HEADER_PATH}/Object
    ${HEADER_PATH}/observer_ptr
    ${HEADER_PATH}/Observer
    ${HEADER_PATH}/ObserverNodePath
    ${HEADER_PATH}/OccluderNode
    ${HEADER_PATH}/OcclusionQueryNode
    ${HEADER_PATH}/OperationThread
    ${HEADER_PATH}/PatchParameter
    ${HEADER_PATH}/PagedLOD
    ${HEADER_PATH}/Plane
    ${HEADER_PATH}/Point
    ${HEADER_PATH}/PointSprite
    ${HEADER_PATH}/PolygonMode
    ${HEADER_PATH}/PolygonOffset
    ${HEADER_PATH}/PolygonStipple
    ${HEADER_PATH}/Polytope
    ${HEADER_PATH}/PositionAttitudeTransform
    ${HEADER_PATH}/PrimitiveSet
    ${HEADER_PATH}/PrimitiveRestartIndex
    ${HEADER_PATH}/Program
    ${HEADER_PATH}/Projection
    ${HEADER_PATH}/ProxyNode
    ${HEADER_PATH}/Quat
    ${HEADER_PATH}/Referenced
    ${HEADER_PATH}/ref_ptr
    ${HEADER_PATH}/RenderInfo
    ${HEADER_PATH}/SampleMaski
    ${HEADER_PATH}/Scissor
    ${HEADER_PATH}/ScriptEngine
    ${HEADER_PATH}/Sequence
    ${HEADER_PATH}/ShadeModel
    ${HEADER_PATH}/Shader
    ${HEADER_PATH}/ShaderAttribute
    ${HEADER_PATH}/ShaderComposer
    ${HEADER_PATH}/ShadowVolumeOccluder
    ${HEADER_PATH}/Shape
    ${HEADER_PATH}/ShapeDrawable
    ${HEADER_PATH}/State
    ${HEADER_PATH}/StateAttribute
    ${HEADER_PATH}/StateAttributeCallback
    ${HEADER_PATH}/StateSet
    ${HEADER_PATH}/Stats
    ${HEADER_PATH}/Stencil
    ${HEADER_PATH}/StencilTwoSided
    ${HEADER_PATH}/Switch
    ${HEADER_PATH}/TemplatePrimitiveFunctor
    ${HEADER_PATH}/TexEnv
    ${HEADER_PATH}/TexEnvCombine
    ${HEADER_PATH}/TexEnvFilter
    ${HEADER_PATH}/TexGen
    ${HEADER_PATH}/TexGenNode
    ${HEADER_PATH}/TexMat
    ${HEADER_PATH}/Texture
    ${HEADER_PATH}/Texture1D
    ${HEADER_PATH}/Texture2D
    ${HEADER_PATH}/Texture2DMultisample
    ${HEADER_PATH}/Texture2DArray
    ${HEADER_PATH}/Texture3D
    ${HEADER_PATH}/TextureBuffer
    ${HEADER_PATH}/TextureCubeMap
    ${HEADER_PATH}/TextureRectangle
    ${HEADER_PATH}/Timer
    ${HEADER_PATH}/TransferFunction
    ${HEADER_PATH}/Transform
    ${HEADER_PATH}/TriangleFunctor
    ${HEADER_PATH}/TriangleIndexFunctor
    ${HEADER_PATH}/Uniform
    ${HEADER_PATH}/UserDataContainer
    ${HEADER_PATH}/ValueObject
    ${HEADER_PATH}/Vec2
    ${HEADER_PATH}/Vec2b
    ${HEADER_PATH}/Vec2d
    ${HEADER_PATH}/Vec2f
    ${HEADER_PATH}/Vec2i
    ${HEADER_PATH}/Vec2s
    ${HEADER_PATH}/Vec2ub
    ${HEADER_PATH}/Vec2ui
    ${HEADER_PATH}/Vec2us
    ${HEADER_PATH}/Vec3
    ${HEADER_PATH}/Vec3b
    ${HEADER_PATH}/Vec3d
    ${HEADER_PATH}/Vec3f
    ${HEADER_PATH}/Vec3i
    ${HEADER_PATH}/Vec3s
    ${HEADER_PATH}/Vec3ub
    ${HEADER_PATH}/Vec3ui
    ${HEADER_PATH}/Vec3us
    ${HEADER_PATH}/Vec4
    ${HEADER_PATH}/Vec4b
    ${HEADER_PATH}/Vec4d
    ${HEADER_PATH}/Vec4f
    ${HEADER_PATH}/Vec4i
    ${HEADER_PATH}/Vec4s
    ${HEADER_PATH}/Vec4ub
    ${HEADER_PATH}/Vec4ui
    ${HEADER_PATH}/Vec4us
    ${HEADER_PATH}/Version
    ${HEADER_PATH}/VertexAttribDivisor
    ${HEADER_PATH}/VertexProgram
    ${HEADER_PATH}/View
    ${HEADER_PATH}/Viewport
    ${OPENSCENEGRAPH_CONFIG_HEADER}
    ${OPENSCENEGRAPH_OPENGL_HEADER}
)

#ADD_LIBRARY(${LIB_NAME}
#    ${OPENSCENEGRAPH_USER_DEFINED_DYNAMIC_OR_STATIC}
#    ${LIB_PUBLIC_HEADERS}
SET(TARGET_SRC
    AlphaFunc.cpp
    AnimationPath.cpp
    ApplicationUsage.cpp
    ArgumentParser.cpp
    Array.cpp
    ArrayDispatchers.cpp
    AudioStream.cpp
    AutoTransform.cpp
    Billboard.cpp
    BlendColor.cpp
    BlendEquation.cpp
    BlendFunc.cpp
    BufferIndexBinding.cpp
    BufferObject.cpp
    Callback.cpp
    Camera.cpp
    CameraView.cpp
    ClampColor.cpp
    ClearNode.cpp
    ClipNode.cpp
    ClipPlane.cpp
    ClusterCullingCallback.cpp
    CollectOccludersVisitor.cpp
    ColorMask.cpp
    ColorMatrix.cpp
    ComputeBoundsVisitor.cpp
    ConvexPlanarOccluder.cpp
    ConvexPlanarPolygon.cpp
    CoordinateSystemNode.cpp
    CopyOp.cpp
    CullFace.cpp
    CullingSet.cpp
    CullSettings.cpp
    CullStack.cpp
    DeleteHandler.cpp
    Depth.cpp
    DisplaySettings.cpp
    Drawable.cpp
    DrawPixels.cpp
    dxtctool.cpp
    dxtctool.h
    Fog.cpp
    FragmentProgram.cpp
    FrameBufferObject.cpp
    FrameStamp.cpp
    FrontFace.cpp
    Geode.cpp
    Geometry.cpp
    GL2Extensions.cpp
    GLExtensions.cpp
    GLBeginEndAdapter.cpp
    GLObjects.cpp
    GLStaticLibrary.h
    GLStaticLibrary.cpp
    GraphicsCostEstimator.cpp
    GraphicsContext.cpp
    GraphicsThread.cpp
    Group.cpp
    Hint.cpp
    Image.cpp
    ImageSequence.cpp
    ImageStream.cpp
    ImageUtils.cpp
    KdTree.cpp
    Light.cpp
    LightModel.cpp
    LightSource.cpp
    LineSegment.cpp
    LineStipple.cpp
    LineWidth.cpp
    LOD.cpp
    LogicOp.cpp
    Material.cpp
    Math.cpp
    Matrixd.cpp
    MatrixDecomposition.cpp
    Matrixf.cpp
    # We don't build this one
    #    Matrix_implementation.cpp
    MatrixTransform.cpp
    Multisample.cpp
    Node.cpp
    NodeTrackerCallback.cpp
    NodeVisitor.cpp
    Notify.cpp
    Object.cpp
    Observer.cpp
    ObserverNodePath.cpp
    OccluderNode.cpp
    OcclusionQueryNode.cpp
    OperationThread.cpp
    PatchParameter.cpp
    PagedLOD.cpp
    Point.cpp
    PointSprite.cpp
    PolygonMode.cpp
    PolygonOffset.cpp
    PolygonStipple.cpp
    PositionAttitudeTransform.cpp
    PrimitiveSet.cpp
    PrimitiveRestartIndex.cpp
    Program.cpp
    Projection.cpp
    ProxyNode.cpp
    Quat.cpp
    Referenced.cpp
    SampleMaski.cpp
    Scissor.cpp
    ScriptEngine.cpp
    Sequence.cpp
    ShadeModel.cpp
    Shader.cpp
    ShaderAttribute.cpp
    ShaderComposer.cpp
    ShadowVolumeOccluder.cpp
    Shape.cpp
    ShapeDrawable.cpp
    StateAttribute.cpp
    State.cpp
    StateSet.cpp
    Stats.cpp
    Stencil.cpp
    StencilTwoSided.cpp
    Switch.cpp
    TexEnvCombine.cpp
    TexEnv.cpp
    TexEnvFilter.cpp
    TexGen.cpp
    TexGenNode.cpp
    TexMat.cpp
    Texture1D.cpp
    Texture2DArray.cpp
    Texture2D.cpp
    Texture2DMultisample.cpp
    Texture3D.cpp
    Texture.cpp
    TextureBuffer.cpp
    TextureCubeMap.cpp
    TextureRectangle.cpp
    Timer.cpp
    TransferFunction.cpp
    Transform.cpp
    Uniform.cpp
    UserDataContainer.cpp
    Version.cpp
    VertexAttribDivisor.cpp
    VertexProgram.cpp
    View.cpp
    Viewport.cpp

    glu/libutil/error.cpp
    glu/libutil/mipmap.cpp

    glu/libtess/normal.cpp
    glu/libtess/memalloc.cpp
    glu/libtess/dict-list.h
    glu/libtess/alg-outline
    glu/libtess/priorityq.cpp
    glu/libtess/normal.h
    glu/libtess/dict.h
    glu/libtess/render.cpp
    glu/libtess/tessmono.h
    glu/libtess/mesh.cpp
    glu/libtess/render.h
    glu/libtess/tessmono.cpp
    glu/libtess/priorityq.h
    glu/libtess/sweep.h
    glu/libtess/priorityq-sort.h
    glu/libtess/sweep.cpp
    glu/libtess/tess.h
    glu/libtess/geom.h
    glu/libtess/memalloc.h
    glu/libtess/dict.cpp
    glu/libtess/priorityq-heap.h
    glu/libtess/geom.cpp
    glu/libtess/tess.cpp
    glu/libtess/mesh.h

    ${OPENSCENEGRAPH_VERSIONINFO_RC}
)
SET(TARGET_LIBRARIES OpenThreads)

SET(TARGET_EXTERNAL_LIBRARIES
    ${CMAKE_THREAD_LIBS_INIT}
    ${MATH_LIBRARY}
    ${RT_LIBRARY}
    ${DL_LIBRARY}
)

#LINK_INTERNAL(${LIB_NAME}
#    OpenThreads
#)
#LINK_EXTERNAL(${LIB_NAME} ${CMAKE_THREAD_LIBS_INIT}    ${MATH_LIBRARY} ${RT_LIBRARY} ${DL_LIBRARY})
#LINK_CORELIB_DEFAULT(${LIB_NAME} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIBRARY} ${RT_LIBRARY} )

#INCLUDE(ModuleInstall OPTIONAL)

SETUP_LIBRARY(${LIB_NAME})

_______________________________________________
osg-submissions mailing list
osg-submissions@...
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
Chris Kuliukas | 22 Nov 14:17 2014

osgtessellationshaders.cpp

Hi,

Attached is an osgtesselationshaders.cpp but designed for quads, which I think a lot of people would
appreciate since often when doing terrain or ocean (certainly when coming from legacy code) you'll most
likely be using quads rather than triangles.

I found some of the material online (especially the material the osgtesselationshaders.cpp was based on)
was very unhelpful when it came to quads. So this is practically the same code, but modified to use quads
instead of triangles, so that people have a good starting point for quad tesselation for a terrain / ocean setting.

It is a drop-in replacement for examples/osgtesselationshaders/osgtesselationshaders.cpp in
openscenegraph 3.2.1 . It will draw an 8x8 quad grid in a single geometry, of the type that a heightmap could
be easily applied to.

I add no license further to what was already there, in case that needed to be said.

Regards,
Chris

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=61799#61799

Attachments: 
http://forum.openscenegraph.org//files/osgtessellationquadshaders_154.cpp

Gmane