L
warum benutzt du denn nicht doublebuffering?
musst mal in der doku gucken, ob du da was findest....
ich glaube, dass doublebuffering dein problem löst... dann kannst du dir nämlich auch die 2 for-schleifen sparen, wenn du die surface einfach auf die andere blittest und die dann einfach flipst...(SDL_Flip(surface))
P.S.: wenn du ddein bild gezeichnet hast, updatest du dann auch deine main-surface(wahrscheinlich: screen)? wenn nicht, dann mach doch mal SDL_UpdateRect(screen, 0, 0, 0, 0);