• Sam Lantinga's avatar
    [SDL] Bad math in SDL_RenderCopy · 7f262312
    Sam Lantinga authored
    Mason Wheeler to sdl
    
    When I tried to render an image using something other than NULL for srcrect, it got horribly distorted.  I traced it down to the fact that the math in the rectangle adjustments performed just before the call to renderer->RenderCopy is written inside out.  It should look like this:
    
           if (dstrect->w != real_dstrect.w) {
               int deltax = (dstrect->x - real_dstrect.x);
               int deltaw = (dstrect->w - real_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 = (dstrect->y - real_dstrect.y);
               int deltah = (dstrect->h - real_dstrect.h);
               real_srcrect.y += (deltay * real_srcrect.h) / dstrect->h;
               real_srcrect.h += (deltah * real_srcrect.h) / dstrect->h;
    
    --HG--
    extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403957
    7f262312
Name
Last commit
Last update
..
Xext Loading commit data...
bwindow Loading commit data...
cocoa Loading commit data...
directfb Loading commit data...
dummy Loading commit data...
fbcon Loading commit data...
gapi Loading commit data...
nds Loading commit data...
pandora Loading commit data...
photon Loading commit data...
ps2gs Loading commit data...
ps3 Loading commit data...
qnxgf Loading commit data...
riscos Loading commit data...
svga Loading commit data...
uikit Loading commit data...
win32 Loading commit data...
x11 Loading commit data...
SDL_RLEaccel.c Loading commit data...
SDL_RLEaccel_c.h Loading commit data...
SDL_alphamult.c Loading commit data...
SDL_alphamult.h Loading commit data...
SDL_blendline.c Loading commit data...
SDL_blendpoint.c Loading commit data...
SDL_blendrect.c Loading commit data...
SDL_blit.c Loading commit data...
SDL_blit.h Loading commit data...
SDL_blit_0.c Loading commit data...
SDL_blit_1.c Loading commit data...
SDL_blit_A.c Loading commit data...
SDL_blit_N.c Loading commit data...
SDL_blit_auto.c Loading commit data...
SDL_blit_auto.h Loading commit data...
SDL_blit_copy.c Loading commit data...
SDL_blit_copy.h Loading commit data...
SDL_blit_slow.c Loading commit data...
SDL_blit_slow.h Loading commit data...
SDL_bmp.c Loading commit data...
SDL_draw.h Loading commit data...
SDL_drawline.c Loading commit data...
SDL_drawpoint.c Loading commit data...
SDL_fillrect.c Loading commit data...
SDL_gamma.c Loading commit data...
SDL_glesfuncs.h Loading commit data...
SDL_glfuncs.h Loading commit data...
SDL_leaks.h Loading commit data...
SDL_pixels.c Loading commit data...
SDL_pixels_c.h Loading commit data...
SDL_rect.c Loading commit data...
SDL_rect_c.h Loading commit data...
SDL_renderer_gl.c Loading commit data...
SDL_renderer_gl.h Loading commit data...
SDL_renderer_gles.c Loading commit data...
SDL_renderer_gles.h Loading commit data...
SDL_renderer_sw.c Loading commit data...
SDL_renderer_sw.h Loading commit data...
SDL_stretch.c Loading commit data...
SDL_surface.c Loading commit data...
SDL_sysvideo.h Loading commit data...
SDL_video.c Loading commit data...
SDL_yuv_mmx.c Loading commit data...
SDL_yuv_sw.c Loading commit data...
SDL_yuv_sw_c.h Loading commit data...
mmx.h Loading commit data...
sdlgenblit.pl Loading commit data...