MCPcopy Create free account
hub / github.com/diasurgical/DevilutionX / HandleDocking

Function HandleDocking

Source/platform/switch/docking.cpp:22–58  ·  view source on GitHub ↗

* @brief Do a manual window resize when docking/undocking the Switch */

Source from the content-addressed store, hash-verified

20 * @brief Do a manual window resize when docking/undocking the Switch
21 */
22void HandleDocking()
23{
24 static OperationMode currentMode = OperationMode::Uninitialized; // keep track of docked or handheld mode
25
26 OperationMode newMode;
27 switch (appletGetOperationMode()) {
28 case AppletOperationMode_Console:
29 newMode = OperationMode::Docked;
30 break;
31 case AppletOperationMode_Handheld:
32 default:
33 newMode = OperationMode::Handheld;
34 }
35
36 if (currentMode != newMode) {
37 int display_width;
38 int display_height;
39
40 // docked mode has changed, update window size
41 if (newMode == OperationMode::Docked) {
42 display_width = 1920;
43 display_height = 1080;
44 } else {
45 display_width = 1280;
46 display_height = 720;
47 }
48 currentMode = newMode;
49
50 // remove leftover-garbage on screen. Need to perform three clears to ensure all buffers get cleared, otherwise
51 // the display flickers showing a stale frame at certain refresh rates/dock modes.
52 for (auto i = 0; i < 3; i++) {
53 SDL_RenderClear(renderer);
54 SDL_RenderPresent(renderer);
55 }
56 SDL_SetWindowSize(ghMainWnd, display_width, display_height);
57 }
58}
59
60} // namespace devilution

Callers 1

FetchMessage_RealFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected