Saludos, ten en cuenta que SDL_BlitSurface solo evalúa los registros
`x` y `y` del cuarto parámetro, el uso correcto de la función
SDL_BlitSurface suele ser:
>>>
SDL_Rect rect;
rect.x = 0;
rect.y = 0;
SDL_BlitSurface(imagen_fuente, NULL, screen, &rect);
>>>
es decir, no importa el valor que tienen `rect.w` y `rect.h`. Al menos
cuando se lo envías a la función.
Ahora, imagina que quieres repetir la impresión como si se tratara de
un mosaico. Tendrías que llamar muchas veces a SDL_BlitSurface de forma
similar a esta:
>>>
SDL_Rect rect;
rect.y = 0;
for (rect.x=0; rect.x < screen->w; rect.x += imagen_fuente->w)
SDL_BlitSurface(imagen_fuente, NULL, screen, &rect);
>>>
La idea es llamar muchas veces a SDL_BlitSurface, pero aumentando
la posición de impresión en X (rect.x).
No estoy muy seguro si funciona bien, ya que no he tenido tiempo de compilarla,
pero creo que está bien (al menos desde el concepto). Prueba la función y
cuentanos.
Saludos.
--
Hugo Ruscitti
www.losersjuegos.com.ar