INSTALL.txt
author Sam Lantinga <slouken@libsdl.org>
Wed, 30 Nov 2016 22:06:05 -0800
changeset 10668 1889c850fafc
parent 9025 d09d4b578e77
child 10893 54480745c410
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@7222
     1
slouken@7222
     2
To compile and install SDL:
slouken@7222
     3
slouken@7227
     4
    1.  Windows with Visual Studio:
slouken@7227
     5
        * Read VisualC.html
slouken@7222
     6
slouken@7227
     7
        Windows with gcc, either native or cross-compiling:
slouken@7227
     8
        * Read the FAQ at http://wiki.libsdl.org/moin.fcg/FAQWindows
slouken@7227
     9
        * Run './configure; make; make install'
slouken@7222
    10
slouken@7227
    11
        Mac OS X with Xcode:
slouken@9025
    12
        * Read docs/README-macosx.md
slouken@7222
    13
slouken@7227
    14
        Mac OS X from the command line:
slouken@7227
    15
        * Run './configure; make; make install'
slouken@7227
    16
slouken@7227
    17
        Linux and other UNIX systems:
slouken@7227
    18
        * Run './configure; make; make install'
slouken@7227
    19
slouken@7227
    20
        Android:
slouken@9025
    21
        * Read docs/README-android.md
slouken@7227
    22
slouken@7227
    23
        iOS:
slouken@9025
    24
        * Read docs/README-ios.md
slouken@7227
    25
slouken@7227
    26
        Using Cmake:
slouken@9025
    27
        * Read docs/README-cmake.md
slouken@7222
    28
slouken@7222
    29
    2.  Look at the example programs in ./test, and check out the online
slouken@7222
    30
        documentation at http://wiki.libsdl.org/
slouken@7222
    31
slouken@7222
    32
    3.  Join the SDL developer mailing list by sending E-mail to
slouken@7222
    33
    	sdl-request@libsdl.org
slouken@7222
    34
        and put "subscribe" in the subject of the message.
slouken@7222
    35
slouken@7222
    36
        Or alternatively you can use the web interface:
slouken@7222
    37
            http://www.libsdl.org/mailing-list.php
slouken@7222
    38
slouken@7222
    39
That's it!
slouken@7222
    40
Sam Lantinga <slouken@libsdl.org>