Изменение цвета Allegro в полноэкранном режиме

Я учусь использовать библиотеку Allegro прямо сейчас и при использовании set_gfx_mode функция, если я использую GFX_AUTODETECT_FULLSCREEN для первого аргумента окно будет работать в полноэкранном режиме при запуске скомпилированного приложения, но после первой секунды работы все цвета изменятся. При использовании любого другого графического режима этого не происходит, но на двух отдельных машинах цвета меняются сразу после перехода в полноэкранный режим. Кто-нибудь еще видел это раньше? Я не могу найти никакого обсуждения по этой проблеме вообще.

Я использую предварительно скомпилированную библиотеку allegro 4.4.2 для Visual Studio 2010 и Windows 7.

1

Решение

Allegro 4 устарел и использует API, которые больше не очень хорошо поддерживаются современными операционными системами. Полноэкранный режим будет глючить, особенно на 8-битной графике. Лучший способ получить надежный полноэкранный режим — соблюдать текущие настройки рабочего стола пользователя:

int w, h;
get_desktop_resolution(&w, &h);

set_color_depth(desktop_color_depth());
set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, w, h, 0, 0);

Тогда вашему приложению потребуется центрировать / масштабировать чертеж. Это не так уж сложно, просто нарисуйте все в промежуточный буфер, который является шириной / высотой вашей нативной игры, а затем растяните его до нужного размера экрана.

Все это говорит о том, что вы действительно должны изучать Allegro 5, так как он предназначен для работы на современном оборудовании и операционных системах, включая iOS и Android.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector