Warum erhalte ich mit SDL2 und SDL_RenderCopy in einer double for-Schleife über alle Pixel eine schlechte Leistung?

Ich programmiere ein Raycasting-Spiel mit SDL2. Beim Zeichnen des Bodens muss ich SDL_RenderCopy pixelweise aufrufen. Dies führt zu einem Engpass, der die Framerate unter 10 fps senkt. Ich bin auf der Suche nach Leistungssteigerungen, kann aber keine finden.

Hier ist eine grobe Übersicht über den Leistungsabfall:

int main() {
  while(true) {
        for(x=0; x<800; x++) {
            for(y=0; y<600; y++) {
                SDL_Rect src = { 0, 0, 1, 1 };
                SDL_Rect dst = { x, y, 1, 1 };
                SDL_RenderCopy(ren, tx, &src, &dst); // this drops the framerate below 10
            }
        }
        SDL_RenderPresent(ren);
    }
 }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage