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

killmichnich

unregistriert

1

01.05.2009, 23:08

problem mit video-modi

Hi Leute,
ich versuch zur Zeit in meinem Programm Infos über meine Grafikkarte zu sammeln.
Das versuch ich so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
int iAdapters = D_lpD3D->GetAdapterCount();
D3DADAPTER_IDENTIFIER9 pAdapter;
D_lpD3D->GetAdapterIdentifier(0, 0, &pAdapter)


int iVideoModes = D_lpD3D->GetAdapterModeCount(0, D3DFMT_X8R8G8B8);
D3DDISPLAYMODE pModes;
D_lpD3D->EnumAdapterModes(0, D3DFMT_A8R8G8B8, 0, &pModes);


Mein Problem ist jetzt, dass GetAdapterModeCount() immer die selbe Anzahl Modis zurückgibt, nämlich 458767, und das für mich recht unlogisch klingt, und danach auch bei EnumAdapterModes() rechten mist zurückgibt, z.B. ne Refreshrate von 16000 Hz.
GetAdapterCount() und GetAdapterIdentifier() funktioniert aber.
Was stimmt an diesem Code nicht?

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

2

02.05.2009, 08:12

Dein Code gibt bei mir (nachdem ich ein Semikolon hinter GedAdpterIdentifier eingefügt hab ;) ) 100% korrekte Werte.
Gibst du die Werte mit einer MessageBox aus oder schreibst du sie in eine Datei? Der Fehler liegt wahrscheinlich beim Ausgeben der Werte.
vllt ist ein PC aber auch nur seeehr gut :) wo hast du den her? so einen hätte ich auch gerne
Signaturen werden überbewertet

killmichnich

unregistriert

3

02.05.2009, 10:56

ich schreib das mit sprintf in ein array und gebs dann in ner messagebox aus:

C-/C++-Quelltext

1
2
3
char cModes[200];
sprintf(cModes, "Modus: %d: %d*%d bei %d Hz (0: Standard)", 0, pModes.Width, pModes.Height, pModes.RefreshRate);
MessageBox(hwnd, cModes, "Info", MB_OK);

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

4

02.05.2009, 11:23

sry ich hab vorhin nur die int Variablen getestet.
prüf mal den Rückgabewert von EnumAdapterModes. Vllt unterstützt dein System keine modes mit dem Format A8R8G8B8. Oder ersetze das A durch ein X, dann macht der Aufruf von GetAdapterModeCount auch mehr Sinn, da du diesem ja X8R8G8B8 übergibst.
Signaturen werden überbewertet

killmichnich

unregistriert

5

02.05.2009, 12:39

oh man is ja doof =(
A durch ein X ersetzt und das ganze läuft perfekt
danke :D

Werbeanzeige