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

Jo

Frischling

  • »Jo« ist der Autor dieses Themas
  • Private Nachricht senden

1

06.04.2005, 19:04

Absturtz bei Auswahl vom Grafikdevice

Wenn man die Tri-Base initialisiert, dann kommt immer ein Dialogfeld, indem man auswählen kann, welche Grafikkarte, Backbufferformat,... . Wenn dieser Dialog kommt, dann ist am Anfang als Fenstermodus Vollbild ausgewählt. Wenn ich jetzt aber Fenstermodus auswähle stürtzt das Programm mit einem unbehandelten Ausnahmefehler ab. Beim debuggen habe ich festgestellt, dass dieser Fehler in dieser Zeile auftritt (Access Violation):

C-/C++-Quelltext

1
2
3
4
5
6
if(SUCCEEDED(g_pD3DTemp->CheckDeviceMultiSampleType(iSelectedAdapter, 
                                                            *pSelectedDeviceType,
                                                            *pSelectedBackBufferFormat,
                                                            bWindowed,
                                                            aMultiSamplingType[iMultiSamplingType],
                                                            &dwTemp)))


Der Kompiler gibt auch noch die Variablen aus:
iMultiSamplingType=0;
iSelectedAdapter=0;
pSelectedBackBufferFormat=0xffffffff;
*pSelectedDeviceType=D3DDEVTYPE_HAL

Kann jemand einen Fehler erkennen. Liegt es vielleicht an pSelectedBackBufferFormat?
Ist dieser Fehler schon bekannt und gibt es ein Update?

PS: Ich hab eine alte Voodoo 3 3000 Grafikkarte[/img]

weigo

Treue Seele

Beiträge: 234

Wohnort: Deutschland

  • Private Nachricht senden

2

07.04.2005, 08:44

Ja definitiv:
pSelectedBackBufferFormat=0xffffffff;

0xffffffff ist keine gültige Adresse.

Du musst pSelectedBackBufferFormat vorher einen gültigen Wert geben.
Warum ist das SurfaceFormat eigentlich ein Pointer?
Müsste das nicht ein Format sein, das du vorher durch ermittelt hast? Du könntest auch einfach per Hand verschiedene Formate testen, aber das ist keine Lösung auf Dauer.