From c1da825a7b3d1d893f226101f7b01270b7144a7d Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 24 Nov 2010 20:26:08 +0000 Subject: [PATCH] From Wang Rui, "I'd like to provide a quick updates of the new tessellation shader serializers and dotosgwrappers. It includes reading/writing supports for the two new shader types and the GL_PATCHES enum. The setParameterfv() method is not wrapped at present because it is still not finished. Enum serialziers don't require back-compatibility checks if only add/remove enum items, so I'm not going to use the new UPDATE_TO_VERSION macro this time." --- src/osgDB/ObjectWrapper.cpp | 1 + src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp | 2 ++ src/osgWrappers/serializers/osg/Shader.cpp | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/osgDB/ObjectWrapper.cpp b/src/osgDB/ObjectWrapper.cpp index bbcc55cd1..33d6ee9d7 100644 --- a/src/osgDB/ObjectWrapper.cpp +++ b/src/osgDB/ObjectWrapper.cpp @@ -505,6 +505,7 @@ ObjectWrapperManager::ObjectWrapperManager() primitiveTable.add( "GL_LINE_STRIP_ADJACENCY_EXT", GL_LINE_STRIP_ADJACENCY_EXT ); primitiveTable.add( "GL_TRIANGLES_ADJACENCY_EXT", GL_TRIANGLES_ADJACENCY_EXT ); primitiveTable.add( "GL_TRIANGLE_STRIP_ADJACENCY_EXT", GL_TRIANGLE_STRIP_ADJACENCY_EXT ); + primitiveTable.add( "GL_PATCHES", GL_PATCHES ); } ObjectWrapperManager::~ObjectWrapperManager() diff --git a/src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp b/src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp index 05330ce6f..1cd6513a5 100644 --- a/src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp +++ b/src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp @@ -1446,6 +1446,7 @@ bool Geometry_matchPrimitiveModeStr(const char* str,GLenum& mode) else if (strcmp(str,"TRIANGLES_ADJACENCY")==0) mode = PrimitiveSet::TRIANGLES_ADJACENCY; else if (strcmp(str,"TRIANGLE_STRIP_ADJECENCY")==0) mode = PrimitiveSet::TRIANGLE_STRIP_ADJACENCY; else if (strcmp(str,"TRIANGLE_STRIP_ADJACENCY")==0) mode = PrimitiveSet::TRIANGLE_STRIP_ADJACENCY; + else if (strcmp(str,"PATCHES")==0) mode = PrimitiveSet::PATCHES; else return false; return true; } @@ -1469,6 +1470,7 @@ const char* Geometry_getPrimitiveModeStr(GLenum mode) case (PrimitiveSet::LINE_STRIP_ADJACENCY) : return "LINE_STRIP_ADJACENCY"; case (PrimitiveSet::TRIANGLES_ADJACENCY) : return "TRIANGLES_ADJACENCY"; case (PrimitiveSet::TRIANGLE_STRIP_ADJACENCY) : return "TRIANGLE_STRIP_ADJACENCY"; + case (PrimitiveSet::PATCHES) : return "PATCHES"; default : return "UnknownPrimitveType"; } } diff --git a/src/osgWrappers/serializers/osg/Shader.cpp b/src/osgWrappers/serializers/osg/Shader.cpp index c2d182b38..1d6e1b134 100644 --- a/src/osgWrappers/serializers/osg/Shader.cpp +++ b/src/osgWrappers/serializers/osg/Shader.cpp @@ -51,6 +51,8 @@ REGISTER_OBJECT_WRAPPER( Shader, { BEGIN_ENUM_SERIALIZER3( Type, UNDEFINED ); ADD_ENUM_VALUE( VERTEX ); + ADD_ENUM_VALUE( TESSCONTROL ); + ADD_ENUM_VALUE( TESSEVALUATION ); ADD_ENUM_VALUE( FRAGMENT ); ADD_ENUM_VALUE( GEOMETRY ); ADD_ENUM_VALUE( UNDEFINED );