fix static-init issue

This commit is contained in:
David Rose 2009-03-03 21:07:49 +00:00
parent 0a6a6dcb3e
commit 941c9ba732
2 changed files with 11 additions and 3 deletions

View File

@ -15,7 +15,7 @@
#include "shaderGeneratorBase.h" #include "shaderGeneratorBase.h"
TypeHandle ShaderGeneratorBase::_type_handle; TypeHandle ShaderGeneratorBase::_type_handle;
PT(ShaderGeneratorBase) ShaderGeneratorBase::_default_generator; ShaderGeneratorBase *ShaderGeneratorBase::_default_generator = NULL;
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: ShaderGeneratorBase::Constructor // Function: ShaderGeneratorBase::Constructor
@ -52,5 +52,13 @@ get_default() {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void ShaderGeneratorBase:: void ShaderGeneratorBase::
set_default(ShaderGeneratorBase *generator) { set_default(ShaderGeneratorBase *generator) {
_default_generator = generator; if (generator != _default_generator) {
if (_default_generator != (ShaderGeneratorBase *)NULL) {
unref_delete(_default_generator);
}
_default_generator = generator;
if (_default_generator != (ShaderGeneratorBase *)NULL) {
_default_generator->ref();
}
}
} }

View File

@ -24,7 +24,7 @@
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
class EXPCL_PANDA_PGRAPH ShaderGeneratorBase : public TypedWritableReferenceCount { class EXPCL_PANDA_PGRAPH ShaderGeneratorBase : public TypedWritableReferenceCount {
private: private:
static PT(ShaderGeneratorBase) _default_generator; static ShaderGeneratorBase *_default_generator;
protected: protected:
ShaderGeneratorBase(); ShaderGeneratorBase();