Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygengeneral.c
Go to the documentation of this file.
00001 #include "wined3dcfg.h" 00002 00003 static LONG ReadSetting(HKEY hKey, PWCHAR szKey, PWCHAR szBuffer, DWORD dwSize) 00004 { 00005 return RegQueryValueExW(hKey, szKey, NULL, NULL, (LPBYTE)szBuffer, &dwSize); 00006 } 00007 00008 static VOID SaveSetting(HKEY hKey, PWCHAR szKey, PWCHAR szState) 00009 { 00010 RegSetValueExW(hKey, szKey, 0, REG_SZ, (LPBYTE)szState, (wcslen(szState) + 1) * sizeof(WCHAR)); 00011 } 00012 00013 static VOID InitSettings(HWND hWndDlg) 00014 { 00015 HKEY hKey; 00016 WCHAR szBuffer[MAX_KEY_LENGTH]; 00017 DWORD dwSize = MAX_KEY_LENGTH; 00018 00019 if (RegOpenKeyExW(HKEY_CURRENT_USER, 00020 KEY_WINE, 00021 0, 00022 KEY_READ, 00023 &hKey) != ERROR_SUCCESS) 00024 { 00025 return; 00026 } 00027 00028 if(ReadSetting(hKey, KEY_GLSL, szBuffer, dwSize) == ERROR_SUCCESS) 00029 CheckDlgButton(hWndDlg, IDC_GLSL, (wcscmp(VALUE_DISABLED, szBuffer) != 0) ? BST_CHECKED : BST_UNCHECKED); 00030 00031 if(ReadSetting(hKey, KEY_MULTISAMPLING, szBuffer, dwSize) == ERROR_SUCCESS) 00032 CheckDlgButton(hWndDlg, IDC_MULTISAMPLING, (wcscmp(VALUE_ENABLED, szBuffer) == 0) ? BST_CHECKED : BST_UNCHECKED); 00033 00034 if(ReadSetting(hKey, KEY_PIXELSHADERS, szBuffer, dwSize) == ERROR_SUCCESS) 00035 CheckDlgButton(hWndDlg, IDC_PIXELSHADERS, (wcscmp(VALUE_ENABLED, szBuffer) == 0) ? BST_CHECKED : BST_UNCHECKED); 00036 00037 if(ReadSetting(hKey, KEY_STRICTDRAWORDERING, szBuffer, dwSize) == ERROR_SUCCESS) 00038 CheckDlgButton(hWndDlg, IDC_STRICTDRAWORDERING, (wcscmp(VALUE_ENABLED, szBuffer) == 0) ? BST_CHECKED : BST_UNCHECKED); 00039 00040 if(ReadSetting(hKey, KEY_VERTEXSHADERS, szBuffer, dwSize) == ERROR_SUCCESS) 00041 CheckDlgButton(hWndDlg, IDC_VERTEXSHADERS, (wcscmp(VALUE_NONE, szBuffer) != 0) ? BST_CHECKED : BST_UNCHECKED); 00042 00043 SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_ADDSTRING, 0, (LPARAM)VALUE_FBO); 00044 SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_ADDSTRING, 0, (LPARAM)VALUE_BACKBUFFER); 00045 00046 SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_SETITEMDATA, ITEM_FBO, (LPARAM)ITEM_FBO); 00047 SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_SETITEMDATA, ITEM_BACKBUFFER, (LPARAM)ITEM_BACKBUFFER); 00048 00049 if(ReadSetting(hKey, KEY_OFFSCREEN, szBuffer, dwSize) == ERROR_SUCCESS && !wcscmp(VALUE_BACKBUFFER, szBuffer)) 00050 SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_SETCURSEL, 1, 0); 00051 else 00052 SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_SETCURSEL, 0, 0); 00053 00054 SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_ADDSTRING, 0, (LPARAM)VALUE_READTEX); 00055 SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_ADDSTRING, 0, (LPARAM)VALUE_READDRAW); 00056 SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_ADDSTRING, 0, (LPARAM)VALUE_DISABLED); 00057 00058 SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETITEMDATA, (WPARAM)ITEM_READTEX, (LPARAM)ITEM_READTEX); 00059 SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETITEMDATA, (WPARAM)ITEM_READDRAW, (LPARAM)ITEM_READDRAW); 00060 SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETITEMDATA, (WPARAM)ITEM_DISABLED, (LPARAM)ITEM_DISABLED); 00061 00062 SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETCURSEL, 0, 0); 00063 00064 if(ReadSetting(hKey, KEY_LOCKING, szBuffer, dwSize) == ERROR_SUCCESS) 00065 { 00066 if(!wcscmp(VALUE_READDRAW, szBuffer)) 00067 SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETCURSEL, 1, 0); 00068 else if(!wcscmp(VALUE_DISABLED, szBuffer)) 00069 SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETCURSEL, 2, 0); 00070 } 00071 00072 RegCloseKey(hKey); 00073 } 00074 00075 static VOID WriteSettings(HWND hWndDlg) 00076 { 00077 HKEY hKey; 00078 INT iCurSel; 00079 00080 if (RegOpenKeyExW(HKEY_CURRENT_USER, 00081 KEY_WINE, 00082 0, 00083 KEY_WRITE, 00084 &hKey) != ERROR_SUCCESS) 00085 { 00086 return; 00087 } 00088 00089 SaveSetting(hKey, KEY_GLSL, (IsDlgButtonChecked(hWndDlg, IDC_GLSL) == BST_CHECKED) ? VALUE_ENABLED : VALUE_DISABLED); 00090 SaveSetting(hKey, KEY_MULTISAMPLING, (IsDlgButtonChecked(hWndDlg, IDC_MULTISAMPLING) == BST_CHECKED) ? VALUE_ENABLED : VALUE_DISABLED); 00091 SaveSetting(hKey, KEY_PIXELSHADERS, (IsDlgButtonChecked(hWndDlg, IDC_PIXELSHADERS) == BST_CHECKED) ? VALUE_ENABLED : VALUE_DISABLED); 00092 SaveSetting(hKey, KEY_STRICTDRAWORDERING, (IsDlgButtonChecked(hWndDlg, IDC_STRICTDRAWORDERING) == BST_CHECKED) ? VALUE_ENABLED : VALUE_DISABLED); 00093 SaveSetting(hKey, KEY_VERTEXSHADERS, (IsDlgButtonChecked(hWndDlg, IDC_VERTEXSHADERS) == BST_CHECKED) ? VALUE_ENABLED : VALUE_NONE); 00094 00095 iCurSel = (INT)SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_GETCURSEL, 0, 0); 00096 00097 if(iCurSel != CB_ERR) 00098 { 00099 iCurSel = (INT)SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_GETITEMDATA, (WPARAM)iCurSel, 0); 00100 00101 if(iCurSel == ITEM_READDRAW) 00102 SaveSetting(hKey, KEY_LOCKING, VALUE_READDRAW); 00103 else if(iCurSel == ITEM_DISABLED) 00104 SaveSetting(hKey, KEY_LOCKING, VALUE_DISABLED); 00105 else 00106 SaveSetting(hKey, KEY_LOCKING, VALUE_READTEX); 00107 } 00108 00109 iCurSel = (INT)SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_GETCURSEL, 0, 0); 00110 00111 if(iCurSel != CB_ERR) 00112 { 00113 iCurSel = (INT)SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_GETITEMDATA, (WPARAM)iCurSel, 0); 00114 00115 if(iCurSel == ITEM_BACKBUFFER) 00116 SaveSetting(hKey, KEY_OFFSCREEN, VALUE_BACKBUFFER); 00117 else 00118 SaveSetting(hKey, KEY_OFFSCREEN, VALUE_FBO); 00119 } 00120 00121 RegCloseKey(hKey); 00122 } 00123 00124 00125 INT_PTR CALLBACK GeneralPageProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) 00126 { 00127 LPPSHNOTIFY lppsn; 00128 00129 switch (uMsg) 00130 { 00131 case WM_INITDIALOG: 00132 InitSettings(hWndDlg); 00133 return TRUE; 00134 00135 case WM_COMMAND: 00136 switch (LOWORD(wParam)) 00137 { 00138 case IDC_GLSL: 00139 case IDC_LOCKING: 00140 case IDC_MULTISAMPLING: 00141 case IDC_OFFSCREEN: 00142 case IDC_PIXELSHADERS: 00143 case IDC_STRICTDRAWORDERING: 00144 case IDC_VERTEXSHADERS: 00145 PropSheet_Changed(GetParent(hWndDlg), hWndDlg); 00146 break; 00147 default: 00148 break; 00149 } 00150 break; 00151 00152 case WM_NOTIFY: 00153 lppsn = (LPPSHNOTIFY)lParam; 00154 if (lppsn->hdr.code == PSN_APPLY) 00155 { 00156 WriteSettings(hWndDlg); 00157 return TRUE; 00158 } 00159 break; 00160 } 00161 00162 return FALSE; 00163 } Generated on Thu May 24 2012 04:21:04 for ReactOS by
1.7.6.1
|