2013-08-31 9 views
8

Ich habe mit SDL 2.0 herumgespielt, aber nach der Suche habe ich nichts online gefunden, um Retina Macs zu unterstützen. Beim Erstellen eines Fensters mit dem folgenden Code.SDL 2.0 Retina Mac

gWindow = SDL_CreateWindow("SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, 
      SDL_WINDOWPOS_UNDEFINED, 500, 500, SDL_WINDOW_SHOWN); 

Es schafft ein Fenster, das eine tatsächliche Größe von 1000 * 1000 ein HiDPI Bildschirm mit Das ist nicht wirklich ein Problem, weil es ist, wie Anwendungen sollen arbeiten muss. Beim Laden von Bildern kann ich jedoch keine Möglichkeit finden, Bilder zu laden, die für Retina-Bildschirme doppelt so groß sind und meine Bilder immer verschwommen aussehen.

Antwort

13

Aktuelle Versionen von SDL2 unterstützen die Netzhaut.

Um ein Retina-Fenster zu erstellen, übergeben Sie eine Markierung SDL_WINDOW_ALLOW_HIGHDPI in SDL_CreateWindow().

Nach einem resize-Ereignis können Sie die tatsächliche Pufferauflösung mit dem API-Aufruf SDL_GL_GetDrawableSize() überprüfen.

0

Derzeit unterstützt SDL keine Retina-Displays auf Macs (oder High-DPI-Displays auf Windows-Computern).

ist es eine Diskussion darüber, wie am besten, diese Funktionen hinzuzufügen, und ein paar Prototypen Patches auf SDL Bug-Tracker, hier: https://bugzilla.libsdl.org/show_bug.cgi?id=1934

Vermutlich werden wir offizielle Retina-Unterstützung in einer zukünftigen Version von SDL2 sehen. Oder wenn Sie bereit sind, eigene SDL-Bibliotheken zu kompilieren, funktionieren diese Patches für mich.