From 205637ccc31c82e48363a46c635e04f7a8d77e8e Mon Sep 17 00:00:00 2001 From: "j4ck.fr0st" Date: Sat, 19 Mar 2011 12:58:55 +0000 Subject: [PATCH] Hide DX11 on WinXP (fixes Issue 3719) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7379 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Common/Src/VideoBackendBase.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/Source/Core/Common/Src/VideoBackendBase.cpp b/Source/Core/Common/Src/VideoBackendBase.cpp index 5126ccca07..1fbe0f4a41 100644 --- a/Source/Core/Common/Src/VideoBackendBase.cpp +++ b/Source/Core/Common/Src/VideoBackendBase.cpp @@ -28,12 +28,29 @@ std::vector g_available_video_backends; VideoBackend* g_video_backend = NULL; +#ifdef _WIN32 +// http://msdn.microsoft.com/en-us/library/ms725491.aspx +static bool IsGteVista() +{ + OSVERSIONINFOEX osvi; + DWORDLONG dwlConditionMask = 0; + + ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); + osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); + osvi.dwMajorVersion = 6; + + VER_SET_CONDITION(dwlConditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL); + + return VerifyVersionInfo(&osvi, VER_MAJORVERSION, dwlConditionMask); +} +#endif + void VideoBackend::PopulateList() { #ifdef _WIN32 g_available_video_backends.push_back(new DX9::VideoBackend); - // TODO: if (winver >= VISTA) :p - g_available_video_backends.push_back(new DX11::VideoBackend); + if (IsGteVista()) + g_available_video_backends.push_back(new DX11::VideoBackend); #endif g_available_video_backends.push_back(new OGL::VideoBackend); g_available_video_backends.push_back(new SW::VideoSoftware);