Таким образом, при добавлении меньшего изображения на экран sdl абсолютно отсутствует падение fps, но затем я добавил фон sdl, с деталями и всем остальным, на весь мой экран. Тогда я получаю падение с 350 до 150 кадров в секунду. Может быть, есть способ это исправить? Добавить эту текстуру на другой экран или что-то подобное?
Вот как я могу добавить это изображение:
В загрузке моей игры:
SDL_Texture* texture;
SDL_Rect rect;
texture = IMG_LoadTexture(renderer, "data/interiors/baznycia.png");
rect.x = 0;
rect.y = 0;
rect.w = screenWidth;
rect.h = screenHight;
В моем игровом цикле:
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, texture, NULL, &rect);
SDL_RenderPresent(renderer);
В вашем случае, поскольку вы рисуете фоновое изображение игры с постоянным размером окна, было бы полезно сопоставить размеры вашего изображения с размером экрана, чтобы избежать применения интерполяции к вашей текстуре (что занимает время вычисления и, следовательно, может ограничить свой FPS)
Кроме того, иногда несоответствие формата пикселя текстуры может привести к ненужным преобразованиям текстур, поэтому убедитесь, что вы используете правильные формат перед рисованием на экране.
Других решений пока нет …