Diferença entre SDL_Surface e SDL_Renderer

Queria saber qual a funcionalidade de cada um, e se tem diferença,
e para que cada um serve.

Quando vc usa SDL_Surface todo o trabalho de renderização é feito por software, que é um processo mais lento, enquanto que com SDL_Renderer e SDL_Texture este trabalho é acelerado por hardware.

Além disso, uma coisa que notei, é que as funções que desenham SDL_Surface, como a SDL_BlitSurface são mais simples, permitindo que vc desenhe apenas áreas retangulares não rotacionadas.

Por outro lado, quando vc trabalha com SDL_Renderer e SDL_Texture, vc tem mais opções a sua disposição.

Dá uma olha nesta função: SDL_RenderCopyExF. Ela te permite desenhar uma SDL_Texture rotacionada e te permite definir a posição do centro dela, além de permitir que vc a desenhe “flipada” verticalmente e/ou horizontalmente, além de usar SDL_FRect que é um SDL_Rect de floats. É importante vc tirar um tempo pra testar e experimentar para vc ver como diferentes argumentos afetam como a textura é desenhada.

1 curtida