Всякий раз, когда вы инициализируете поверхность, делайте это следующим образом:
SDL_Surface* mySurface;
SDL_Surface* tempSurface;
tempSurface = SDL_LoadIMG("./path/to/image/image.jpg_or_whatever");
/* SDL_LoadIMG() is correct name? Not sure now, I`m at work, so I can`t verify it. */
mySurface = SDL_DisplayFormat(tempSurface);
SDL_FreeSurface(tempSurface);
Метод SDL_DisplayFormat () преобразует пиксельный формат вашей поверхности в формат, используемый видео-поверхностью.Если вы делаете это не так, как я описал выше, SDL делает это каждый раз, когда поверхность вспыхивает.
И всегда помните: просто поменяйте необходимые детали, которые действительно видны игроку.
Это мое первое предположение, почему у вас проблемы с производительностью.Разместите свой код или задайте более конкретные вопросы, если вы хотите больше подсказок.Удачи в вашей игре.