Probleme hat es beim Restart gegeben, wenn von Vollbild auf
Vollbild geswitched wird. Problem wurde schließlich identifiziert:
Folgendes wurde im Destruktor von CIrrDev durchgeführt. Da
von dieser Klasse allerdings eine statische Instanz angelegt wird
(Singleton) wird der Destruktor mehr oder weniger irgendwann
aufgerufen. Beim Wechsel von Vollbild auf Fenstermodus bzw.
umgekehrt hat es seltsamerweise keine Probleme gegeben.
void sktx::CIrrDev::free()
{
if (IRRINST != NULL)
IRRINST->drop();
if (KLAINST != NULL)
KLAINST->drop();
if (hreghandle)
UnregisterDeviceNotification(hreghandle);
idev = NULL;
sdev = NULL;
}
Zusätzlich wurde ein Irrlicht-Bug gefixed, der möglicherweise auch
damit zu tun hat. (Wollte es jetzt nicht mehr entfernen):
if (DepthBuffers.size() >= 1) //ENGINE-FIX
DepthBuffers[0]->drop();
Es wird einfach der Buffer[0] entfernt und freigegeben,
jedoch ist dieser nicht immer gesetzt => Speicherzugriffsfehler
Freitag, 30. Januar 2009
Abonnieren
Kommentare zum Post (Atom)
Keine Kommentare:
Kommentar veröffentlichen