README.txt
author Sam Lantinga <slouken@libsdl.org>
Wed, 30 Nov 2016 22:06:05 -0800
changeset 10668 1889c850fafc
parent 9507 b1e690e9c5b3
child 10890 a2ec89f77e6b
permissions -rw-r--r--
Fixed bug 3340 - SDL_BlitScaled causes access violation in some cases.

Simon Hug

The SDL_BlitScaled function runs into an access violation for specific blit coordinates and surface sizes. The attached testcase blits a 800x600 surface to a 1280x720 surface at the coordinates -640,-345 scaled to 1280x720. The blit function that moves the data then runs over and reads after the pixel data from the src surface causing an access violation.

I can't say where exactly it goes wrong, but I think it could have something to do with the rounding in SDL_UpperBlitScaled. final_src.y is 288 and final_src.h is 313. Together that's 601, which I believe is one too much, but I just don't know the code enough to make sure that's the problem.

Sylvain

I think this patch fix the issue, but maybe it's worth re-writing "SDL_UpperBlitScaled" using SDL_FRect.
slouken@9025
     1
slouken@9025
     2
                         Simple DirectMedia Layer
slouken@9025
     3
slouken@9025
     4
                                  (SDL)
slouken@9025
     5
slouken@9025
     6
                                Version 2.0
slouken@9025
     7
slouken@9025
     8
---
slouken@9025
     9
http://www.libsdl.org/
slouken@9025
    10
slouken@9025
    11
Simple DirectMedia Layer is a cross-platform development library designed
slouken@9025
    12
to provide low level access to audio, keyboard, mouse, joystick, and graphics
slouken@9025
    13
hardware via OpenGL and Direct3D. It is used by video playback software,
slouken@9025
    14
emulators, and popular games including Valve's award winning catalog
slouken@9025
    15
and many Humble Bundle games.
slouken@9025
    16
slouken@9025
    17
More extensive documentation is available in the docs directory, starting
slouken@9025
    18
with README.md
slouken@9025
    19
slouken@9025
    20
Enjoy!
slouken@9025
    21
	Sam Lantinga				(slouken@libsdl.org)