Для полноты и из-за того, что в вопросе не указана версия SDL, в SDL2 возможно масштабирование с использованием метода API SDL_RenderCopyEx
. Никаких дополнительных библиотек кроме базовой библиотеки SDL2 не требуется.
int SDL_RenderCopyEx(SDL_Renderer* renderer,
SDL_Texture* texture,
const SDL_Rect* srcrect,
const SDL_Rect* dstrect,
const double angle,
const SDL_Point* center,
const SDL_RendererFlip flip)
Установив размер dstrect
, можно масштабировать текстуру до целого числа пикселей. Также возможно вращать и переворачивать текстуру одновременно.
Технически это не масштабирование поверхности, а масштабирование текстуры. Процедура должна быть такой же актуальной, хотя поверхности почти всегда преобразуются в текстуры до того, как рендеринг происходит в приложениях на основе SDL2.
Ссылка: https://wiki.libsdl.org/SDL_RenderCopyEx
Создайте свои текстуры как обычно:
surface = IMG_Load(filePath);
texture = SDL_CreateTextureFromSurface(renderer, surface);
А когда пришло время сделать это, позвоните SDL_RenderCopyEx
вместо SDL_RenderCopy