[PATCH] programs/winecfg: enable CSMT checkbox on Graphics tab

Donat Enikeev donat at enikeev.net
Mon Apr 24 16:01:06 CDT 2017


Signed-off-by: Donat Enikeev <donat at enikeev.net>
---
 programs/winecfg/resource.h  |  2 ++
 programs/winecfg/winecfg.rc  |  7 +++++--
 programs/winecfg/x11drvdlg.c | 18 ++++++++++++++++++
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h
index 0c0b038..55d13d0 100644
--- a/programs/winecfg/resource.h
+++ b/programs/winecfg/resource.h
@@ -131,6 +131,8 @@
 #define IDC_RES_DPIEDIT                 1108
 #define IDC_RES_FONT_PREVIEW            1109
 
+#define IDC_ENABLE_CSMT                 1110
+
 /* applications tab */
 #define IDC_APP_LISTVIEW                1200
 #define IDC_APP_ADDAPP                  1201
diff --git a/programs/winecfg/winecfg.rc b/programs/winecfg/winecfg.rc
index 72c3e1b..52d70e0 100644
--- a/programs/winecfg/winecfg.rc
+++ b/programs/winecfg/winecfg.rc
@@ -158,7 +158,7 @@ BEGIN
     PUSHBUTTON	    "Add appli&cation...",IDC_APP_ADDAPP, 15,174,112,14
     PUSHBUTTON	    "&Remove application",IDC_APP_REMOVEAPP, 133,174,112,14
     LTEXT           "&Windows Version:",IDC_STATIC,17,196,80,8
-    COMBOBOX        IDC_WINVER,100,194,145,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP    
+    COMBOBOX        IDC_WINVER,100,194,145,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_GRAPHCFG DIALOG  0, 0, 260, 220
@@ -181,6 +181,9 @@ BEGIN
     EDITTEXT    IDC_RES_DPIEDIT,188,105,23,13,ES_NUMBER|WS_TABSTOP
     LTEXT       "#msgctxt#unit: dots/inch#dpi",IDC_STATIC,215,107,30,8
     LTEXT       "This is a sample text using 10 point Tahoma",IDC_RES_FONT_PREVIEW,15,124,230,49
+
+    GROUPBOX    "CSMT",IDC_STATIC,8,186,244,32
+    CONTROL     "Enable multi-threaded command stream in Direct3D",IDC_ENABLE_CSMT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,202,230,8
 END
 
 IDD_DLLCFG DIALOG  0, 0, 260, 220
@@ -196,7 +199,7 @@ BEGIN
     LTEXT           "Existing &overrides:",IDC_STATIC,16,86,100,8
     LISTBOX         IDC_DLLS_LIST,16,96,140,112,WS_BORDER | WS_TABSTOP | WS_VSCROLL
     PUSHBUTTON      "&Edit...",IDC_DLLS_EDITDLL,164,96,82,14
-    PUSHBUTTON      "&Remove",IDC_DLLS_REMOVEDLL,164,114,82,14 
+    PUSHBUTTON      "&Remove",IDC_DLLS_REMOVEDLL,164,114,82,14
 END
 
 IDD_LOADORDER DIALOG 80, 90, 160, 92
diff --git a/programs/winecfg/x11drvdlg.c b/programs/winecfg/x11drvdlg.c
index 9a14fb6..9cc3781 100644
--- a/programs/winecfg/x11drvdlg.c
+++ b/programs/winecfg/x11drvdlg.c
@@ -142,6 +142,13 @@ static void init_dialog(HWND dialog)
 	CheckDlgButton(dialog, IDC_ENABLE_DECORATED, BST_UNCHECKED);
     HeapFree(GetProcessHeap(), 0, buf);
 
+    buf = get_reg_key(config_key, keypath("Direct3D"), "csmt", NULL);
+    if (buf && *buf==1)
+    CheckDlgButton(dialog, IDC_ENABLE_CSMT, BST_CHECKED);
+    else
+    CheckDlgButton(dialog, IDC_ENABLE_CSMT, BST_UNCHECKED);
+    HeapFree(GetProcessHeap(), 0, buf);
+
     updating_ui = FALSE;
 }
 
@@ -215,6 +222,16 @@ static void on_enable_managed_clicked(HWND dialog) {
     }
 }
 
+static void on_enable_csmt_clicked(HWND dialog) {
+    WINE_TRACE("\n");
+
+    if (IsDlgButtonChecked(dialog, IDC_ENABLE_CSMT) == BST_CHECKED) {
+        set_reg_key_dword(config_key, keypath("Direct3D"), "csmt", 1);
+    } else {
+        set_reg_key_dword(config_key, keypath("Direct3D"), "csmt", 0);
+    }
+}
+
 static void on_enable_decorated_clicked(HWND dialog) {
     WINE_TRACE("\n");
 
@@ -377,6 +394,7 @@ GraphDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 			case IDC_ENABLE_DESKTOP: on_enable_desktop_clicked(hDlg); break;
                         case IDC_ENABLE_MANAGED: on_enable_managed_clicked(hDlg); break;
                         case IDC_ENABLE_DECORATED: on_enable_decorated_clicked(hDlg); break;
+                        case IDC_ENABLE_CSMT: on_enable_csmt_clicked(hDlg); break;
 			case IDC_FULLSCREEN_GRAB:  on_fullscreen_grab_clicked(hDlg); break;
 		    }
 		    break;
-- 
2.7.4




More information about the wine-patches mailing list