Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

Do strony głównej I LO w Tarnowie

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

©2021 mgr Jerzy Wałaszek
I LO w Tarnowie

logo

Autor artykułu: mgr Jerzy Wałaszek

 

SDL2

Interfejs SDL2:

SDL_SetEventFilter

Rozdziały:
     Interfejs SDL2 wg nazw
     Interfejs SDL2 wg kategorii

 

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2. Oryginał znajdziesz pod tym adresem: https://wiki.libsdl.org/CategoryAPI.

SDL_SetEventFilter

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ń.

Składnia

void SDL_SetEventFilter(SDL_EventFilter filter,
                        void*           userdata)

Parametry funkcji

filter funkcja do wywołania, gdy wystąpi jakieś zdarzenie; zobacz do Uwag.
userdata wskaźnik, który zostanie przekazany do tej funkcji.

Uwagi

Prototyp funkcji filter jest następujący:
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.

Powiązane funkcje

 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2021 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: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.