MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / InitWindow

Method InitWindow

Source/Window.cpp:53–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

51}
52
53bool cWindow::InitWindow( const std::string& pWindowTitle ) {
54
55 if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) != 0) {
56 g_Debugger->Error("Failed to initialise SDL");
57 exit( 1 );
58 return false;
59 }
60
61 ToggleFullscreen();
62
63 mWindow = SDL_CreateWindow(pWindowTitle.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, GetWindowSize().mWidth, GetWindowSize().mHeight, SDL_WINDOW_SHOWN );
64 if (!mWindow) {
65 g_Debugger->Error("Failed to create window");
66 exit( 1 );
67 return false;
68 }
69
70 size_t flags = SDL_RENDERER_ACCELERATED;
71
72 //if (!g_Fodder->mParams->mUnitTesting || g_Fodder->mParams->mDemoRecord)
73 // flags |= SDL_RENDERER_PRESENTVSYNC;
74
75 mRenderer = SDL_CreateRenderer(mWindow, -1, flags );
76 if (!mRenderer) {
77 g_Debugger->Error("Failed to create rendered");
78 exit( 1 );
79 return false;
80 }
81
82 if (g_Fodder->mParams->mIntegerScaling || mWindowMode) {
83 SDL_SetHint( SDL_HINT_RENDER_SCALE_QUALITY, "nearest" );
84 }
85 else {
86 SDL_SetHint( SDL_HINT_RENDER_SCALE_QUALITY, "linear" );
87 }
88
89 SDL_SetHintWithPriority(SDL_HINT_MOUSE_RELATIVE_MODE_WARP, "1", SDL_HINT_OVERRIDE);
90
91 SetCursor();
92
93 if (g_Fodder->mParams->mWindowMode) {
94 ToggleFullscreen();
95 CalculateWindowSize();
96 }
97 else {
98 ToggleFullscreen();
99 ToggleFullscreen();
100 }
101
102 if (!g_Fodder->mParams->mMouseAlternative || (g_Fodder->mParams->mMouseAlternative && g_Fodder->mParams->mMouseLocked))
103 SDL_SetRelativeMouseMode(SDL_TRUE);
104
105 return true;
106}
107
108void cWindow::ToggleVSync(bool pEnabled) {
109 SDL_RenderSetVSync(mRenderer, pEnabled ? 1 : 0);

Callers 1

PrepareMethod · 0.80

Calls 1

ErrorMethod · 0.80

Tested by

no test coverage detected