view docs/man3/SDL_SetEventFilter.3 @ 1543:98f9b16f565c

From: "Alex Volkov" Date: Thu, 10 Nov 2005 21:53:40 -0500 Subject: [SDL] BUG[?]: 32bpp RGBA->RGB colorkey blit, no SDL_SRCALPHA It seems there is either a documentation vs. reality mismatch or a real bug in SDL_blit_N.c:BlitNtoNKey(). The exact blit in question is a 32bpp RGBA->RGB, where RGBA has SDL_COLORKEY and *no* SDL_SRCALPHA flags. The doc in SDL_video.h states: * RGBA->RGB: * SDL_SRCALPHA not set: * copy RGB. * if SDL_SRCCOLORKEY set, only copy the pixels matching the * RGB values of the source colour key, ignoring alpha in the * comparison. BlitNtoNKey(), however, forgets to "ignore alpha in the comparison". The documentation makes perfect sense, so I think it is the code that is faulty. The attached patch corrects the code.
author Sam Lantinga <slouken@libsdl.org>
date Wed, 15 Mar 2006 15:43:15 +0000
parents e5bc29de3f0a
children 546f7c1eb755
line wrap: on
line source

.TH "SDL_SetEventFilter" "3" "Tue 11 Sep 2001, 22:59" "SDL" "SDL API Reference" 
.SH "NAME"
SDL_SetEventFilter\- Sets up a filter to process all events before they are posted to the event queue\&.
.SH "SYNOPSIS"
.PP
\fB#include "SDL\&.h"
.sp
\fBvoid \fBSDL_SetEventFilter\fP\fR(\fBSDL_EventFilter filter\fR);
.SH "DESCRIPTION"
.PP
This function sets up a filter to process all events before they are posted to the event queue\&. This is a very powerful and flexible feature\&. The filter is prototyped as: 
.PP
.nf
\f(CWtypedef int (*SDL_EventFilter)(const SDL_Event *event);\fR
.fi
.PP
 If the filter returns \fB1\fR, then the event will be added to the internal queue\&. If it returns \fB0\fR, then the event will be dropped from the queue\&. This allows selective filtering of dynamically\&.
.PP
There is one caveat when dealing with the \fBSDL_QUITEVENT\fP event type\&. The event filter is only called when the window manager desires to close the application window\&. If the event filter returns 1, then the window will be closed, otherwise the window will remain open if possible\&. If the quit event is generated by an interrupt signal, it will bypass the internal queue and be delivered to the application at the next event poll\&.
.PP
.RS
\fBNote:  
.PP
Events pushed onto the queue with \fI\fBSDL_PushEvent\fP\fR or \fI\fBSDL_PeepEvents\fP\fR do not get passed through the event filter\&.
.RE
.PP
.RS
\fBNote:  
.PP
\fIBe Careful!\fP The event filter function may run in a different thread so be careful what you do within it\&.
.RE
.SH "SEE ALSO"
.PP
\fI\fBSDL_Event\fR\fR, \fI\fBSDL_GetEventFilter\fP\fR, \fI\fBSDL_PushEvent\fP\fR
...\" created by instant / docbook-to-man, Tue 11 Sep 2001, 22:59