SDL_SetEventFilter

Name

SDL_SetEventFilter --  イベントキューに入る前にすべてのイベントを処理するフィルターを設定します。

Synopsis

#include "SDL.h"

void SDL_SetEventFilter(SDL_EventFilter filter);

Description

この関数はイベントキューに入る前にすべてのイベントを処理するフィルターを設定します。 これはパワフルで柔軟な機能です。 フィルターは次のようにプロトタイプ宣言されています。

typedef int (*SDL_EventFilter)(const SDL_Event *event);
フィルターが 1 を返すと、 イベントは内部のキューに追加されます。 0 を返すと、 イベントはキューから落とされます。 これにより動的な選択式フィルタリングが可能になります。

SDL_QUITEVENT イベント型を扱う時は警告すべき事があります。 イベントフィルターはウィンドウマネージャが アプリケーションウィンドウを閉じたい時にだけ呼ばれます。 イベントフィルターが 1 を返すと、ウィンドウは閉じられますが、 そうでない場合は、可能であればウィンドウは開き続けます。 終了イベントが割り込みシグナルによって生成されている時は、 内部キューを迂回し、次のイベントポーリングの時にアプリケーションに 渡されます。

Note: SDL_PushEventSDL_PeepEvents によってキューにプッシュされたイベントは、 イベントフィルターに通されません。

Note: 注意! イベントフィルターは別のスレッドで実行されるかも知れないため、 その中で行う処理に注意して下さい。

See Also

SDL_Event, SDL_GetEventFilter, SDL_PushEvent