[Plib-users] Hm... i got another question... but nobody answered to my last ones....
Brought to you by:
sjbaker
From: SkyFlash <sky...@ch...> - 2003-02-17 03:08:29
|
Anyway... Id REALLY like to get my PLIB client going here, but I spent like 3 weeks just to get the animations working, and the current way I do it looks like a workaround to me... Now, I have bad crashes happening on a regular bases, and I know it has to do with refcount. Basicly, I call a removeKid in my Objects destructor (cause the object has an ssgSelector node attached to it) and I get a crash. Here it is: _free_dbg_lk(void * 0x05dfc300, int 1) line 1066 + 60 bytes _free_dbg(void * 0x05dfc300, int 1) line 1001 + 13 bytes free(void * 0x05dfc300) line 956 + 11 bytes operator delete(void * 0x05dfc300) line 7 + 9 bytes 3DCLIENTD! ssgSelector::~ssgSelector(void) + 78 bytes 3DCLIENTD! ssgSelector::`vector deleting destructor'(unsigned int) + 22 bytes 3DCLIENTD! ssgDeRefDelete(class ssgBase *) + 89 bytes 3DCLIENTD! ssgKidList::removeEntity(unsigned int) + 84 bytes 3DCLIENTD! ssgKidList::removeEntity(class ssgEntity *) + 41 bytes 3DCLIENTD! ssgBranch::removeKid(class ssgEntity *) + 41 bytes 3DCLIENTD! ssgBranch::removeAllKids(void) + 54 bytes 3DCLIENTD! ssgBranch::~ssgBranch(void) + 59 bytes 3DCLIENTD! ssgBranch::`vector deleting destructor'(unsigned int) + 22 bytes 3DCLIENTD! ssgDeRefDelete(class ssgBase *) + 89 bytes 3DCLIENTD! ssgKidList::removeEntity(unsigned int) + 84 bytes 3DCLIENTD! ssgKidList::removeEntity(class ssgEntity *) + 41 bytes 3DCLIENTD! ssgBranch::removeKid(class ssgEntity *) + 41 bytes 3DCLIENTD! ssgBranch::removeAllKids(void) + 54 bytes 3DCLIENTD! ssgBranch::~ssgBranch(void) + 59 bytes 3DCLIENTD! ssgSelector::~ssgSelector(void) + 96 bytes 3DCLIENTD! ssgSelector::`vector deleting destructor'(unsigned int) + 22 bytes 3DCLIENTD! ssgDeRefDelete(class ssgBase *) + 89 bytes 3DCLIENTD! ssgKidList::removeEntity(unsigned int) + 84 bytes 3DCLIENTD! ssgKidList::removeEntity(class ssgEntity *) + 41 bytes 3DCLIENTD! ssgBranch::removeKid(class ssgEntity *) + 41 bytes 3DCLIENTD! ssgBranch::removeAllKids(void) + 54 bytes 3DCLIENTD! ssgBranch::~ssgBranch(void) + 59 bytes 3DCLIENTD! ssgBaseTransform::~ssgBaseTransform(void) + 31 bytes 3DCLIENTD! ssgTransform::~ssgTransform(void) + 31 bytes 3DCLIENTD! ssgTransform::`scalar deleting destructor'(unsigned int) + 22 bytes 3DCLIENTD! ssgDeRefDelete(class ssgBase *) + 89 bytes 3DCLIENTD! ssgKidList::removeEntity(unsigned int) + 84 bytes 3DCLIENTD! ssgKidList::removeEntity(class ssgEntity *) + 41 bytes 3DCLIENTD! ssgBranch::removeKid(class ssgEntity *) + 41 bytes PLibObject::~PLibObject() line 108 The code for the destructor: if (m_Anim) renderer->scene->removeKid (m_Anim); scene is valid, m_Anim is valid. I see no reason for it to crash, anyway. Also, I dont get why its starting to delete stuff down the row. On loading the model I ref() every object one time so it doesnt get deleted, and then I finally clone the ssgSelector that I get from the ASE loader. Somehow, the cloning seems to be a real problem child. I did already fix a few bugs in my code, where cloning just didnt work. And as the documentation for PLIB is virtually non existant, I am having real problems finding solutions on my own.... If anyone can tell, I am a little bit in a bad mood right now, having spent another 5 hours of my life inside the PLIB source code, not finding what I was looking for anyway. :) Anyway, the fire particle system also doesnt work. I copied it straight over to my code, and it doesnt work in the best case, and in the worst case it crashes instantly. I have no clue why this could happen, or what I could be doing wrong, and I didnt find any API or docs about it either... HELP! Ralf Pietersz |