add some cleanup to lights example

This commit is contained in:
aap
2021-03-03 02:15:38 +01:00
parent 0921a2b003
commit d13bd898fe
5 changed files with 73 additions and 1 deletions

View File

@ -166,6 +166,31 @@ Initialize3D(void)
return true;
}
void
Terminate3D(void)
{
FORLIST(lnk, World->clumps){
rw::Clump *clump = rw::Clump::fromWorld(lnk);
World->removeClump(clump);
clump->destroy();
}
if(Camera){
World->removeCamera(Camera);
sk::CameraDestroy(Camera);
Camera = nil;
}
LightsDestroy();
if(World){
World->destroy();
World = nil;
}
sk::TerminateRW();
}
bool
attachPlugins(void)
{
@ -327,6 +352,9 @@ AppEventHandler(sk::Event e, void *param)
return EVENTPROCESSED;
case RWINITIALIZE:
return Initialize3D() ? EVENTPROCESSED : EVENTERROR;
case RWTERMINATE:
Terminate3D();
return EVENTPROCESSED;
case PLUGINATTACH:
return attachPlugins() ? EVENTPROCESSED : EVENTERROR;
case KEYDOWN: