MCPcopy Create free account
hub / github.com/Redot-Engine/redot-engine / DisplayServerWindows

Method DisplayServerWindows

platform/windows/display_server_windows.cpp:6788–7294  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6786}
6787
6788DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) {
6789 KeyMappingWindows::initialize();
6790
6791 tested_drivers.clear();
6792
6793 drop_events = false;
6794 key_event_pos = 0;
6795
6796 hInstance = static_cast<OS_Windows *>(OS::get_singleton())->get_hinstance();
6797
6798 pressrc = 0;
6799 old_invalid = true;
6800 mouse_mode = MOUSE_MODE_VISIBLE;
6801
6802 rendering_driver = p_rendering_driver;
6803
6804 // Init TTS
6805 bool tts_enabled = GLOBAL_GET("audio/general/text_to_speech");
6806 if (tts_enabled) {
6807 initialize_tts();
6808 }
6809 native_menu = memnew(NativeMenuWindows);
6810
6811#ifdef ACCESSKIT_ENABLED
6812 if (accessibility_get_mode() != DisplayServer::AccessibilityMode::ACCESSIBILITY_DISABLED) {
6813 accessibility_driver = memnew(AccessibilityDriverAccessKit);
6814 if (accessibility_driver->init() != OK) {
6815 if (OS::get_singleton()->is_stdout_verbose()) {
6816 ERR_PRINT("Can't create an accessibility driver, accessibility support disabled!");
6817 }
6818 memdelete(accessibility_driver);
6819 accessibility_driver = nullptr;
6820 }
6821 }
6822#endif
6823
6824 // Enforce default keep screen on value.
6825 screen_set_keep_on(GLOBAL_GET("display/window/energy_saving/keep_screen_on"));
6826
6827 // Load Windows version info.
6828 ZeroMemory(&os_ver, sizeof(OSVERSIONINFOW));
6829 os_ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW);
6830
6831 HMODULE nt_lib = LoadLibraryW(L"ntdll.dll");
6832 if (nt_lib) {
6833 WineGetVersionPtr wine_get_version = (WineGetVersionPtr)(void *)GetProcAddress(nt_lib, "wine_get_version"); // Do not read Windows build number under Wine, it can be set to arbitrary value.
6834 if (!wine_get_version) {
6835 RtlGetVersionPtr RtlGetVersion = (RtlGetVersionPtr)(void *)GetProcAddress(nt_lib, "RtlGetVersion");
6836 if (RtlGetVersion) {
6837 RtlGetVersion(&os_ver);
6838 }
6839 }
6840 FreeLibrary(nt_lib);
6841 }
6842
6843 // Load UXTheme.
6844 if (os_ver.dwBuildNumber >= 10240) { // Not available on Wine, use only if real Windows 10/11 detected.
6845 HMODULE ux_theme_lib = LoadLibraryW(L"uxtheme.dll");

Callers

nothing calls this directly

Calls 15

initializeFunction · 0.85
memdeleteFunction · 0.85
vformatFunction · 0.85
detect_wglFunction · 0.85
_get_device_idsFunction · 0.85
WindowFlagsEnum · 0.85
get_hinstanceMethod · 0.80
path_joinMethod · 0.80
strip_edgesMethod · 0.80
to_lowerMethod · 0.80
get_node_dataMethod · 0.80

Tested by

no test coverage detected