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 float
s. É importante vc tirar um tempo pra testar e experimentar para vc ver como diferentes argumentos afetam como a textura é desenhada.