This commit is contained in:
Robert Osfield
2017-04-07 17:35:58 +01:00
3 changed files with 18 additions and 10 deletions

View File

@@ -58,6 +58,18 @@ public:
_stringToValue[str] = value;
}
void add2(const char* str, const char* newStr, Value value) {
if (_valueToString.find(value) != _valueToString.end())
{
osg::notify(osg::INFO) << "Duplicate enum value " << value
<< " with old string: " << _valueToString[value]
<< " and new strings: " << str << " and " << newStr << std::endl;
}
_valueToString[value] = newStr;
_stringToValue[newStr] = value;
_stringToValue[str] = value;
}
Value getValue( const char* str )
{
StringToValue::iterator itr = _stringToValue.find(str);

View File

@@ -858,12 +858,13 @@ osg::ref_ptr<osg::Image> InputStream::readImage(bool readFromExternal)
}
else
{
image = readObjectFieldsOfType<osg::Image>("osg::Object", id, image.get());
image = readObjectFieldsOfType<osg::Image>("osg::Object", id, image.get());// leaves _identifierMap[id] pointing at DummyObject if image invalid
if ( image.valid() )
{
image->setFileName( name );
image->setWriteHint( (osg::Image::WriteHint)writeHint );
}
_identifierMap[id] = image;//valid or invalid, don't leave this pointing at an osg::Dummyobject as it's used with a static_cast when recycled
}
return image;
}

View File

@@ -696,15 +696,10 @@ ObjectWrapperManager::ObjectWrapperManager()
primitiveTable.add( "GL_QUAD_STRIP", GL_QUAD_STRIP );
primitiveTable.add( "GL_POLYGON", GL_POLYGON );
primitiveTable.add( "GL_LINES_ADJACENCY_EXT", GL_LINES_ADJACENCY_EXT );
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_LINES_ADJACENCY", GL_LINES_ADJACENCY );
primitiveTable.add( "GL_LINE_STRIP_ADJACENCY", GL_LINE_STRIP_ADJACENCY );
primitiveTable.add( "GL_TRIANGLES_ADJACENCY", GL_TRIANGLES_ADJACENCY );
primitiveTable.add( "GL_TRIANGLE_STRIP_ADJACENCY", GL_TRIANGLE_STRIP_ADJACENCY );
primitiveTable.add2("GL_LINES_ADJACENCY_EXT", "GL_LINES_ADJACENCY", GL_LINES_ADJACENCY );
primitiveTable.add2("GL_LINE_STRIP_ADJACENCY_EXT", "GL_LINE_STRIP_ADJACENCY", GL_LINE_STRIP_ADJACENCY );
primitiveTable.add2("GL_TRIANGLES_ADJACENCY_EXT", "GL_TRIANGLES_ADJACENCY", GL_TRIANGLES_ADJACENCY );
primitiveTable.add2("GL_TRIANGLE_STRIP_ADJACENCY_EXT", "GL_TRIANGLE_STRIP_ADJACENCY", GL_TRIANGLE_STRIP_ADJACENCY );
primitiveTable.add( "GL_PATCHES", GL_PATCHES );
}