Ich schreibe ein Vollbild-3D-Spiel und ich habe ein Menü erstellt, in dem der Benutzer die Bildschirmauflösung auswählen kann, um seine Hardware-Kapazität anzupassen.Unterscheide zwischen Panning und normalen Bildschirmmodi im Code - Windows
ich alle verfügbaren Darstellungsmodi mit EnumDisplaySettingsExA
wie dies am aufzählt:
std::vector<DEVMODEA> modes;
DEVMODEA modeInfo;
int modeNum = -1;
while (EnumDisplaySettingsExA(0, ++modeNum, &modeInfo, 0)) {
if (modeInfo.dmBitsPerPel < 16) continue;
modes.push_back(modeInfo);
}
Das Problem ist, ich bin immer Panning-Modi, wie gut! Ich kann nicht unterscheiden, welche welche sind; zum Beispiel hat mein ATI Laptop einen maximalen Normalmodus von 1280x800, aber enthält auch einen Panning-Modus von 1024x600!
Wer kennt eine Möglichkeit, zwischen den 2 zu unterscheiden, damit ich Schwenk-Modi von meinem Menü ablehnen kann?
BTW, die Felder dmPanningWidth und Height von DEVMODEA sind nutzlos, sie geben immer 0 zurück. –
Was meinen Sie mit Panning-Modus? Wenn EnumDisplaySettingsEx 1024x600 zurückgibt, bedeutet dies, dass der Windows-Benutzer die Videoanzeigeeinstellungen auf diese Auflösung ändern kann, und der Monitor wird dies wahrscheinlich ebenfalls unterstützen. –
@Chris: Es bezieht sich auf eine Auflösung, die vom Monitor nicht unterstützt wird, normalerweise weil sie zu groß ist, aber von der Grafikkarte emuliert wird, indem jeweils nur ein Teil des Desktops auf dem Bildschirm angezeigt wird; Bewegen Sie die Maus an den Rand des Bildschirms "schwenken" es um andere Teile des Desktops zu zeigen. –