368a369 > SDL_Rect final_clip = renderer->viewport; 371c372,377 < SDL_SetClipRect(surface, &renderer->clip_rect); --- > SDL_Rect new_rclip; > new_rclip = renderer->clip_rect; > new_rclip.x += final_clip.x; > new_rclip.y += final_clip.y; > SDL_IntersectRect(&(renderer->viewport), &new_rclip, &final_clip); > SDL_SetClipRect(surface, &final_clip); 373c379,384 < SDL_SetClipRect(surface, NULL); --- > if(final_clip.w == surface->w && final_clip.h == surface->h) { > SDL_SetClipRect(surface, NULL); > } > else { > SDL_SetClipRect(surface, &final_clip); > }