2016-05-05 18 views
0

Ich teste die Unterstützung mehrerer Auflösungen in einer Anwendung, die SDL2 mit OpenGL verwendet. Um meine "Letterbox" -Funktionalität zu erstellen, setze ich meine glViewport auf einen geeigneten Wert und alles funktioniert perfekt.SDL Zurücksetzen von glViewport

Allerdings, wenn ich mein Fenster mit der SDL_WINDOW_ALLOW_HIGHDPI-Flag erstellen, wenn ich mein Fenster zu verschieben (nach dem SDL_WINDOWEVENT_MOVED Ereignisse Empfangen) SDL ändert die Ansichtsfenster auf die volle Größe des Fensters, die von SDL_GL_GetDrawableSize während des anrufüberprüft werden kann Veranstaltung.

Wenn ich SDL_WINDOW_ALLOW_HIGHDPI beim Erstellen des Fensters nicht festlegen, wird das Ansichtsfenster nicht zurückgesetzt. Ich glaube, dass dies ein Fehler ist, aber ich kann nichts über SDL Bugzilla finden, also dachte ich mir, ob jemand ähnliches Verhalten gesehen hat.

Möglicherweise müssen Sie ein Retina MacBook Pro verwenden, um dieses Verhalten zu erleben.

+1

Sieht aus wie ein Fehler. Am besten wäre es, es auf SDL Bugtracker zu posten. – teivaz

Antwort

0

Tun Sie einfach, was Sie trotzdem tun sollten: Setzen Sie das Ansichtsfenster immer auf den Anfang des Zeichnens jedes Bildes. Sobald Sie ein HUD implementieren möchten, verwenden Sie Framebuffer-Objekte oder ähnliche Dinge, die Sie für das Zeichnen jedes Frames mehrmals einstellen müssen.