MCPcopy Create free account
hub / github.com/chrxh/alien / init

Method init

source/Gui/WindowController.cpp:49–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47}
48
49void WindowController::init()
50{
51 auto& settings = GlobalSettings::get();
52 _mode = settings.getValue("settings.display.mode", DesktopMode);
53 _sizeInWindowedMode.x = std::max(100, settings.getValue("settings.display.window width", _sizeInWindowedMode.x));
54 _sizeInWindowedMode.y = std::max(100, settings.getValue("settings.display.window height", _sizeInWindowedMode.y));
55 _fps = settings.getValue("settings.display.fps", _fps);
56 _lastContentScaleFactor = settings.getValue("settings.display.content scale factor", _lastContentScaleFactor);
57
58 GLFWmonitor* primaryMonitor = glfwGetPrimaryMonitor();
59 _windowData.mode = glfwGetVideoMode(primaryMonitor);
60
61 _desktopVideoMode = std::make_shared<GLFWvidmode>();
62 *_desktopVideoMode = *_windowData.mode;
63
64 _windowData.window = [&] {
65 if (isWindowedMode()) {
66 log(Priority::Important, "set windowed mode");
67 _startupSize = _sizeInWindowedMode;
68 return glfwCreateWindow(_sizeInWindowedMode.x, _sizeInWindowedMode.y, "alien", nullptr, nullptr);
69 } else {
70 log(Priority::Important, "set full screen mode");
71 _startupSize = {_windowData.mode->width, _windowData.mode->height};
72 return glfwCreateWindow(_windowData.mode->width, _windowData.mode->height, "alien", primaryMonitor, nullptr);
73 }
74 }();
75
76 if (_windowData.window == nullptr) {
77 throw std::runtime_error("Failed to create window.");
78 }
79 glfwMakeContextCurrent(_windowData.window);
80
81 if (!isWindowedMode() && !isDesktopMode()) {
82 auto userMode = getUserDefinedResolution();
83 _startupSize = {userMode.width, userMode.height};
84 log(Priority::Important, "switching to " + createLogString(userMode));
85 glfwSetWindowMonitor(_windowData.window, primaryMonitor, 0, 0, userMode.width, userMode.height, userMode.refreshRate);
86 }
87
88 float temp;
89 glfwGetMonitorContentScale(glfwGetPrimaryMonitor(), &_contentScaleFactor, &temp); //consider only horizontal content scale
90}
91
92void WindowController::shutdown()
93{

Callers

nothing calls this directly

Calls 2

logFunction · 0.85
getValueMethod · 0.80

Tested by

no test coverage detected