MCPcopy Create free account
hub / github.com/IppClub/Dora-SSR / handleSDLEvent

Method handleSDLEvent

Source/Basic/Director.cpp:579–669  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

577}
578
579void Director::handleSDLEvent(const SDL_Event& event) {
580 switch (event.type) {
581 // User-requested quit
582 case SDL_QUIT:
583 _stoped = true;
584 Event::send("AppEvent"_slice, "Quit"s);
585 cleanup();
586 if (Singleton<HttpServer>::isInitialized()) {
587 SharedHttpServer.stop();
588 }
589 if (Singleton<HttpClient>::isInitialized()) {
590 SharedHttpClient.stop();
591 }
592 if (Singleton<AsyncThread>::isInitialized()) {
593 SharedAsyncThread.cancel();
594 }
595 if (Singleton<WasmRuntime>::isInitialized()) {
596 SharedWasmRuntime.clear();
597 }
598 break;
599 // The application is being terminated by the OS.
600 case SDL_APP_TERMINATING:
601 Event::send("AppEvent"_slice, "Quit"s);
602 break;
603 // The application is low on memory, free memory if possible.
604 case SDL_APP_LOWMEMORY:
605 Event::send("AppEvent"_slice, "LowMemory"s);
606 break;
607 // The application is about to enter the background.
608 case SDL_APP_WILLENTERBACKGROUND:
609 _paused = true;
610 Event::send("AppEvent"_slice, "WillEnterBackground"s);
611 break;
612 case SDL_APP_DIDENTERBACKGROUND:
613 bgfx::reset(0, 0);
614 Event::send("AppEvent"_slice, "DidEnterBackground"s);
615 break;
616 case SDL_APP_WILLENTERFOREGROUND:
617 Event::send("AppEvent"_slice, "WillEnterForeground"s);
618 break;
619 case SDL_APP_DIDENTERFOREGROUND:
620 _paused = false;
621 SharedView.reset();
622 Event::send("AppEvent"_slice, "DidEnterForeground"s);
623 Event::send("AppChange"_slice, "Size"s);
624 break;
625 case SDL_WINDOWEVENT: {
626 switch (event.window.event) {
627 case SDL_WINDOWEVENT_HIDDEN:
628 _paused = true;
629 break;
630 case SDL_WINDOWEVENT_SHOWN:
631 _paused = false;
632 break;
633 case SDL_WINDOWEVENT_RESIZED:
634 case SDL_WINDOWEVENT_SIZE_CHANGED:
635 SharedView.reset();
636 Event::send("AppChange"_slice, "Size"s);

Callers 1

mainLogicMethod · 0.80

Calls 8

cleanupFunction · 0.85
stopMethod · 0.65
cancelMethod · 0.65
clearMethod · 0.65
addMethod · 0.65
resetFunction · 0.50
resetMethod · 0.45
handleEventMethod · 0.45

Tested by

no test coverage detected