JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Alt + Tab

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 18.07.2003, 14:53    Titel: Alt + Tab Antworten mit Zitat

Hi Leutz

Kann mir jemand erklärn, wie ich es schaffe, dass mein Direct3D - Spiel normal weiterläuft, wenn ich mit Alt + Tab oder Strg + Esc oder sowas in ein anderes Programm wechsle und dann wieder zurück??
Am besten eine Lösung für C++ und eine für VB
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nigs
Super JLI'ler



Anmeldedatum: 19.12.2002
Beiträge: 359

Medaillen: Keine

BeitragVerfasst am: 18.07.2003, 18:19    Titel: Antworten mit Zitat

ich glaub das wurde schonmal behandelt, wenn ich mich nicht irre.Wink
soviel ich weis must du wenn wieder reingetabbt eine neue primäre oberfläche erstellen. und dann noch so ein paar dinge. du kannst ja suchen Rolling Eyes .
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 19.07.2003, 14:07    Titel: Antworten mit Zitat

Am besten ist es, wenn man folgendermaßen vorgeht:

man legt eine boolische Variable "DeviceIsLost" an und testet sie auf Wahrheit, wenn man die Renderfunktion betritt. Ist sie wahr, lässt man das Programm ca. 100 Millisekunden schlafen (entlastet den Prozessor) und testet danach, ob das Hauptfenster der Anwendung wieder den Focus hat. Ist dies der Fall Resetet man alle Oberflächen, die man angelegt hat. Eventuell muß man einige der Oberflächen auch komlett neu laden - also das Freigeben der alten Oberflächen nicht vergessen. Die boolische Variable setzt man danach auf falsch.
Ist sie falsch, führt man die Renderfunktionen aus und testet den Rückgabewert von Present auf einen Fehlerwert. Ist dieser aufgetreten überprüft man denselbigen auf D3DErr_DeviceLost (oder so ähnlich) und setzt die boolische Variable auf wahr.

Das einführen dieser Variable hat den entscheidenden Vortzeil, das auch andere Funktionen deren Wert überprüfen können und sich so Berechnungen sparen können, wenn das Fenster gar nicht angezeigt wird.

HTH AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nigs
Super JLI'ler



Anmeldedatum: 19.12.2002
Beiträge: 359

Medaillen: Keine

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

is Present 'ne funktion???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 19.07.2003, 14:27    Titel: Antworten mit Zitat

Schon mal was von Direct-X gehört???
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nigs
Super JLI'ler



Anmeldedatum: 19.12.2002
Beiträge: 359

Medaillen: Keine

BeitragVerfasst am: 19.07.2003, 14:38    Titel: Antworten mit Zitat

das schon, aber von present.... Embarassed
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 19.07.2003, 14:41    Titel: Antworten mit Zitat

Wie wär's etwas einfacher, wie ich es gemacht habe:

Iniate()
{
Objekte anlegen etc....
}


Render()
{
// Testen ob man Zeichenkontrolle hat...
if(DD_2D_Graphics.IsLost()==false)
Initiate();

....
}

Ok ich verwende nich restore, aber ich find das so einfacher und solange dauert es auch nciht, bis alle Grafiken wieder geladen sind.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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