|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 24.04.2005, 19:56 Titel: Problem mit Debug und Release |
|
|
Hallo,
ich habe ein Beispiel mit DirectX unter Visual Studio 2003 entwickelt.
Wenn ich alles in der Konfiguration Debug laufen lasse, funktioniert es. Wenn ich es unter Release laufen lasse, schmeißt die Methode GetSurfaceLevel der Texture nen Speicherfehler.
Wenn ich die Mipmap Texturen nicht lade, bzw nur die Zeile für das SurfaceLevel auskommentiere, läuft es.
Code: |
void Cube::LoadTextures(int i)
{
LPCTSTR path[] = {
".\\Data\\texture\\00\\",
".\\Data\\texture\\01\\",
".\\Data\\texture\\02\\",
".\\Data\\texture\\03\\",
".\\Data\\texture\\04\\",
".\\Data\\texture\\05\\",
".\\Data\\texture\\06\\",
".\\Data\\texture\\07\\",
".\\Data\\texture\\09\\",
".\\Data\\texture\\10\\",
".\\Data\\texture\\11\\",
".\\Data\\texture\\12\\",
".\\Data\\texture\\13\\",
".\\Data\\texture\\14\\",
".\\Data\\texture\\15\\",
};
LPCTSTR file = "00.bmp";
for(int j=0; j<i;j++)
{
TCHAR strTexture[25];
lstrcpyn(strTexture,path[j],24);
lstrcpyn(strTexture+18,file,7);
D3DXCreateTextureFromFile(this->m_lpDevice,strTexture,&this->texture[j]);
this->InitSurfaces(this->texture[j],strTexture);
}
}
void Cube::InitSurfaces(LPDIRECT3DTEXTURE9 t, TCHAR tex[])
{
LPCTSTR path[] = {
"01.bmp",
"02.bmp",
"03.bmp",
"04.bmp",
"05.bmp",
"06.bmp"
"06.bmp"
};
LPDIRECT3DSURFACE9 pDestSurface = NULL;
for( int i = 1; i < 7; i++ )
{
lstrcpyn(tex+18,path[i-1],7);
t->GetSurfaceLevel( i, &pDestSurface );
D3DXLoadSurfaceFromFile(pDestSurface,0,0,tex,0,D3DX_FILTER_LINEAR,0,0);
pDestSurface->Release();
}
}
|
Hat jemand ansatzweise ne Vorstellung, warum das nicht geht im releasemode? Die Grundtextur wird ja geladen, und wenn ich kein Mipmapping mache auch angezeigt! _________________ "Dispatcher und Scheduler sind wie Brüder, bloß anders" |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 24.04.2005, 20:05 Titel: |
|
|
im release modus werden variablen nicht (wie im debug modus) mit 0 initialisiert. daher kann das zu fehlern kommen. vielleicht hilft dir das weiter. |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 24.04.2005, 20:11 Titel: |
|
|
btw. benutze doch bitte statt code cpp. Das seiht viel schöner aus.
Ich habe auch schonmal so doofe Fehlrer gehabt, die in Release waren, aber bei Debug net. Allerdings mit VC6. Tja, manchmal half es, die Optimierungsfunktionen zu verändern, einmal habe ich auch einfach noch Debug infos mit reingeschreiben und es ging. Ergibt zwar keinen Sinn, aber es war so. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 24.04.2005, 20:15 Titel: |
|
|
Hmm,
das mit cpp mekr ich mir
An der Initialisierung mit 0 hängt es glaub ich nicht.
das pDestSurface initialisier ich ja mit 0. Und die Textur ist ja gefüllt.
Ich glaub auch, dass es was mit der blöden Optimierung zu tun hat.
Macht der Debugmodus nen großen Performanceunterschied? _________________ "Dispatcher und Scheduler sind wie Brüder, bloß anders" |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 24.04.2005, 20:20 Titel: |
|
|
So habe mal die Debug Konfiguration kopiert und erstens die Debuginformationen rausgenommen und zweitens dem Präprozessor statt _DEBUG NDEBUG übergeben.
Was muss man noch umstellen, damit alle Debugfunktionen raus sind? _________________ "Dispatcher und Scheduler sind wie Brüder, bloß anders" |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 24.04.2005, 20:27 Titel: |
|
|
Ähme zwischen Debug und Release gibt es noch größere Unterschiede als nur Debugfunktionen! z.B. Optimierungen, Herausgenommene Debuginformations uvm. _________________ '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 |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 24.04.2005, 20:32 Titel: |
|
|
Ja klar.
Ich meine nur, was muss man alles rausnehmen, damit der Debugging Mode komplett weg ist.
Ich bin grad dabei zu probieren, welche Optimierungen sinn machen! _________________ "Dispatcher und Scheduler sind wie Brüder, bloß anders" |
|
Nach oben |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 24.04.2005, 20:36 Titel: |
|
|
Komisch,
habe jetzt ein neues Szenario zum Kompilieren erstellt. Es 100%ig genauso wie das vorherige, bloß dass es jetzt tut!
*g* _________________ "Dispatcher und Scheduler sind wie Brüder, bloß anders" |
|
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
|