Por que obtenho desempenho ruim com SDL2 e SDL_RenderCopy dentro de um loop for duplo sobre todos os pixels?
Estou programando um jogo de radiodifusão usando SDL2. Ao desenhar o chão, preciso chamar SDL_RenderCopy pixel a pixel. Isso leva a um gargalo que reduz a taxa de quadros abaixo de 10 qps. Estou à procura de melhorias de desempenho, mas não consigo encontrar algumas.
Aqui está uma visão geral aproximada da queda no desempenho:
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);
}
}