|
Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
SDL_SetEventFilter
| SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Użyj tej funkcji, aby ustawić filtr do przetwarzania wszystkich wiadomości zanim zmienią stan wewnętrzny i zanim zostaną wysłane do wewnętrznej kolejki zdarzeń.
void SDL_SetEventFilter(SDL_EventFilter filter,
void* userdata)
|
| filter | funkcja do wywołania, gdy wystąpi jakieś zdarzenie; zobacz do Uwag. |
| userdata | wskaźnik, który zostanie przekazany do tej funkcji. |
int YourEventFilter(void* userdata,
SDL_Event* event)
|
gdzie YourEventFilter jest nazwą twojej funkcji, a jej parametrami są:
| userdata | to, co było przekazane jako userdata do SDL_AddEventWatch(). |
| event | zdarzenie, które uruchomiło wywołanie tej funkcji. |
Jeśli filtr zwróci 1, to zdarzenie zostanie dodane do wewnętrznej kolejki. Jeśli zwróci 0, to zdarzenie zostanie wyrzucone z tej kolejki, lecz stan wewnętrzny wciąż będzie uaktualniany. Pozwala to na selektywne filtrowanie dynamicznie pojawiających się zdarzeń.
OSTRZEŻENIE: Uważaj, co robisz w funkcji filtru zdarzeń, ponieważ może być ona uruchamiana w innym wątku!
Jeśli zdarzenie jest generowane przez sygnał przerwania (np. Ctrl-C), zostanie dostarczone do aplikacji przy następnym zbieraniu zdarzeń.
Uwaga: Zdarzenia wyłaczone nigdy nie docierają do funkcji filtrującej, zobacz na SDL_EventState().
Uwaga: Jeśli chcesz tylko przeglądnąć zdarzenia bez filtrowania, powinieneś użyć funkcji SDL_AddEventWatch().
Uwaga: Zdarzenia wstawione do kolejki za pomocą SDL_PushEvent() przechodzą przez funkcję filtrujacą, lecz zdarzenia wstawione do kolejki za pomocą SDL_PeepEvents() nie robią tego.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.