Added clipping for render copy

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403370
This commit is contained in:
Sam Lantinga 2008-12-23 01:28:06 +00:00
parent 01a9edc33a
commit c2755172c2

View file

@ -2155,6 +2155,7 @@ SDL_RenderFill(const SDL_Rect * rect)
return -1; return -1;
} }
window = SDL_GetWindowFromID(renderer->window); window = SDL_GetWindowFromID(renderer->window);
real_rect.x = 0; real_rect.x = 0;
real_rect.y = 0; real_rect.y = 0;
real_rect.w = window->w; real_rect.w = window->w;
@ -2189,21 +2190,25 @@ SDL_RenderCopy(SDL_TextureID textureID, const SDL_Rect * srcrect,
return -1; return -1;
} }
window = SDL_GetWindowFromID(renderer->window); window = SDL_GetWindowFromID(renderer->window);
real_srcrect.x = 0;
real_srcrect.y = 0;
real_srcrect.w = texture->w;
real_srcrect.h = texture->h;
if (srcrect) { if (srcrect) {
real_srcrect = *srcrect; if (!SDL_IntersectRect(srcrect, &real_srcrect, &real_srcrect)) {
} else { return 0;
real_srcrect.x = 0; }
real_srcrect.y = 0;
real_srcrect.w = texture->w;
real_srcrect.h = texture->h;
} }
real_dstrect.x = 0;
real_dstrect.y = 0;
real_dstrect.w = window->w;
real_dstrect.h = window->h;
if (dstrect) { if (dstrect) {
real_dstrect = *dstrect; if (!SDL_IntersectRect(dstrect, &real_dstrect, &real_dstrect)) {
} else { return 0;
real_dstrect.x = 0; }
real_dstrect.y = 0;
real_dstrect.w = window->w;
real_dstrect.h = window->h;
} }
return renderer->RenderCopy(renderer, texture, &real_srcrect, return renderer->RenderCopy(renderer, texture, &real_srcrect,