winecfg: x11drv: load vertex shader mode strings from resources [resend]

Frank Richter frank.richter at gmail.com
Fri Aug 18 10:59:39 CDT 2006


...or is there something wrong with this?

-------------- next part --------------
From a110441f4e279494e012b7a76772d7cce14c8f36 Mon Sep 17 00:00:00 2001
From: Frank Richter frank.richter at gmail.com <frank.richter at gmail.com>
Date: Fri, 18 Aug 2006 16:56:29 +0200
Subject: [PATCH] winecfg: x11drv: load vertex shader mode strings from resources
---
 programs/winecfg/Bg.rc       |    7 +++++++
 programs/winecfg/De.rc       |    7 +++++++
 programs/winecfg/En.rc       |    7 +++++++
 programs/winecfg/Es.rc       |    7 +++++++
 programs/winecfg/Fi.rc       |    7 +++++++
 programs/winecfg/Fr.rc       |    7 +++++++
 programs/winecfg/Hu.rc       |    7 +++++++
 programs/winecfg/Ja.rc       |    7 +++++++
 programs/winecfg/Ko.rc       |    7 +++++++
 programs/winecfg/Nl.rc       |    7 +++++++
 programs/winecfg/No.rc       |    7 +++++++
 programs/winecfg/Ru.rc       |    7 +++++++
 programs/winecfg/Tr.rc       |    7 +++++++
 programs/winecfg/resource.h  |    3 +++
 programs/winecfg/x11drvdlg.c |   28 +++++++++++++++++-----------
 15 files changed, 111 insertions(+), 11 deletions(-)

diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc
index b363457..8264160 100644
--- a/programs/winecfg/Bg.rc
+++ b/programs/winecfg/Bg.rc
@@ -232,3 +232,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Use global settings"
     IDS_SELECT_EXECUTABLE   "Select an executable file"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc
index 0c8fcaa..bc6489d 100644
--- a/programs/winecfg/De.rc
+++ b/programs/winecfg/De.rc
@@ -230,3 +230,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Globale Einstellung benutzen"
     IDS_SELECT_EXECUTABLE   "Ausführbares Programm auswählen"
 END 
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "Aus"
+    IDS_SHADER_MODE_EMULATION   "Emuliert"
+END
diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc
index 157d727..fc6799e 100644
--- a/programs/winecfg/En.rc
+++ b/programs/winecfg/En.rc
@@ -232,6 +232,13 @@ BEGIN
     IDS_SELECT_EXECUTABLE   "Select an executable file"
 END
 
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
+
 /****************************************************************/
 /* English neutral resources
 /****************************************************************/
diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc
index ba3fd92..841d0e3 100644
--- a/programs/winecfg/Es.rc
+++ b/programs/winecfg/Es.rc
@@ -226,3 +226,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Use global settings"
     IDS_SELECT_EXECUTABLE   "Select an executable file"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc
index 3eedd2f..a98d243 100644
--- a/programs/winecfg/Fi.rc
+++ b/programs/winecfg/Fi.rc
@@ -229,3 +229,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Use global settings"
     IDS_SELECT_EXECUTABLE   "Select an executable file"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc
index 5320311..0bd019d 100644
--- a/programs/winecfg/Fr.rc
+++ b/programs/winecfg/Fr.rc
@@ -230,3 +230,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Use global settings"
     IDS_SELECT_EXECUTABLE   "Select an executable file"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc
index 7b0db4e..fd8d652 100644
--- a/programs/winecfg/Hu.rc
+++ b/programs/winecfg/Hu.rc
@@ -226,3 +226,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Use global settings"
     IDS_SELECT_EXECUTABLE   "Select an executable file"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc
index bab5250..e9b26c6 100644
--- a/programs/winecfg/Ja.rc
+++ b/programs/winecfg/Ja.rc
@@ -224,3 +224,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Use global settings"
     IDS_SELECT_EXECUTABLE   "Select an executable file"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc
index 9e6e1ef..98ba59a 100644
--- a/programs/winecfg/Ko.rc
+++ b/programs/winecfg/Ko.rc
@@ -233,3 +233,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Àüü ¼³Á¤ »ç¿ë"
     IDS_SELECT_EXECUTABLE   "½ÇÇà ÆÄÀÏ ¼±ÅÃ"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc
index 8cd1fc1..e6c9568 100644
--- a/programs/winecfg/Nl.rc
+++ b/programs/winecfg/Nl.rc
@@ -231,3 +231,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Use global settings"
     IDS_SELECT_EXECUTABLE   "Select an executable file"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc
index 00c2788..39370a4 100644
--- a/programs/winecfg/No.rc
+++ b/programs/winecfg/No.rc
@@ -229,3 +229,10 @@ END
     IDS_USE_GLOBAL_SETTINGS "Bruk globale innstillinger"
     IDS_SELECT_EXECUTABLE   "Velg en programfil"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc
index dae05b7..5ea8138 100644
--- a/programs/winecfg/Ru.rc
+++ b/programs/winecfg/Ru.rc
@@ -226,3 +226,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Use global settings"
     IDS_SELECT_EXECUTABLE   "Select an executable file"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc
index ad5a8ab..9ea2b19 100644
--- a/programs/winecfg/Tr.rc
+++ b/programs/winecfg/Tr.rc
@@ -229,3 +229,10 @@ BEGIN
     IDS_USE_GLOBAL_SETTINGS "Genel ayarlarý kullan"
     IDS_SELECT_EXECUTABLE   "Çalýþtýrýlabilir bir dosya seçin"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_SHADER_MODE_HARDWARE    "Hardware"
+    IDS_SHADER_MODE_NONE        "None"
+    IDS_SHADER_MODE_EMULATION   "Emulated"
+END
diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h
index 67013c1..5d66962 100644
--- a/programs/winecfg/resource.h
+++ b/programs/winecfg/resource.h
@@ -139,6 +139,9 @@ #define IDC_USE_TAKE_FOCUS              
 #define IDC_DOUBLE_BUFFER               1104
 #define IDC_D3D_VSHADER_MODE            1105
 #define IDC_D3D_PSHADER_MODE            1106
+#define IDS_SHADER_MODE_HARDWARE        8100
+#define IDS_SHADER_MODE_NONE            8101
+#define IDS_SHADER_MODE_EMULATION       8102
 
 /* applications tab */
 #define IDC_APP_LISTVIEW                1200
diff --git a/programs/winecfg/x11drvdlg.c b/programs/winecfg/x11drvdlg.c
index f90b120..c02938f 100644
--- a/programs/winecfg/x11drvdlg.c
+++ b/programs/winecfg/x11drvdlg.c
@@ -38,11 +38,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(winecfg);
 #define RES_MAXLEN 5 /* the maximum number of characters in a screen dimension. 5 digits should be plenty, what kind of crazy person runs their screen >10,000 pixels across? */
 
 
-static const char* D3D_VS_Modes[] = {
-  "hardware",
-  "none",
-  "emulation",
-  NULL
+static struct SHADERMODE
+{
+  UINT displayStrID;
+  const char* settingStr;
+} const D3D_VS_Modes[] = {
+  {IDS_SHADER_MODE_HARDWARE,  "hardware"},
+  {IDS_SHADER_MODE_EMULATION, "emulation"},
+  {IDS_SHADER_MODE_NONE,      "none"},
+  {0, 0}
 };
 
 
@@ -145,17 +149,18 @@ static void init_dialog(HWND dialog)
     HeapFree(GetProcessHeap(), 0, buf);
 
     SendDlgItemMessage(dialog, IDC_D3D_VSHADER_MODE, CB_RESETCONTENT, 0, 0);
-    for (it = 0; NULL != D3D_VS_Modes[it]; ++it) {
-      SendDlgItemMessage(dialog, IDC_D3D_VSHADER_MODE, CB_ADDSTRING, 0, (LPARAM) D3D_VS_Modes[it]);
+    for (it = 0; 0 != D3D_VS_Modes[it].displayStrID; ++it) {
+      SendDlgItemMessageW (dialog, IDC_D3D_VSHADER_MODE, CB_ADDSTRING, 0,
+          (LPARAM)load_string (D3D_VS_Modes[it].displayStrID));
     }  
     buf = get_reg_key(config_key, keypath("Direct3D"), "VertexShaderMode", "hardware"); 
-    for (it = 0; NULL != D3D_VS_Modes[it]; ++it) {
-      if (strcmp(buf, D3D_VS_Modes[it]) == 0) {
+    for (it = 0; NULL != D3D_VS_Modes[it].settingStr; ++it) {
+      if (strcmp(buf, D3D_VS_Modes[it].settingStr) == 0) {
 	SendDlgItemMessage(dialog, IDC_D3D_VSHADER_MODE, CB_SETCURSEL, it, 0);
 	break ;
       }
     }
-    if (NULL == D3D_VS_Modes[it]) {
+    if (NULL == D3D_VS_Modes[it].settingStr) {
       WINE_ERR("Invalid Direct3D VertexShader Mode read from registry (%s)\n", buf);
     }
     HeapFree(GetProcessHeap(), 0, buf);
@@ -238,7 +243,8 @@ static void on_double_buffer_clicked(HWN
 
 static void on_d3d_vshader_mode_changed(HWND dialog) {
   int selected_mode = SendDlgItemMessage(dialog, IDC_D3D_VSHADER_MODE, CB_GETCURSEL, 0, 0);  
-  set_reg_key(config_key, keypath("Direct3D"), "VertexShaderMode", D3D_VS_Modes[selected_mode]); 
+  set_reg_key(config_key, keypath("Direct3D"), "VertexShaderMode",
+      D3D_VS_Modes[selected_mode].settingStr); 
 }
 
 static void on_d3d_pshader_mode_clicked(HWND dialog) {
-- 
1.4.1.1



More information about the wine-patches mailing list