Я пишу 2D-платформерную игру, используя SDL с C++. Однако я столкнулся с огромной проблемой, связанной с масштабированием до разрешения. Я хочу, чтобы игра выглядела хорошо в полном HD, поэтому все изображения для игры были созданы так, чтобы естественное разрешение игры было 1920x1080. Однако я хочу, чтобы игра уменьшалась до правильного разрешения, если кто-то использует меньшее разрешение или масштабируется больше, если кто-то использует большее разрешение.Как масштабировать до разрешения в SDL?
Проблема заключается в том, что я не смог найти эффективный способ сделать это. Я начал с использования библиотеки SDL_gfx для предварительного масштабирования всех изображений, но это не сработает, так как оно создает много отключений - одни ошибки, когда один пиксель теряется. И поскольку мои анимации содержатся в одном изображении, когда анимация будет воспроизводиться, анимация будет слегка перемещаться вверх или вниз по каждому кадру.
Затем, после некоторого оглядки, я попытался использовать opengl для обработки масштабирования. В настоящее время моя программа рисует все изображения на SDL_Surface, которая составляет 1920x1080. Затем он преобразует эту поверхность в текстуру opengl, масштабирует эту текстуру до разрешения экрана, затем рисует текстуру. Это прекрасно работает визуально, но проблема в том, что он неэффективен вообще. В настоящее время я получаю максимальный фпс 18 :(
Так что мой вопрос кто-нибудь знает эффективный способ масштабирования на SDL дисплей с разрешением экрана?
Вы рисуете, конвертируете и масштабируете на лету, когда используете opengl ?? – silent
Также попросите ребят на форуме gamedev, они должны быть в состоянии помочь вам. – silent
Да, вот почему это так неэффективно. Но в настоящее время я не могу найти другого способа сделать это, что работает. Нормально будет делать. –