Portabler Weg in C ++, um Desktop-Auflösung zu erhalten

8

Ich mache ein C ++ - Spiel, und ich möchte, dass es automatisch die Desktopauflösung des Benutzers erhält.

Ich habe bisher nur Windows-basierte Lösungen gefunden - Gibt es einen Weg / eine Bibliothek, um die Auflösung unter Windows / Mac / Linux zu finden?

    
Vittorio Romeo 16.11.2012, 17:22
quelle

2 Antworten

7

Es gibt mehrere Bibliotheken, die dir dabei helfen, das Low-Level-Zeug zum Laufen zu bringen. Sie werden wahrscheinlich mehr Sachen auf diesen Plattformen brauchen, also werde ich einige aufzählen:

  • SFML ist eine C ++ - Bibliothek , die einen Großteil der E / A-Funktionen abstrahiert, einschließlich der Verwaltung von Displays. Unterstützt auch mehrere Plattformen.
  • Die klassische SDL , obwohl sie eine C-Bibliothek ist, wird häufig in plattformunabhängiger Spieleentwicklung und -unterstützung verwendet mehrere Plattformen. Wie SFML bietet es mehr als nur die Verwaltung anzuzeigen.
  • GLFW , siehe wards antwort , auch eine C-Bibliothek und stellt auch eine Abstraktionsschicht dar, die sich jedoch mehr auf Anzeige und Tastatur / Maus-I / O als auf breitere I / O (Audio usw.) konzentriert.
Jonas Wielicki 16.11.2012, 17:41
quelle
5

GLFW bietet eine Kreuzplattform (für Windows, Mac und Linux), um den Desktop-Videomodus zu erhalten. Es ist ein C api , aber es funktioniert in C ++. Die relevante Funktion (und Dokumentation) ist hier:

void glfwGetDesktopMode( GLFWvidmode *mode )

Parameter

mode Zeiger auf eine GLFWvidmode -Struktur, die von der Funktion ausgefüllt wird.

Rückgabewerte

Die GLFWvidmode -Struktur, auf die der Modus zeigt, wird mit dem Desktop-Videomodus ausgefüllt.

Beschreibung

Diese Funktion gibt den Desktop-Videomodus in einer GLFWvidmode -Struktur zurück. Siehe glfwGetVideoModes für eine Definition der GLFWvidmode Struktur.

Hinweise

Die Farbtiefe der Desktop-Anzeige wird immer als Anzahl der Bits für jede einzelne Farbe angegeben Komponente (rot, grün und blau), auch wenn der Desktop kein RGB- oder RGBA-Farbformat verwendet. Zum Beispiel: Eine indizierte 256-Farben-Anzeige meldet möglicherweise RedBits = 3, GreenBits = 3 und BlueBits = 2 addiert insgesamt bis zu 8 Bits.

Der Desktop-Videomodus ist der Videomodus, der vom Desktop zu der Zeit verwendet wurde, als das GLFW-Fenster war geöffnet, nicht der aktuelle Videomodus (der sich vom Desktop - Videomodus unterscheiden kann, wenn der GLFW Fenster ist ein Vollbild-Fenster).

%Vor%

Siehe Jonas Wielickis Antwort für Alternativen.

    
wardd 16.11.2012 17:39
quelle