Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie ![]() Materiały dla uczniów liceum |
©2021 mgr Jerzy Wałaszek
|
|
Autor artykułu: mgr Jerzy Wałaszek |
SDL2Interfejs SDL2:SDL_EventType |
|
|
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2. Oryginał znajdziesz pod tym adresem: https://wiki.libsdl.org/CategoryAPI.
SDL_EventType |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enumeracja typów zdarzeń, które mogą być dostarczane do aplikacji SDL.
Wartości
Przykładowy kod
UwagiSDL_QUITZdarzenia SDL_QUIT są generowane z różnych powodów. Przykładowo aplikacja może zignorować to zdarzenie, jeśli chce wyświetlić okienko proszące użytkownika, aby najpierw zachował na dysku efekty swojej pracy. Zdarzenie SDL_QUIT jest generowane, gdy użytkownik zamknie ostatnie istniejące okno. Dzieje się to dodatkowo ze zdarzeniem SDL_WINDOWEVENT/SDL_WINDOWEVENT_CLOSE, więc aplikacja może sobie sprawdzić, czy jedno z nich jest odpowiednie, czy oba, czy żadne. Jeśli aplikacja zignoruje to zdarzenie i utworzy następne okno, SDL_QUIT zostanie wysłane ponownie następnym razem, gdy użytkownik zamknie ostatnie okno. SDL_QUIT nie ogranicza się do zamykania okna. W systemie Mac OS X naciśnięcie kombinacji klawiszy Command-Q (standardowy skrót klawiaturowy dla "Quit this application" – "Zamknij tę aplikację") wymusi na SDL generację zdarzenia SDL_QUIT bez względu na to, czy posiada ona w tym czasie jakiekolwiek okna. Jednakże aplikacja wciąż jest odpowiedzialna za właściwe zakończenie się. Aplikacje ignorujące klawisze Command-Q nie otrzymają certyfikatu Mac App Store. W systemach POSIX SDL_Init() instaluje sterowniki sygnałów dla SIGINT (przerwanie klawiaturowe) i SIGTERM (systemowe żądanie zakończenia się), jeśli takie sterowniki już nie istnieją, a one wygenerują również przerwania SDL_QUIT. Nie ma sposobu określenia przyczyny przertwania SDL_QUIT, lecz utworzenie sterownika sygnałów w twojej aplikacji przechwyci standardową generację zdarzeń zamykających dla tego sygnału. Zdarzenia dla systemów Android, iOS i WinRTTo, co obecnie nazywamy "zdarzeniami dla systemów Android, iOS i WinRT" są to zdarzenia specyficzne dla urządzeń mobilnych i osadzonych, które posiadają inne wymagania, niż twoje zwykłe aplikacje pulpitowe. Zdarzenia te muszą być obsługiwane w pewnego rodzaju filtrze zdarzeń, ponieważ zwykle dany system operacyjny potrzebuje natychmiastowej odpowiedzi i zamknie twój proces wkrótce po wysłaniu takiego zdarzenia, a jeśli pozostanie ono w kolejce zdarzeń SDL, to będzie już za późno. Wszostko inne możesz obsługiwać przez normalną pętlę SDL_PollEvent() loop, lecz dla tych specyficznych zdarzeń powinieneś stworzyć funkcję wywoływaną zwrotnie za pomocą SDL_SetEventFilter(). Oto jak te zdarzenia są odwzorowywane w docelowym systemie operacyjnym:
Powiązane strukturySDL_JoyAxisEvent
SDL_JoyBallEvent SDL_JoyButtonEvent SDL_JoyHatEvent SDL_JoyDeviceEvent SDL_ControllerAxisEvent SDL_ControllerButtonEvent SDL_ControllerDeviceEvent SDL_KeyboardEvent SDL_MouseButtonEvent SDL_MouseMotionEvent SDL_MouseWheelEvent SDL_QuitEvent SDL_SysWMEvent SDL_TextEditingEvent SDL_TextInputEvent SDL_UserEvent SDL_WindowEvent SDL_DropEvent SDL_AudioDeviceEvent SDL_TouchFingerEvent SDL_DollarGestureEvent SDL_MultiGestureEvent Powiązane funkcje |
![]() |
Zespół Przedmiotowy |
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.