JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=0522d296b1fa4cfdef28a981e0a2a947Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Lost Device ?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mat
Senior JLI'ler


Alter: 35
Anmeldedatum: 17.09.2005
Beiträge: 205
Wohnort: Koblenz
Medaillen: Keine

BeitragVerfasst am: 26.06.2006, 20:11    Titel: Lost Device ? Antworten mit Zitat

Hey,

ich arbeite mit:

CPP:
LPDIRECT3D9       m_lpD3D;
LPDIRECT3DDEVICE9 m_lpD3DDevice;


Wie man rausbekommt, ob die Device verloren ist geht ja recht bequem mit TestCooperativeLevel(), aber wenn man die Device mal verloren hat, was dann oO ?

Habe es lange mit m_lpD3DDevice->reset() versucht, ist aber erfolglos ;(
Was annährend funktioniert wäre ein komplett neues Direct3D + Device -Objekt neu zu erzeigen, aber das Gelbe vom Ei kann das nicht sein!

Umgesetzt hat das doch bestimmt schonmal jemand oder ?
_________________
- - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 37
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 26.06.2006, 20:56    Titel: Antworten mit Zitat

Soweit ich weiß (nur einmal umgesetzt, unter DD), ist es tatsächlich die beste Möglichkeit, beim Device-Lost alles frei zugeben und neu zu initialisieren. Gilt auch für Texturen etc.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 26.06.2006, 21:14    Titel: Antworten mit Zitat

Jopp so ist es, gibt zwar einige Ausnahmefälle in dem man nicht alles neu erzeugen muss (unmanaged Daten), aber neu erzeugen muss man dennoch das meiste.

Die neusten DXSamples sollten da einiges gut darstellen können. AFAIK sind dazu gute Kommentare welche da Problem und die Vorgehensweise beschreiben.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mat
Senior JLI'ler


Alter: 35
Anmeldedatum: 17.09.2005
Beiträge: 205
Wohnort: Koblenz
Medaillen: Keine

BeitragVerfasst am: 26.06.2006, 22:28    Titel: Antworten mit Zitat

Ahhh .. *phui* ;(

Heißt also:
Device und D3D-Objekt löschen, neu erstellen, und die neuen Zeiger einmal um die Welt (an jedes referenzierte Objekt) übermitteln ...

Hmmm mal sehen, wie sich das am günstigsten realisieren lässt ...

Bis denne, und gute Nacht Wink
_________________
- - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 30.06.2006, 19:31    Titel: Antworten mit Zitat

Ja, im Prinzip geht das so, ich habs so gemacht, dass jede Klasse die irgendwas reinitialisieren muss, eine Funktion ReInit hat, die halt das neue Device erwartet und damit alle Ressourcen entsprechend neu lädt. Geht damit eigentlich recht einfach, wenn du einen Texturmanager hast, erspart der dir zum Beipsiel schon mal ne Menge arbeit, weil der dann ja alle Texturen neu laden kann.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 30.06.2006, 20:34    Titel: Antworten mit Zitat

Genau so in der Art wie es Jonathan meint würde ich es auch tun und jedem ans Herz legen. (Hey Jonathan irgendwie laufen wir uns jezz in jedem Thread über den Weg ^^)

Halt am besten die DirectX Sachen in eine eigene Klasse oder ähnliches Kapseln, so das du im Falle eines resets nur das DirectX Objekt freigeben brauchst und mit den Restlichen konsistenten Daten aus deiner Kapselung es wieder herstellen kannst.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mat
Senior JLI'ler


Alter: 35
Anmeldedatum: 17.09.2005
Beiträge: 205
Wohnort: Koblenz
Medaillen: Keine

BeitragVerfasst am: 02.07.2006, 12:17    Titel: Antworten mit Zitat

(Späte Antwort, weil ich verreist war)

Ok Wink
Sollte eigendlich nicht schwr zu realisieren sein, da ich sowohl einen Texturmanager als auch einen DirectXManager gebaut habe.

Schade das DirectX da nicht mehr kann ;(

Danke Leutz Wink
_________________
- - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum