|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 01.06.2005, 14:12 Titel: Fullscreen <=> Windowed |
|
|
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 |
|
|
Dragon Super JLI'ler
Alter: 38 Anmeldedatum: 24.05.2004 Beiträge: 340 Wohnort: Sachsen Medaillen: Keine
|
Verfasst am: 01.06.2005, 15:03 Titel: |
|
|
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 |
|
|
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 01.06.2005, 15:16 Titel: |
|
|
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 |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 01.06.2005, 15:19 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 01.06.2005, 15:58 Titel: |
|
|
Das SampleFramework (DXUT) kann das. Ich weiss aber nicht, ob das Objekt zerstört wird. Einfach mal in die Samples schauen.
C. |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 01.06.2005, 16:25 Titel: |
|
|
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 |
|
|
|
|
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
|