Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
fowly JLI'ler
Anmeldedatum: 25.01.2004 Beiträge: 196 Wohnort: Detmold - NRW Medaillen: Keine
|
Verfasst am: 26.01.2004, 19:34 Titel: Problem nach minimieren |
|
|
Hallo,
ich lerne gerade das Buch DirectX 9 und Visual C++, mir fällt auf, dass wenn man eine Fullscreen Andwendung macht, und diese minimiert, danach nur noch ein weißes Fenster ist, auf dem man nicht mehr spielen kann. Wie schafft man es, damit, nachdem man die Anwendung wieder herstellt, man weiterspielen kann? ich habe bereits ein bisschen nachgeguckt und gestöbert und weiß, dass man mit etwa diesem code directx wieder initialisieren kann
case WM_ACTIVATE:
switch(LOWORD(wParam))
{
case WA_ACTIVE:
case WA_CLICKACTIVE:
// DirectX wieder initialisieren
Doch nur Texte werden danach wieder richtig angezeigt, nicht jedoch die Sprites... Warum? und was kann man dagegen tun? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 26.01.2004, 19:35 Titel: |
|
|
Ich habe das Problem zwar nicht weiss aber das du die ganzen Surfaces (Texturen,...) wieder herstellen musst. Schau dir mal die Beispiele an da wird immer eine solche Funktion bereit gestellt (Invalidate,Restore) _________________ "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 |
|
|
fowly JLI'ler
Anmeldedatum: 25.01.2004 Beiträge: 196 Wohnort: Detmold - NRW Medaillen: Keine
|
Verfasst am: 26.01.2004, 19:38 Titel: |
|
|
in dem neuem buch wird für texturen doch extra ein recourcen Manager entwickelt, muss man den dann wederherstellen? |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 26.01.2004, 19:59 Titel: |
|
|
Das Programm kann den Status des Grafikkartenspeichers nicht mehr garantieren, deshalb müssen alle Objekte, die direkt im Grafikkartenspeicher standen resettet werden, also Texturen, Vektorbuffer, ... _________________
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 |
|
|
fowly JLI'ler
Anmeldedatum: 25.01.2004 Beiträge: 196 Wohnort: Detmold - NRW Medaillen: Keine
|
Verfasst am: 26.01.2004, 20:01 Titel: |
|
|
bedeutet Reseten einfach löschen und neu laden? |
|
Nach oben |
|
|
Cyianor Super JLI'ler
Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 26.01.2004, 20:14 Titel: |
|
|
jep |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 26.01.2004, 20:38 Titel: |
|
|
Der ResourcenManager legt alles im MANAGED Pool an (D3DPOOL_MANAGED). Es muss nichts neu geladen werden, wichtig ist aber die Reset Funktion. Einfach mal in der DX-Hilfe unter IDirect3DDevice9::Reset Method suchen.
C. |
|
Nach oben |
|
|
fowly JLI'ler
Anmeldedatum: 25.01.2004 Beiträge: 196 Wohnort: Detmold - NRW Medaillen: Keine
|
Verfasst am: 27.01.2004, 17:04 Titel: |
|
|
Hallo,
leider bin ich trotz eurer Hilfe noch nicht weitergekommen.
1. Ich war mir nicht sicher welches Device ich Resetten muss, und habe deshalb das der Direct3D Klasse und der ResourceManager Klasse mit der Funktion Device->Reset(Present Parameter) resettet.
2. Bei mir wechselt er zwar jetzt wieder in Vollbild, doch trotzdem wird nur der Text angezeigt, und auch der überlagert sich immer, wird also nicht mehr gelöscht... Die Bilder werden trotzdem nicht angezeigt...
Warum? Was mache ich falsch? |
|
Nach oben |
|
|
fowly JLI'ler
Anmeldedatum: 25.01.2004 Beiträge: 196 Wohnort: Detmold - NRW Medaillen: Keine
|
Verfasst am: 28.01.2004, 16:21 Titel: |
|
|
ich bin noch immer nicht weitergekommen... anscheinend reicht das resetten nicht... kann keiner helfen? |
|
Nach oben |
|
|
underberg JLI'ler
Anmeldedatum: 11.01.2003 Beiträge: 153
Medaillen: Keine
|
Verfasst am: 28.01.2004, 16:55 Titel: |
|
|
UNd wie mach ich das unter DX8? (Also altes Buch) |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 29.01.2004, 13:08 Titel: |
|
|
Muss man da wirklich alle Surfaces wieder freigeben?
Ich dachte, man müsste nur den Frontbuffer freigeben, da es ja logischerweise nur eine primäre Oberfläche geben kann.
Da sich das Programm den Exclusivmodus holt, kann es auch eine eigene für den gesamten Bildschirm verwenden. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
fowly JLI'ler
Anmeldedatum: 25.01.2004 Beiträge: 196 Wohnort: Detmold - NRW Medaillen: Keine
|
Verfasst am: 29.01.2004, 17:30 Titel: |
|
|
also irgendwie blicke ich da nicht mehr durch...
ich rufe jetzt beim Maximieren - nach - Minimieren immer Device->Reset auf mit den gleichen Present Parametern wie beim Initialisieren... Das Problem: Es passiert garnichts... Es geht weder in Vollbild noch passiert was anderes... wenn ich dafür aber Device->Reset aufrufe geht es in Vollbild, nur die Sprites werden nicht angezeigt, wohl aber der Text...
Was soll ich nur machen? |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 29.01.2004, 19:04 Titel: |
|
|
Es scheint fast so, als ob deine Sprites dabei verschwinden, als ob du sie neuladen müsstest... _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
fowly JLI'ler
Anmeldedatum: 25.01.2004 Beiträge: 196 Wohnort: Detmold - NRW Medaillen: Keine
|
Verfasst am: 30.01.2004, 14:00 Titel: |
|
|
... was komisch ist, ich habe jetzt mal ein bisschen rumprobierd, und es sieht so aus als ob die ->Reset Methode beim Device fehl schlägt...
DXGetErrorDescription9 meldet immer "Invalid Call". Was kann ich machen? Das Fenster geht weder wieder in Vollbild, noch kann man im Fenster weiterspielen.... Wenn ich stattdessen das Device noch einmal völlig neu Initialisiere kommt man wieder in den Fenstermodus, alle Texturen gehen aber verloren, und der Text überlagert sich komischerweise immer, das Bild wird also nicht mehr gelöscht. Ich habe die Texturen alle im MANAGED POOL angelegt, die müssten doch noch da sein...
Was soll ich denn nur tun? |
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 12.02.2004, 09:41 Titel: |
|
|
Ich hab auch schon sehr oft gefragt, wie man dieses Problem mit Alt-Tab löst, aber ich hab noch nie eine funktionierende Lösung gefunden |
|
Nach oben |
|
|
|