view docs/man3/SDL_DisplayFormat.3 @ 688:c0522010bb6d

Date: Tue, 12 Aug 2003 14:26:19 +0200 (MEST) From: "Mattias Engdeg?rd" Subject: bug in SDL_GetRGB/GetRGBA There's an embarrassing bug in GetRGB/GetRGBA which apparently has been there for years. It incorrectly converts colours with < 8 bits/channel. It came to my attention today in #sdl. What it does now is (for each channel): rv = (pixel & fmt->Rmask) >> fmt->Rshift; *r = (rv << fmt->Rloss) + (rv >> (8 - fmt->Rloss)); which is wrong; the last line should be *r = (rv << fmt->Rloss) + (rv >> (8 - (fmt->Rloss << 1)));
author Sam Lantinga <slouken@libsdl.org>
date Tue, 12 Aug 2003 15:17:20 +0000
parents e5bc29de3f0a
children 546f7c1eb755
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