I've noticed since porting my application to OpenSG 2.0 that generic
field update handling, which I use extensively, is much slower. Some of
the recent changes to OSGChangeList.cpp have improved things along
similar lines to some internal patches I've been using, and I'm still
working on completely resolving the issue, but one item in my profiles
that I noticed was FieldContainerFactory::the() showing up quite
prominently (about 5%).
It turns out the the the() method is defined in .cpp files and therefore
never inlined. It is used, for example, inside loops in
OSGChangeList.cpp, and thus hurts performance.
The attached patch makes SingletonHolder<>::the() inline.
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Base/OSGFactoryController.cpp
--- a/Source/Base/Base/OSGFactoryController.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Base/OSGFactoryController.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -65,8 +65,6 @@
// Class
//---------------------------------------------------------------------------
-OSG_SINGLETON_INST(FactoryControllerBase, addPostFactoryExitFunction)
-
template OSG_DLL_EXPORT class SingletonHolder<FactoryControllerBase>;
/***************************************************************************\
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Base/OSGFactoryController.h
--- a/Source/Base/Base/OSGFactoryController.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Base/OSGFactoryController.h Fri Jun 10 12:24:12 2011 -0700
@@ -222,6 +222,8 @@
typedef OSG::SingletonHolder<OSG::FactoryControllerBase> FactoryController;
+OSG_SINGLETON_INST(FactoryControllerBase, addPostFactoryExitFunction)
+
OSG_END_NAMESPACE
#endif /* _OSGFACTORYCONTROLLER_HPP_ */
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Base/OSGGLDefineMapper.cpp
--- a/Source/Base/Base/OSGGLDefineMapper.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Base/OSGGLDefineMapper.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -48,8 +48,6 @@
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(GLDefineMapperBase, addPostFactoryExitFunction)
-
template class SingletonHolder<GLDefineMapperBase>;
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Base/OSGGLDefineMapper.inl
--- a/Source/Base/Base/OSGGLDefineMapper.inl Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Base/OSGGLDefineMapper.inl Fri Jun 10 12:24:12 2011 -0700
@@ -38,6 +38,8 @@
OSG_BEGIN_NAMESPACE
+OSG_SINGLETON_INST(GLDefineMapperBase, addPostFactoryExitFunction)
+
template<typename ValueT>
const std::string StringValueMapper<ValueT>::szUnknown("NONEXX");
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Base/OSGSingletonHolder.h
--- a/Source/Base/Base/OSGSingletonHolder.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Base/OSGSingletonHolder.h Fri Jun 10 12:24:12 2011 -0700
@@ -103,6 +103,36 @@
void operator =(const SingletonHolder &source);
};
+#define OSG_SINGLETON_INST(OSG_CLASS, OSG_ADD_EXIT_FUNC) \
+template <> OSG_DLL_EXPORT \
+inline \
+bool SingletonHolder< OSG_CLASS >::destroy(void) \
+{ \
+ FDEBUG_GV(("Destroy Singleton %p\n", _the)); \
+ \
+ delete _the; \
+ \
+ _the = NULL; \
+ \
+ return true; \
+} \
+ \
+template<> OSG_DLL_EXPORT \
+inline \
+OSG_CLASS *SingletonHolder< OSG_CLASS >::the(void) \
+{ \
+ if(_the == NULL) \
+ { \
+ _the = new OSG_CLASS(); \
+ \
+ OSG_ADD_EXIT_FUNC(&Self::destroy); \
+ } \
+ \
+ return _the; \
+} \
+ \
+
+
OSG_END_NAMESPACE
#endif /* _OSGSINGLETONHOLDER_H_ */
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Base/OSGSingletonHolder.ins
--- a/Source/Base/Base/OSGSingletonHolder.ins Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Base/OSGSingletonHolder.ins Fri Jun 10 12:24:12 2011 -0700
@@ -41,31 +41,4 @@
template<class SingletonT>
SingletonT *SingletonHolder<SingletonT>::_the = NULL;
-#define OSG_SINGLETON_INST(OSG_CLASS, OSG_ADD_EXIT_FUNC) \
-template <> OSG_DLL_EXPORT \
-bool SingletonHolder< OSG_CLASS >::destroy(void) \
-{ \
- FDEBUG_GV(("Destroy Singleton %p\n", _the)); \
- \
- delete _the; \
- \
- _the = NULL; \
- \
- return true; \
-} \
- \
-template<> OSG_DLL_EXPORT \
-OSG_CLASS *SingletonHolder< OSG_CLASS >::the(void) \
-{ \
- if(_the == NULL) \
- { \
- _the = new OSG_CLASS(); \
- \
- OSG_ADD_EXIT_FUNC(&Self::destroy); \
- } \
- \
- return _the; \
-} \
- \
-
OSG_END_NAMESPACE
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Base/OSGTypeFactory.cpp
--- a/Source/Base/Base/OSGTypeFactory.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Base/OSGTypeFactory.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -68,8 +68,6 @@
// Class
//---------------------------------------------------------------------------
-OSG_SINGLETON_INST(TypeFactoryBase, addPostFactoryExitFunction)
-
template class SingletonHolder<TypeFactoryBase>;
/***************************************************************************\
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Base/OSGTypeFactory.h
--- a/Source/Base/Base/OSGTypeFactory.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Base/OSGTypeFactory.h Fri Jun 10 12:24:12 2011 -0700
@@ -244,6 +244,8 @@
typedef OSG::SingletonHolder<OSG::TypeFactoryBase> TypeFactory;
+OSG_SINGLETON_INST(TypeFactoryBase, addPostFactoryExitFunction)
+
OSG_END_NAMESPACE
#endif /* _OSGTYPEFACTORY_HPP_ */
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Field/OSGFieldDescFactory.cpp
--- a/Source/Base/Field/OSGFieldDescFactory.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Field/OSGFieldDescFactory.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -50,8 +50,6 @@
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(FieldDescFactoryBase, addPostFactoryExitFunction)
-
template class SingletonHolder<FieldDescFactoryBase>;
OSG_END_NAMESPACE
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Field/OSGFieldDescFactory.h
--- a/Source/Base/Field/OSGFieldDescFactory.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Field/OSGFieldDescFactory.h Fri Jun 10 12:24:12 2011 -0700
@@ -201,6 +201,8 @@
typedef OSG::SingletonHolder<OSG::FieldDescFactoryBase> FieldDescFactory;
+OSG_SINGLETON_INST(FieldDescFactoryBase, addPostFactoryExitFunction)
+
OSG_END_NAMESPACE
#endif /* _OSGFIELDDESCFACTORY_H_ */
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/FieldContainer/Base/OSGFieldContainerFactory.cpp
--- a/Source/Base/FieldContainer/Base/OSGFieldContainerFactory.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/FieldContainer/Base/OSGFieldContainerFactory.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -55,8 +55,6 @@
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(FieldContainerFactoryBase, addPostFactoryExitFunction)
-
template class SingletonHolder<FieldContainerFactoryBase>;
OSG_END_NAMESPACE
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/FieldContainer/Base/OSGFieldContainerFactory.inl
--- a/Source/Base/FieldContainer/Base/OSGFieldContainerFactory.inl Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/FieldContainer/Base/OSGFieldContainerFactory.inl Fri Jun 10 12:24:12 2011 -0700
@@ -38,6 +38,8 @@
OSG_BEGIN_NAMESPACE
+OSG_SINGLETON_INST(FieldContainerFactoryBase, addPostFactoryExitFunction)
+
/*! Set the mapper to use for mapping field container ids. */
inline
void FieldContainerFactoryBase::setMapper(ContainerIdMapper *pMapper)
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Network/Base/OSGConnectionFactory.cpp
--- a/Source/Base/Network/Base/OSGConnectionFactory.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Network/Base/OSGConnectionFactory.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -58,8 +58,6 @@
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(ConnectionFactoryBase, addPostFactoryExitFunction)
-
template class SingletonHolder<ConnectionFactoryBase>;
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/Network/Base/OSGConnectionFactory.h
--- a/Source/Base/Network/Base/OSGConnectionFactory.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/Network/Base/OSGConnectionFactory.h Fri Jun 10 12:24:12 2011 -0700
@@ -157,6 +157,8 @@
typedef OSG::SingletonHolder<OSG::ConnectionFactoryBase> ConnectionFactory;
+OSG_SINGLETON_INST(ConnectionFactoryBase, addPostFactoryExitFunction)
+
OSG_END_NAMESPACE
#endif /* _CONNECTIONFACTORY_H_ */
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/PerfMonitor/OSGPerfMonitor.cpp
--- a/Source/Base/PerfMonitor/OSGPerfMonitor.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/PerfMonitor/OSGPerfMonitor.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -50,7 +50,7 @@
OSG_USING_NAMESPACE
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(PerfMonitorBase, addPostFactoryExitFunction);
+template class SingletonHolder<PerfMonitorBase>;
void NestedSampleInfo::updateFrame()
{
diff -r 028e42dbce46 -r ca6212856cd3 Source/Base/PerfMonitor/OSGPerfMonitor.h
--- a/Source/Base/PerfMonitor/OSGPerfMonitor.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Base/PerfMonitor/OSGPerfMonitor.h Fri Jun 10 12:24:12 2011 -0700
@@ -471,6 +471,7 @@
typedef SingletonHolder<PerfMonitorBase> PerfMonitor;
+OSG_SINGLETON_INST(PerfMonitorBase, addPostFactoryExitFunction);
OSG_END_NAMESPACE
diff -r 028e42dbce46 -r ca6212856cd3 Source/Contrib/BackgroundLoader/OSGBackgroundLoader.cpp
--- a/Source/Contrib/BackgroundLoader/OSGBackgroundLoader.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Contrib/BackgroundLoader/OSGBackgroundLoader.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -10,7 +10,8 @@
OSG_USING_NAMESPACE
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(BackgroundLoaderBase, addPostFactoryExitFunction)
+
+template class SingletonHolder<BackgroundLoaderBase>;
BackgroundLoaderBase::BackgroundLoaderBase(void)
: mLoadThreads()
diff -r 028e42dbce46 -r ca6212856cd3 Source/Contrib/BackgroundLoader/OSGBackgroundLoader.h
--- a/Source/Contrib/BackgroundLoader/OSGBackgroundLoader.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/Contrib/BackgroundLoader/OSGBackgroundLoader.h Fri Jun 10 12:24:12 2011 -0700
@@ -85,6 +85,8 @@
typedef SingletonHolder<BackgroundLoaderBase> BackgroundLoader;
+OSG_SINGLETON_INST(BackgroundLoaderBase, addPostFactoryExitFunction)
+
OSG_END_NAMESPACE
#endif /*_OSG_BACKGROUND_LOADER_H_*/
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/FileIO/Base/OSGSceneFileHandler.cpp
--- a/Source/System/FileIO/Base/OSGSceneFileHandler.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/FileIO/Base/OSGSceneFileHandler.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -69,8 +69,6 @@
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(SceneFileHandlerBase, addPostFactoryExitFunction)
-
template class SingletonHolder<SceneFileHandlerBase>;
GraphOpSeq *SceneFileHandlerBase::_defaultgraphOpSeq = NULL;
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/FileIO/Base/OSGSceneFileHandler.inl
--- a/Source/System/FileIO/Base/OSGSceneFileHandler.inl Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/FileIO/Base/OSGSceneFileHandler.inl Fri Jun 10 12:24:12 2011 -0700
@@ -38,6 +38,8 @@
OSG_BEGIN_NAMESPACE
+OSG_SINGLETON_INST(SceneFileHandlerBase, addPostFactoryExitFunction)
+
/*! Attempts to set option \a name to \a value for the SceneFileHandler that
handles files with the given \a suffix.
If successful \c true is returned, false otherwise.
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/FileIO/Collada/OSGColladaElementFactory.cpp
--- a/Source/System/FileIO/Collada/OSGColladaElementFactory.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/FileIO/Collada/OSGColladaElementFactory.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -52,11 +52,6 @@
OSG_BEGIN_NAMESPACE
-#if !defined(OSG_DO_DOC)
-OSG_SINGLETON_INST(OSG::ColladaElementFactorySingleton,
- addPostFactoryExitFunction)
-#endif
-
template class SingletonHolder<OSG::ColladaElementFactorySingleton>;
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/FileIO/Collada/OSGColladaElementFactory.h
--- a/Source/System/FileIO/Collada/OSGColladaElementFactory.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/FileIO/Collada/OSGColladaElementFactory.h Fri Jun 10 12:24:12 2011 -0700
@@ -162,6 +162,11 @@
typedef SingletonHolder<ColladaElementFactorySingleton> ColladaElementFactory;
+#if !defined(OSG_DO_DOC)
+OSG_SINGLETON_INST(OSG::ColladaElementFactorySingleton,
+ addPostFactoryExitFunction)
+#endif
+
OSG_END_NAMESPACE
#endif // OSG_WITH_COLLADA
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/FileIO/OSB/OSGOSBElementFactory.cpp
--- a/Source/System/FileIO/OSB/OSGOSBElementFactory.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/FileIO/OSB/OSGOSBElementFactory.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -44,8 +44,6 @@
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(OSG::OSBElementFactorySingleton, addPostFactoryExitFunction);
-
template class SingletonHolder<OSG::OSBElementFactorySingleton>;
OSG_END_NAMESPACE
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/FileIO/OSB/OSGOSBElementFactory.inl
--- a/Source/System/FileIO/OSB/OSGOSBElementFactory.inl Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/FileIO/OSB/OSGOSBElementFactory.inl Fri Jun 10 12:24:12 2011 -0700
@@ -38,6 +38,8 @@
OSG_BEGIN_NAMESPACE
+OSG_SINGLETON_INST(OSG::OSBElementFactorySingleton, addPostFactoryExitFunction);
+
/*-------------------------------------------------------------------------*/
/* OSBElementCreator<ElementTypeT> */
/*-------------------------------------------------------------------------*/
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/FileIO/OpenFlight/OSGOFRecords.cpp
--- a/Source/System/FileIO/OpenFlight/OSGOFRecords.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/FileIO/OpenFlight/OSGOFRecords.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -62,8 +62,6 @@
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(OFRecordFactoryBase, addPostFactoryExitFunction)
-
template class SingletonHolder<OFRecordFactoryBase>;
// constants for Faces and Meshes
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/FileIO/OpenFlight/OSGOFRecords.h
--- a/Source/System/FileIO/OpenFlight/OSGOFRecords.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/FileIO/OpenFlight/OSGOFRecords.h Fri Jun 10 12:24:12 2011 -0700
@@ -1737,6 +1737,8 @@
virtual NodeTransitPtr convertToNode(OFDatabase &oDB);
};
+OSG_SINGLETON_INST(OFRecordFactoryBase, addPostFactoryExitFunction)
+
OSG_END_NAMESPACE
#endif
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/FileIO/WRL/OSGVRMLNodeHelper.cpp
--- a/Source/System/FileIO/WRL/OSGVRMLNodeHelper.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/FileIO/WRL/OSGVRMLNodeHelper.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -94,8 +94,6 @@
OSG_DYNFIELDATTACHMENT_INST(VRMLGenericAttDesc)
-OSG_SINGLETON_INST(VRMLNodeHelperFactoryBase, addPostFactoryExitFunction)
-
template class SingletonHolder<VRMLNodeHelperFactoryBase>;
//---------------------------------------------------------------------------
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/FileIO/WRL/OSGVRMLNodeHelper.inl
--- a/Source/System/FileIO/WRL/OSGVRMLNodeHelper.inl Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/FileIO/WRL/OSGVRMLNodeHelper.inl Fri Jun 10 12:24:12 2011 -0700
@@ -38,6 +38,8 @@
OSG_BEGIN_NAMESPACE
+OSG_SINGLETON_INST(VRMLNodeHelperFactoryBase, addPostFactoryExitFunction)
+
template<class ContainerT> inline
VRMLNodeHelper *VRMLGenericHelper<ContainerT>::create(void)
{
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/GraphOp/Base/OSGGraphOpFactory.cpp
--- a/Source/System/GraphOp/Base/OSGGraphOpFactory.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/GraphOp/Base/OSGGraphOpFactory.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -47,8 +47,6 @@
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(GraphOpFactoryBase, addPostFactoryExitFunction)
-
template class SingletonHolder<GraphOpFactoryBase>;
/***************************************************************************\
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/GraphOp/Base/OSGGraphOpFactory.h
--- a/Source/System/GraphOp/Base/OSGGraphOpFactory.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/GraphOp/Base/OSGGraphOpFactory.h Fri Jun 10 12:24:12 2011 -0700
@@ -92,6 +92,8 @@
typedef GraphOpFactory *GraphOpFactoryP;
+OSG_SINGLETON_INST(GraphOpFactoryBase, addPostFactoryExitFunction)
+
OSG_END_NAMESPACE
#endif /* _OSGGRAPHOPSEQ_H_ */
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/Image/OSGImageFileHandler.cpp
--- a/Source/System/Image/OSGImageFileHandler.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/Image/OSGImageFileHandler.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -71,8 +71,6 @@
* Types
*****************************/
-OSG_SINGLETON_INST(ImageFileHandlerBase, addPostFactoryExitFunction)
-
template class SingletonHolder<ImageFileHandlerBase>;
/*****************************
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/Image/OSGImageFileHandler.inl
--- a/Source/System/Image/OSGImageFileHandler.inl Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/Image/OSGImageFileHandler.inl Fri Jun 10 12:24:12 2011 -0700
@@ -38,6 +38,8 @@
OSG_BEGIN_NAMESPACE
+OSG_SINGLETON_INST(ImageFileHandlerBase, addPostFactoryExitFunction)
+
/*! Attempts to set option \a name to \a value for the ImageFileHandler that
handles files with the given \a suffix.
If successful \c true is returned, false otherwise.
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/NodeCores/Drawables/Geometry/Properties/OSGGeoPropertyFactory.cpp
--- a/Source/System/NodeCores/Drawables/Geometry/Properties/OSGGeoPropertyFactory.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/NodeCores/Drawables/Geometry/Properties/OSGGeoPropertyFactory.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -43,8 +43,6 @@
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(GeoPropertyFactoryBase, addPostFactoryExitFunction)
-
template class SingletonHolder<GeoPropertyFactoryBase>;
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/NodeCores/Drawables/Geometry/Properties/OSGGeoPropertyFactory.inl
--- a/Source/System/NodeCores/Drawables/Geometry/Properties/OSGGeoPropertyFactory.inl Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/NodeCores/Drawables/Geometry/Properties/OSGGeoPropertyFactory.inl Fri Jun 10 12:24:12 2011 -0700
@@ -38,6 +38,8 @@
OSG_BEGIN_NAMESPACE
+OSG_SINGLETON_INST(GeoPropertyFactoryBase, addPostFactoryExitFunction)
+
template <class PropertyTypeT> inline
GeoVectorPropertyTransitPtr GeoPropertyFactoryBase::createPropFunc(void)
{
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/State/Shader/Base/OSGShaderAttribute.cpp
--- a/Source/System/State/Shader/Base/OSGShaderAttribute.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/State/Shader/Base/OSGShaderAttribute.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -50,8 +50,6 @@
OSG_FIELDTRAITS_GETTYPE ( ShaderAttribute)
OSG_FIELD_DLLEXPORT_DEF1(MField, ShaderAttribute)
-OSG_SINGLETON_INST(ShaderAttrIndexMapperBase, addPostFactoryExitFunction)
-
template class SingletonHolder<ShaderAttrIndexMapperBase>;
ShaderAttrIndexMapperBase::ShaderAttrIndexMapperBase(void) :
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/State/Shader/Base/OSGShaderAttribute.h
--- a/Source/System/State/Shader/Base/OSGShaderAttribute.h Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/State/Shader/Base/OSGShaderAttribute.h Fri Jun 10 12:24:12 2011 -0700
@@ -231,6 +231,8 @@
}
};
+OSG_SINGLETON_INST(ShaderAttrIndexMapperBase, addPostFactoryExitFunction)
+
OSG_END_NAMESPACE
#endif
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/State/Shader/SHL/OSGSimpleSHLChunk.cpp
--- a/Source/System/State/Shader/SHL/OSGSimpleSHLChunk.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/State/Shader/SHL/OSGSimpleSHLChunk.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -1257,7 +1257,7 @@
#ifdef OSG_1_COMPAT
if(_fParameterCallback)
{
- OSGGETGLFUNCBYID_GL3_ES(OSGglGetUniformLocationProc,
+ OSGGETGLFUNCBYID_GL3_ES(glGetUniformLocation,
osgGlGetUniformLocation,
ShaderProgram::getFuncIdGetUniformLocation(),
pWin);
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/State/Shader/SHL/testSHLProcLights_compat.cpp
--- a/Source/System/State/Shader/SHL/testSHLProcLights_compat.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/State/Shader/SHL/testSHLProcLights_compat.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -169,9 +169,9 @@
if(iLoc != -1)
{
- OSGGETGLFUNC(OSG::OSGglUniform1iProc,
- osgGlUniform1i,
- OSG::ShaderProgram::getFuncIdUniform1i());
+ OSGGETGLFUNC_EXT(glUniform1i,
+ osgGlUniform1i,
+ OSG::ShaderProgram::getFuncIdUniform1i());
osgGlUniform1i(iLoc,
GLint(pEnv->getLightState() & 0x0001));
@@ -186,9 +186,9 @@
if(iLoc != -1)
{
- OSGGETGLFUNC(OSG::OSGglUniform1iProc,
- osgGlUniform1i,
- OSG::ShaderProgram::getFuncIdUniform1i());
+ OSGGETGLFUNC_EXT(glUniform1i,
+ osgGlUniform1i,
+ OSG::ShaderProgram::getFuncIdUniform1i());
osgGlUniform1i(iLoc,
GLint(pEnv->getLightState() & 0x0002));
@@ -203,9 +203,9 @@
if(iLoc != -1)
{
- OSGGETGLFUNC(OSG::OSGglUniform1iProc,
- osgGlUniform1i,
- OSG::ShaderProgram::getFuncIdUniform1i());
+ OSGGETGLFUNC_EXT(glUniform1i,
+ osgGlUniform1i,
+ OSG::ShaderProgram::getFuncIdUniform1i());
osgGlUniform1i(iLoc,
GLint(pEnv->getLightState() & 0x0004));
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/Statistics/Foregrounds/OSGStatisticsDefaultFont.cpp
--- a/Source/System/Statistics/Foregrounds/OSGStatisticsDefaultFont.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/Statistics/Foregrounds/OSGStatisticsDefaultFont.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -590,8 +590,6 @@
};
-OSG_SINGLETON_INST(StatisticsDefaultFontBase, addPreFactoryExitFunction)
-
template class SingletonHolder<StatisticsDefaultFontBase>;
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/Statistics/Foregrounds/OSGStatisticsDefaultFont.inl
--- a/Source/System/Statistics/Foregrounds/OSGStatisticsDefaultFont.inl Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/Statistics/Foregrounds/OSGStatisticsDefaultFont.inl Fri Jun 10 12:24:12 2011 -0700
@@ -40,6 +40,8 @@
OSG_BEGIN_NAMESPACE
+OSG_SINGLETON_INST(StatisticsDefaultFontBase, addPreFactoryExitFunction)
+
TextTXFFace *StatisticsDefaultFontBase::getFace() const
{
return _face;
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/Text/OSGTextFaceFactory.cpp
--- a/Source/System/Text/OSGTextFaceFactory.cpp Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/Text/OSGTextFaceFactory.cpp Fri Jun 10 12:24:12 2011 -0700
@@ -60,8 +60,6 @@
OSG_BEGIN_NAMESPACE
-OSG_SINGLETON_INST(TextFaceFactoryBase, addPreFactoryExitFunction)
-
template class SingletonHolder<TextFaceFactoryBase>;
diff -r 028e42dbce46 -r ca6212856cd3 Source/System/Text/OSGTextFaceFactory.inl
--- a/Source/System/Text/OSGTextFaceFactory.inl Fri Jun 10 12:22:02 2011 -0700
+++ b/Source/System/Text/OSGTextFaceFactory.inl Fri Jun 10 12:24:12 2011 -0700
@@ -39,6 +39,7 @@
OSG_BEGIN_NAMESPACE
+OSG_SINGLETON_INST(TextFaceFactoryBase, addPreFactoryExitFunction)
OSG_END_NAMESPACE
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users