Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Dofter

Treue Seele

  • »Dofter« ist der Autor dieses Themas

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

1

07.05.2006, 11:55

ALT+TAB - problem

so ich hoffee ich bin hier richtig^^

also ich hab ein problem mit ALT + TAB. Ich mach des so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Direct3D.Exit();
Direct3D.Init(hWnd,bWindowed);
ResourceManager.Exit();
ResourceManager.Init(Direct3D.GetDevice());
InputManager.Init(hWnd,hInst);
LoadAllTextures();
switch (Mencus.CurrentGS)
{
case MGS_GAME:
     Game.Reload();
     break;
case MGS_HAUPTMENÜ:
     Hauptmenü.Reload();
     break;
}
MainFont.Exit();
MainFont.Init("Arial",0,0); 


fuinktioniert auch so weit, nur dass ich ein sprite, des ich vorher gesehen habe nicht mehr sehe, und wenn ich dann nochmal tabbe, können manche Texturen nicht Releaset werden.
hab ichr ne Ahnung wass ich machen soll?

mfg Dofter
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Anonymous

unregistriert

2

07.05.2006, 11:59

Dofter
Schau mal hier:
http://www.germangamedev.de/index.php?site=article&id=9

Ist zwar für DirectDraw, aber dort gibt es auch dieses spitzen Feature :)

Seit SP2 funktioniert das mit dem Resetten von einzelnen Komponenten nicht mehr bzw. nicht mehr richtig, da Resourcen freigegeben werden damit der User bei minimierten DX Anwendungen vollen Resourcen hat.

Daher hilft nur eines: Alles runter und wieder rauf fahren. Was in Direct3D Komponenten gespeichert ist. Dabei hilft es z.B. bei Vertexbuffern die Vertexdaten im RAM abzulegen, damit sie nicht mehr gelesen werden müssen.

Und runter und rauffahren ist bei heutigen Rechnern sowieso recht flott und vorallem eines: Ordentlich.

Dofter

Treue Seele

  • »Dofter« ist der Autor dieses Themas

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

3

07.05.2006, 13:00

ich hätt gedacht dass ich alles runtergefahren hab und wieder hoch?
außerdem werden ja alles sprites, außer des eine gezeichnet.
ach ja, wass ich noch zu den fehler bein releasen sagen wollte:
die Textur wie einwandfrei gezeichnet, und auch kurz bevor ich sie relese kann ich noch GetLevelDesc(...) benutzen
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Dofter

Treue Seele

  • »Dofter« ist der Autor dieses Themas

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

4

21.05.2006, 13:43

hat keiner ne Ahnung?
Was mir übrigens so vorkommt ist, dass jedesmal bei irgendeiner anderen Textur der fehler mit dem ->Reloase() kommt.
Bin echt verzweifelt... :?
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Dofter

Treue Seele

  • »Dofter« ist der Autor dieses Themas

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

5

24.05.2006, 14:27

muss anscheinend noch mehr schreiben oda?
also so mach ich des mit dem texturen neu laden:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
map<string,LPDIRECT3DTEXTURE9>::iterator it;

    for(it = m_MapTextures.begin(); it != m_MapTextures.end();it++)
    {
        D3DSURFACE_DESC desc;

        (it->second)->GetLevelDesc(0,&desc);

        (it->second)->Release();
        (it->second) = NULL;

        D3DXCreateTextureFromFileEx(m_lpD3DDevice,
                                    (it->first).c_str(),
                                    desc.Width,
                                    desc.Height,
                                    1,0,
                                    D3DFMT_UNKNOWN,
                                    D3DPOOL_MANAGED,
                                    D3DX_FILTER_NONE,
                                    D3DX_FILTER_NONE,
                                    NULL,0,0,
                                    &(it->second));
    }

ich habs auch mal damit probiert
erst alles, die gesammte Liste der Texturen gelöscht und wirklich alles neu geladen, aba da kommen auch diese Fehler..
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

6

24.05.2006, 14:41

ich find da so jetzt keinen fehler...
versuch dochmal das ganze mit dem debugger einzugrenzen, bei welchen texturen das problem dann auftritt.
die einzige vermutung, die ich habe ist, dass du möglicherweise irgendwo versuchst ne texture über nen zeiger (LPDIRECT3DTEXTURE9) anzusteuern, obwohl der möglicherweise geändert wurde nach dem restart...
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Dofter

Treue Seele

  • »Dofter« ist der Autor dieses Themas

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

7

24.05.2006, 15:06

also der textur wo er beim löschen immer nen fehler anzeigt wechselt immer, mal die eine, dann die andere und dann wieder ne andere...

also ich denk des problem mit dem Zeiger kanns net sein, da ich ja von den einzelnen prites erst alle Texturen löschen, und dann wieder hinzufüge (natürlich nachdem ich die Texturen neu geladen hab)

achja, des was ich bei dem Problem mit dem Releasen komisch find is, dass ich GetLevelDesc() noch aufrufen kann (liefer aucht die richtigen Ergebnisse), aber des Releasen.....
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Werbeanzeige