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"
TypeHandle ShaderGeneratorBase::_type_handle;
PT(ShaderGeneratorBase) ShaderGeneratorBase::_default_generator;
ShaderGeneratorBase *ShaderGeneratorBase::_default_generator = NULL;
////////////////////////////////////////////////////////////////////
// Function: ShaderGeneratorBase::Constructor
@ -52,5 +52,13 @@ get_default() {
////////////////////////////////////////////////////////////////////
void ShaderGeneratorBase::
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 {
private:
static PT(ShaderGeneratorBase) _default_generator;
static ShaderGeneratorBase *_default_generator;
protected:
ShaderGeneratorBase();