JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Fullscreen <=> Windowed

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
AFE-GmdG
JLI MVP
JLI MVP


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

BeitragVerfasst am: 01.06.2005, 14:12    Titel: Fullscreen <=> Windowed Antworten mit Zitat

Ich möchte, dass mein Programm während der Laufzeit zwischen Fullscreen und Windowed-mode hin und herswitchen kann...
Jetzt wollte ich dazu fragen, was ich alles an Vorbereitungen treffen muss, damit das auch funktioniert.
Folgende Dinge sind bereits implementiert und funktionieren auch 100%-ig:
- Ermittlung der Adapter, der dazugehörigen Modies und Farbtiefen.
- Festlegung von getrennten Werten für Vollbild- und Fenstermodus (Programm kann in beiden Modies gestartet werden)
- DeviceLost (mehrfach getestet)
- Gerüst für Switchfunktion mit Bool-Status
Im Vollbildmodus nutze ich für das Fenster den Style WS_POPUP, im Fenstermodus WS_OVERLAPPED|WS_BORDER|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX.

Wenn ich nur neue PresentationParameters setze und danach ein Reset des 3DDevices erzwinge, funktioniert das nur von Fenster in Vollbild. Ausserdem ist das Programmfenster dann im falschem Style...
_________________
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
Dragon
Super JLI'ler


Alter: 38
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 01.06.2005, 15:03    Titel: Antworten mit Zitat

Hallo, ich machs mal kurz
du musst direct3d runterfahren
das fenster schließen
ein neues fenster mit den styles anlegen
direct3d initialisieren
deine texturen laden

so ist der grobe ablauf, es gibt auch ein gutes aber schwer verständliches Tutorial von Patrick, leider ist seine seite down
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 01.06.2005, 15:16    Titel: Antworten mit Zitat

Ich denke er will es ohne D3D herunterfahren zu müssen machen.
_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
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: 01.06.2005, 15:19    Titel: Antworten mit Zitat

Ich mach es nun auch so, dass ich alles komplett runterfahre, und mitr danach ein neues Fenster anlege.
Ich dachte halt nur, dass ich das umgehen kann - dem ist aber nicht so.
_________________
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
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 01.06.2005, 15:58    Titel: Antworten mit Zitat

Das SampleFramework (DXUT) kann das. Ich weiss aber nicht, ob das Objekt zerstört wird. Einfach mal in die Samples schauen.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 01.06.2005, 16:25    Titel: Antworten mit Zitat

Einfach runterfahren, ganz radikal! So geht es auf jedem WinNT System, egal ob mit SP2/5 oder nicht.

Auch wenn das Resetten bzw. Neuladen 2-3 Sek dauert, dafür ist es ordentlich!

Achja: Fenster muss nicht zerstört werden nur D3D runtergefahren werden. In OpenGL muss das Fenster wegen dem RenderingContext zerstört werden.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
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