diff -r 58908b180ebd src/render/SDL_render.c --- a/src/render/SDL_render.c Sat Jul 13 03:13:41 2013 -0700 +++ b/src/render/SDL_render.c Sat Jul 13 16:40:47 2013 +0400 @@ -1539,22 +1541,10 @@ real_dstrect.x = 0; real_dstrect.y = 0; if (dstrect) { - if (!SDL_IntersectRect(dstrect, &real_dstrect, &real_dstrect)) { + if (!SDL_HasIntersection(dstrect, &real_dstrect)) { return 0; } - /* Clip srcrect by the same amount as dstrect was clipped */ - if (dstrect->w != real_dstrect.w) { - int deltax = (real_dstrect.x - dstrect->x); - int deltaw = (real_dstrect.w - dstrect->w); - real_srcrect.x += (deltax * real_srcrect.w) / dstrect->w; - real_srcrect.w += (deltaw * real_srcrect.w) / dstrect->w; - } - if (dstrect->h != real_dstrect.h) { - int deltay = (real_dstrect.y - dstrect->y); - int deltah = (real_dstrect.h - dstrect->h); - real_srcrect.y += (deltay * real_srcrect.h) / dstrect->h; - real_srcrect.h += (deltah * real_srcrect.h) / dstrect->h; - } + real_dstrect = *dstrect; } if (texture->native) {