2013-08-31 3 views
8

Я играл с SDL 2.0, но после поиска я ничего не нашел в Интернете о том, как поддерживать сетчатку macina. При создании окна используйте следующий код.SDL 2.0 retina mac

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

Это создает окно, которое имеет фактический размер 1000 * 1000. Это на самом деле не является проблемой, потому что это, как приложения должны работать с использованием экрана HiDPI. Однако при загрузке изображений я не могу найти способ загрузки изображений, размер которых в 2 раза больше для экранов сетчатки, и мои изображения всегда выглядят размытыми.

ответ

13

Текущие версии SDL2 имеют поддержку сетчатки.

Чтобы создать окно сетчатки, пропустите флаг SDL_WINDOW_ALLOW_HIGHDPI в SDL_CreateWindow().

После события изменения размера вы можете проверить фактическое разрешение буфера с помощью вызова API SDL_GL_GetDrawableSize().

0

В настоящее время SDL не поддерживает отображение сетчатки на компьютерах Mac (или дисплеях с высоким разрешением DPI на компьютерах Windows).

Существует дискуссия о том, как лучше, чтобы добавить эти функции, и несколько прототипов заплаты на багтрекер SDL, то и здесь: https://bugzilla.libsdl.org/show_bug.cgi?id=1934

Предположительно, мы увидим официальную поддержку сетчатки в будущем выпуске SDL2. Или, если вы готовы скомпилировать свои собственные библиотеки SDL, эти исправления работают для меня.