Software nearest scaling: start at the middle of pixel
so that it matches opengl GL_NEAREST mode most of the timemain
parent
ac8a3fda8f
commit
ab0cf42a4b
|
@ -49,15 +49,15 @@ SDL_Blit_Slow(SDL_BlitInfo * info)
|
|||
Uint32 rgbmask = ~src_fmt->Amask;
|
||||
Uint32 ckey = info->colorkey & rgbmask;
|
||||
|
||||
posy = 0;
|
||||
incy = (info->src_h << 16) / info->dst_h;
|
||||
incx = (info->src_w << 16) / info->dst_w;
|
||||
posy = incy / 2; /* start at the middle of pixel */
|
||||
|
||||
while (info->dst_h--) {
|
||||
Uint8 *src = 0;
|
||||
Uint8 *dst = info->dst;
|
||||
int n = info->dst_w;
|
||||
posx = 0;
|
||||
posx = incx / 2; /* start at the middle of pixel */
|
||||
srcy = posy >> 16;
|
||||
while (n--) {
|
||||
srcx = posx >> 16;
|
||||
|
|
|
@ -857,13 +857,13 @@ SDL_LowerSoftStretchLinear(SDL_Surface *s, const SDL_Rect *srcrect,
|
|||
incy = (src_h << 16) / dst_h; \
|
||||
incx = (src_w << 16) / dst_w; \
|
||||
dst_gap = dst_pitch - bpp * dst_w; \
|
||||
posy = 0; \
|
||||
posy = incy / 2; \
|
||||
|
||||
#define SDL_SCALE_NEAREST__HEIGHT \
|
||||
srcy = (posy >> 16); \
|
||||
src_h0 = (const Uint32 *)((const Uint8 *)src_ptr + srcy * src_pitch); \
|
||||
posy += incy; \
|
||||
posx = 0; \
|
||||
posx = incx / 2; \
|
||||
n = dst_w;
|
||||
|
||||
|
||||
|
|
|
@ -458,15 +458,15 @@ __EOF__
|
|||
|
||||
print FILE <<__EOF__;
|
||||
|
||||
posy = 0;
|
||||
incy = (info->src_h << 16) / info->dst_h;
|
||||
incx = (info->src_w << 16) / info->dst_w;
|
||||
posy = incy / 2;
|
||||
|
||||
while (info->dst_h--) {
|
||||
$format_type{$src} *src = 0;
|
||||
$format_type{$dst} *dst = ($format_type{$dst} *)info->dst;
|
||||
int n = info->dst_w;
|
||||
posx = 0;
|
||||
posx = incx / 2;
|
||||
|
||||
srcy = posy >> 16;
|
||||
while (n--) {
|
||||
|
|
Loading…
Reference in New Issue