view docs/man3/SDL_DisplayFormat.3 @ 3333:b334b4f7dfa0

[SDL] Bad math in SDL_RenderCopy 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;
author Sam Lantinga <slouken@libsdl.org>
date Sat, 03 Oct 2009 16:23:16 +0000
parents 546f7c1eb755
children 1238da4a7112
line wrap: on
line source

.TH "SDL_DisplayFormat" "3" "Tue 11 Sep 2001, 23:01" "SDL" "SDL API Reference" 
.SH "NAME"
SDL_DisplayFormat \- Convert a surface to the display format
.SH "SYNOPSIS"
.PP
\fB#include "SDL\&.h"
.sp
\fBSDL_Surface *\fBSDL_DisplayFormat\fP\fR(\fBSDL_Surface *surface\fR);
.SH "DESCRIPTION"
.PP
This function takes a surface and copies it to a new surface of the pixel format and colors of the video framebuffer, suitable for fast blitting onto the display surface\&. It calls \fISDL_ConvertSurface\fR
.PP
If you want to take advantage of hardware colorkey or alpha blit acceleration, you should set the colorkey and alpha value before calling this function\&.
.PP
If you want an alpha channel, see \fISDL_DisplayFormatAlpha\fR\&.
.SH "RETURN VALUE"
.PP
If the conversion fails or runs out of memory, it returns \fBNULL\fR
.SH "SEE ALSO"
.PP
\fI\fBSDL_ConvertSurface\fP\fR, \fI\fBSDL_DisplayFormatAlpha\fP\fR \fI\fBSDL_SetAlpha\fP\fR, \fI\fBSDL_SetColorKey\fP\fR, \fI\fBSDL_Surface\fR\fR
...\" created by instant / docbook-to-man, Tue 11 Sep 2001, 23:01