SDL_BlitScaled: remove un needed -1 +1 offset in calculation
parent
8476df3e31
commit
d81fe9239f
|
@ -797,25 +797,25 @@ SDL_PrivateUpperBlitScaled(SDL_Surface * src, const SDL_Rect * srcrect,
|
||||||
if (NULL == dstrect) {
|
if (NULL == dstrect) {
|
||||||
dst_x0 = 0;
|
dst_x0 = 0;
|
||||||
dst_y0 = 0;
|
dst_y0 = 0;
|
||||||
dst_x1 = dst_w - 1;
|
dst_x1 = dst_w;
|
||||||
dst_y1 = dst_h - 1;
|
dst_y1 = dst_h;
|
||||||
} else {
|
} else {
|
||||||
dst_x0 = dstrect->x;
|
dst_x0 = dstrect->x;
|
||||||
dst_y0 = dstrect->y;
|
dst_y0 = dstrect->y;
|
||||||
dst_x1 = dst_x0 + dst_w - 1;
|
dst_x1 = dst_x0 + dst_w;
|
||||||
dst_y1 = dst_y0 + dst_h - 1;
|
dst_y1 = dst_y0 + dst_h;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NULL == srcrect) {
|
if (NULL == srcrect) {
|
||||||
src_x0 = 0;
|
src_x0 = 0;
|
||||||
src_y0 = 0;
|
src_y0 = 0;
|
||||||
src_x1 = src_w - 1;
|
src_x1 = src_w;
|
||||||
src_y1 = src_h - 1;
|
src_y1 = src_h;
|
||||||
} else {
|
} else {
|
||||||
src_x0 = srcrect->x;
|
src_x0 = srcrect->x;
|
||||||
src_y0 = srcrect->y;
|
src_y0 = srcrect->y;
|
||||||
src_x1 = src_x0 + src_w - 1;
|
src_x1 = src_x0 + src_w;
|
||||||
src_y1 = src_y0 + src_h - 1;
|
src_y1 = src_y0 + src_h;
|
||||||
|
|
||||||
/* Clip source rectangle to the source surface */
|
/* Clip source rectangle to the source surface */
|
||||||
|
|
||||||
|
@ -824,9 +824,9 @@ SDL_PrivateUpperBlitScaled(SDL_Surface * src, const SDL_Rect * srcrect,
|
||||||
src_x0 = 0;
|
src_x0 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (src_x1 >= src->w) {
|
if (src_x1 > src->w) {
|
||||||
dst_x1 -= (src_x1 - src->w + 1) * scaling_w;
|
dst_x1 -= (src_x1 - src->w) * scaling_w;
|
||||||
src_x1 = src->w - 1;
|
src_x1 = src->w;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (src_y0 < 0) {
|
if (src_y0 < 0) {
|
||||||
|
@ -834,9 +834,9 @@ SDL_PrivateUpperBlitScaled(SDL_Surface * src, const SDL_Rect * srcrect,
|
||||||
src_y0 = 0;
|
src_y0 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (src_y1 >= src->h) {
|
if (src_y1 > src->h) {
|
||||||
dst_y1 -= (src_y1 - src->h + 1) * scaling_h;
|
dst_y1 -= (src_y1 - src->h) * scaling_h;
|
||||||
src_y1 = src->h - 1;
|
src_y1 = src->h;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -853,9 +853,9 @@ SDL_PrivateUpperBlitScaled(SDL_Surface * src, const SDL_Rect * srcrect,
|
||||||
dst_x0 = 0;
|
dst_x0 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dst_x1 >= dst->clip_rect.w) {
|
if (dst_x1 > dst->clip_rect.w) {
|
||||||
src_x1 -= (dst_x1 - dst->clip_rect.w + 1) / scaling_w;
|
src_x1 -= (dst_x1 - dst->clip_rect.w) / scaling_w;
|
||||||
dst_x1 = dst->clip_rect.w - 1;
|
dst_x1 = dst->clip_rect.w;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dst_y0 < 0) {
|
if (dst_y0 < 0) {
|
||||||
|
@ -863,9 +863,9 @@ SDL_PrivateUpperBlitScaled(SDL_Surface * src, const SDL_Rect * srcrect,
|
||||||
dst_y0 = 0;
|
dst_y0 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dst_y1 >= dst->clip_rect.h) {
|
if (dst_y1 > dst->clip_rect.h) {
|
||||||
src_y1 -= (dst_y1 - dst->clip_rect.h + 1) / scaling_h;
|
src_y1 -= (dst_y1 - dst->clip_rect.h) / scaling_h;
|
||||||
dst_y1 = dst->clip_rect.h - 1;
|
dst_y1 = dst->clip_rect.h;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Translate back to surface coordinates */
|
/* Translate back to surface coordinates */
|
||||||
|
@ -876,13 +876,13 @@ SDL_PrivateUpperBlitScaled(SDL_Surface * src, const SDL_Rect * srcrect,
|
||||||
|
|
||||||
final_src.x = (int)SDL_floor(src_x0 + 0.5);
|
final_src.x = (int)SDL_floor(src_x0 + 0.5);
|
||||||
final_src.y = (int)SDL_floor(src_y0 + 0.5);
|
final_src.y = (int)SDL_floor(src_y0 + 0.5);
|
||||||
final_src.w = (int)SDL_floor(src_x1 + 1 + 0.5) - (int)SDL_floor(src_x0 + 0.5);
|
final_src.w = (int)SDL_floor(src_x1 + 0.5) - (int)SDL_floor(src_x0 + 0.5);
|
||||||
final_src.h = (int)SDL_floor(src_y1 + 1 + 0.5) - (int)SDL_floor(src_y0 + 0.5);
|
final_src.h = (int)SDL_floor(src_y1 + 0.5) - (int)SDL_floor(src_y0 + 0.5);
|
||||||
|
|
||||||
final_dst.x = (int)SDL_floor(dst_x0 + 0.5);
|
final_dst.x = (int)SDL_floor(dst_x0 + 0.5);
|
||||||
final_dst.y = (int)SDL_floor(dst_y0 + 0.5);
|
final_dst.y = (int)SDL_floor(dst_y0 + 0.5);
|
||||||
final_dst.w = (int)SDL_floor(dst_x1 - dst_x0 + 1.5);
|
final_dst.w = (int)SDL_floor(dst_x1 - dst_x0 + 0.5);
|
||||||
final_dst.h = (int)SDL_floor(dst_y1 - dst_y0 + 1.5);
|
final_dst.h = (int)SDL_floor(dst_y1 - dst_y0 + 0.5);
|
||||||
|
|
||||||
if (final_dst.w < 0)
|
if (final_dst.w < 0)
|
||||||
final_dst.w = 0;
|
final_dst.w = 0;
|
||||||
|
|
Loading…
Reference in New Issue