From f8305e8e4783e9bba6b5fd79c84effd848d1e2df Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Fri, 17 Feb 2017 16:02:06 +0100 Subject: [PATCH] Windows: Add main menu item for Direct3D11 --- Windows/MainWindowMenu.cpp | 23 +++++++++++++++++++++++ Windows/ppsspp.rc | 1 + Windows/resource.h | 3 ++- ext/native/thin3d/thin3d_d3d11.cpp | 4 ++-- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/Windows/MainWindowMenu.cpp b/Windows/MainWindowMenu.cpp index c91430461b..121d25e781 100644 --- a/Windows/MainWindowMenu.cpp +++ b/Windows/MainWindowMenu.cpp @@ -297,6 +297,7 @@ namespace MainWindow { TranslateSubMenu(menu, "Window Size", MENU_OPTIONS, SUBMENU_WINDOW_SIZE); // Skip window size 1x-4x.. TranslateSubMenu(menu, "Backend", MENU_OPTIONS, SUBMENU_RENDERING_BACKEND); + TranslateMenuItem(menu, ID_OPTIONS_DIRECT3D11); TranslateMenuItem(menu, ID_OPTIONS_DIRECT3D9); TranslateMenuItem(menu, ID_OPTIONS_OPENGL); TranslateSubMenu(menu, "Rendering Mode", MENU_OPTIONS, SUBMENU_RENDERING_MODE); @@ -716,6 +717,12 @@ namespace MainWindow { PostMessage(MainWindow::GetHWND(), WM_CLOSE, 0, 0); break; + case ID_OPTIONS_DIRECT3D11: + g_Config.iGPUBackend = GPU_BACKEND_DIRECT3D11; + g_Config.bRestartRequired = true; + PostMessage(MainWindow::GetHWND(), WM_CLOSE, 0, 0); + break; + case ID_OPTIONS_OPENGL: g_Config.iGPUBackend = GPU_BACKEND_OPENGL; g_Config.bRestartRequired = true; @@ -1195,28 +1202,44 @@ namespace MainWindow { switch (g_Config.iGPUBackend) { case GPU_BACKEND_DIRECT3D9: EnableMenuItem(menu, ID_OPTIONS_DIRECT3D9, MF_GRAYED); + EnableMenuItem(menu, ID_OPTIONS_DIRECT3D11, MF_ENABLED); EnableMenuItem(menu, ID_OPTIONS_OPENGL, MF_ENABLED); EnableMenuItem(menu, ID_OPTIONS_VULKAN, MF_ENABLED); CheckMenuItem(menu, ID_OPTIONS_DIRECT3D9, MF_CHECKED); + CheckMenuItem(menu, ID_OPTIONS_DIRECT3D11, MF_UNCHECKED); CheckMenuItem(menu, ID_OPTIONS_OPENGL, MF_UNCHECKED); CheckMenuItem(menu, ID_OPTIONS_VULKAN, MF_UNCHECKED); break; case GPU_BACKEND_OPENGL: EnableMenuItem(menu, ID_OPTIONS_DIRECT3D9, MF_ENABLED); + EnableMenuItem(menu, ID_OPTIONS_DIRECT3D11, MF_ENABLED); EnableMenuItem(menu, ID_OPTIONS_OPENGL, MF_GRAYED); EnableMenuItem(menu, ID_OPTIONS_VULKAN, MF_ENABLED); CheckMenuItem(menu, ID_OPTIONS_DIRECT3D9, MF_UNCHECKED); + CheckMenuItem(menu, ID_OPTIONS_DIRECT3D11, MF_UNCHECKED); CheckMenuItem(menu, ID_OPTIONS_OPENGL, MF_CHECKED); CheckMenuItem(menu, ID_OPTIONS_VULKAN, MF_UNCHECKED); break; case GPU_BACKEND_VULKAN: EnableMenuItem(menu, ID_OPTIONS_DIRECT3D9, MF_ENABLED); + EnableMenuItem(menu, ID_OPTIONS_DIRECT3D11, MF_ENABLED); EnableMenuItem(menu, ID_OPTIONS_OPENGL, MF_ENABLED); EnableMenuItem(menu, ID_OPTIONS_VULKAN, MF_GRAYED); CheckMenuItem(menu, ID_OPTIONS_DIRECT3D9, MF_UNCHECKED); + CheckMenuItem(menu, ID_OPTIONS_DIRECT3D11, MF_UNCHECKED); CheckMenuItem(menu, ID_OPTIONS_OPENGL, MF_UNCHECKED); CheckMenuItem(menu, ID_OPTIONS_VULKAN, MF_CHECKED); break; + case GPU_BACKEND_DIRECT3D11: + EnableMenuItem(menu, ID_OPTIONS_DIRECT3D9, MF_ENABLED); + EnableMenuItem(menu, ID_OPTIONS_DIRECT3D11, MF_GRAYED); + EnableMenuItem(menu, ID_OPTIONS_OPENGL, MF_ENABLED); + EnableMenuItem(menu, ID_OPTIONS_VULKAN, MF_ENABLED); + CheckMenuItem(menu, ID_OPTIONS_DIRECT3D9, MF_UNCHECKED); + CheckMenuItem(menu, ID_OPTIONS_DIRECT3D11, MF_CHECKED); + CheckMenuItem(menu, ID_OPTIONS_OPENGL, MF_UNCHECKED); + CheckMenuItem(menu, ID_OPTIONS_VULKAN, MF_UNCHECKED); + break; } UpdateDynamicMenuCheckmarks(menu); diff --git a/Windows/ppsspp.rc b/Windows/ppsspp.rc index d99cadf2c8..530fbab675 100644 --- a/Windows/ppsspp.rc +++ b/Windows/ppsspp.rc @@ -491,6 +491,7 @@ BEGIN POPUP "Backend" BEGIN MENUITEM "Direct3D9" ID_OPTIONS_DIRECT3D9 + MENUITEM "Direct3D11" ID_OPTIONS_DIRECT3D11 MENUITEM "OpenGL" ID_OPTIONS_OPENGL MENUITEM "Vulkan" ID_OPTIONS_VULKAN END diff --git a/Windows/resource.h b/Windows/resource.h index 62469dd081..b0c0dcd160 100644 --- a/Windows/resource.h +++ b/Windows/resource.h @@ -318,6 +318,7 @@ #define ID_OPTIONS_BUFLINEARFILTER 40152 #define ID_OPTIONS_BUFNEARESTFILTER 40153 #define ID_OPTIONS_DIRECT3D9 40154 +#define ID_OPTIONS_DIRECT3D11 40169 #define ID_OPTIONS_OPENGL 40155 #define ID_EMULATION_ROTATION_H 40156 #define ID_EMULATION_ROTATION_V 40157 @@ -344,7 +345,7 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 256 -#define _APS_NEXT_COMMAND_VALUE 40165 +#define _APS_NEXT_COMMAND_VALUE 40170 #define _APS_NEXT_CONTROL_VALUE 1200 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/ext/native/thin3d/thin3d_d3d11.cpp b/ext/native/thin3d/thin3d_d3d11.cpp index f725b66b0f..b4c7f83e63 100644 --- a/ext/native/thin3d/thin3d_d3d11.cpp +++ b/ext/native/thin3d/thin3d_d3d11.cpp @@ -84,11 +84,11 @@ public: std::string GetInfoString(InfoField info) const override { switch (info) { - case APIVERSION: return "DirectX 11.0"; + case APIVERSION: return "Direct3D 11.0"; case VENDORSTRING: return "N/A"; case VENDOR: return "-"; case RENDERER: return adapterDesc_; - case SHADELANGVERSION: return "N/A"; + case SHADELANGVERSION: return "HLSL 5"; case APINAME: return "Direct3D 11"; default: return "?"; }