| Index: cfgmgr/cfgmgr.c |
| — | — | @@ -666,6 +666,8 @@ |
| 667 | 667 | defaultmask.postsizey = 1.0f;
|
| 668 | 668 | defaultmask.DisplayMultiplierX = 1.0f;
|
| 669 | 669 | defaultmask.DisplayMultiplierY = 1.0f;
|
| | 670 | + defaultmask.primaryscalex = 1.0f;
|
| | 671 | + defaultmask.primaryscaley = 1.0f;
|
| 670 | 672 | WriteDWORD(hKey,cfg->scaler,cfgmask->scaler,_T("ScalingMode"));
|
| 671 | 673 | WriteDWORD(hKey, cfg->fullmode, cfgmask->fullmode, _T("FullscreenWindowMode"));
|
| 672 | 674 | WriteBool(hKey,cfg->colormode,cfgmask->colormode,_T("ChangeColorDepth"));
|
| — | — | @@ -811,6 +813,8 @@ |
| 812 | 814 | cfg->CustomRefresh = 60;
|
| 813 | 815 | cfg->DisplayMultiplierX = 1.0f;
|
| 814 | 816 | cfg->DisplayMultiplierY = 1.0f;
|
| | 817 | + cfg->primaryscalex = 1.0f;
|
| | 818 | + cfg->primaryscaley = 1.0f;
|
| 815 | 819 | cfg->BltThreshold = 127;
|
| 816 | 820 | if (!cfg->Windows8Detected)
|
| 817 | 821 | {
|
| Index: dxgl-example.ini |
| — | — | @@ -226,7 +226,7 @@ |
| 227 | 227 | AdjustPrimaryResolution = 0
|
| 228 | 228 |
|
| 229 | 229 | ; PrimaryScaleX - Floating point
|
| 230 | | -; (future) Sets the scaling amount in the X dimension for custom primary
|
| | 230 | +; Sets the scaling amount in the X dimension for custom primary
|
| 231 | 231 | ; buffer scaling.
|
| 232 | 232 | ; If zero, negative, or an invalid value, will be interpreted as 1.0
|
| 233 | 233 | ; Default is 1.0
|
| — | — | @@ -233,7 +233,7 @@ |
| 234 | 234 | PrimaryScaleX = 1.0
|
| 235 | 235 |
|
| 236 | 236 | ; PrimaryScaleY - Floating point
|
| 237 | | -; (future) Sets the scaling amount in the Y dimension for custom primary
|
| | 237 | +; Sets the scaling amount in the Y dimension for custom primary
|
| 238 | 238 | ; buffer scaling.
|
| 239 | 239 | ; If zero, negative, or an invalid value, will be interpreted as 1.0
|
| 240 | 240 | ; Default is 1.0
|
| Index: dxglcfg/dxglcfg.cpp |
| — | — | @@ -1571,7 +1571,53 @@ |
| 1572 | 1572 | cfg->primaryscale = GetCombo(hWnd, IDC_PRIMARYSCALE, &cfgmask->primaryscale);
|
| 1573 | 1573 | EnableWindow(GetDlgItem(hDialog, IDC_APPLY), TRUE);
|
| 1574 | 1574 | *dirty = TRUE;
|
| | 1575 | + if (cfg->primaryscale == 12)
|
| | 1576 | + {
|
| | 1577 | + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOMSCALELABEL), TRUE);
|
| | 1578 | + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOMSCALELABELX), TRUE);
|
| | 1579 | + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOMSCALEX), TRUE);
|
| | 1580 | + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOMSCALELABELY), TRUE);
|
| | 1581 | + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOMSCALEY), TRUE);
|
| | 1582 | + }
|
| | 1583 | + else
|
| | 1584 | + {
|
| | 1585 | + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOMSCALELABEL), FALSE);
|
| | 1586 | + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOMSCALELABELX), FALSE);
|
| | 1587 | + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOMSCALEX), FALSE);
|
| | 1588 | + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOMSCALELABELY), FALSE);
|
| | 1589 | + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOMSCALEY), FALSE);
|
| | 1590 | + }
|
| 1575 | 1591 | break;
|
| | 1592 | + case IDC_CUSTOMSCALEX:
|
| | 1593 | + if (HIWORD(wParam) == EN_CHANGE)
|
| | 1594 | + {
|
| | 1595 | + if (!EditInterlock)
|
| | 1596 | + {
|
| | 1597 | + cfg->primaryscalex = GetFloat(hWnd, IDC_CUSTOMSCALEX, &cfgmask->primaryscalex);
|
| | 1598 | + EnableWindow(GetDlgItem(hDialog, IDC_APPLY), TRUE);
|
| | 1599 | + *dirty = TRUE;
|
| | 1600 | + }
|
| | 1601 | + }
|
| | 1602 | + if (HIWORD(wParam) == EN_KILLFOCUS)
|
| | 1603 | + {
|
| | 1604 | + SetFloat3place(hWnd, IDC_CUSTOMSCALEX, cfg->primaryscalex, cfgmask->primaryscalex);
|
| | 1605 | + }
|
| | 1606 | + break;
|
| | 1607 | + case IDC_CUSTOMSCALEY:
|
| | 1608 | + if (HIWORD(wParam) == EN_CHANGE)
|
| | 1609 | + {
|
| | 1610 | + if (!EditInterlock)
|
| | 1611 | + {
|
| | 1612 | + cfg->primaryscaley = GetFloat(hWnd, IDC_CUSTOMSCALEY, &cfgmask->primaryscaley);
|
| | 1613 | + EnableWindow(GetDlgItem(hDialog, IDC_APPLY), TRUE);
|
| | 1614 | + *dirty = TRUE;
|
| | 1615 | + }
|
| | 1616 | + }
|
| | 1617 | + if (HIWORD(wParam) == EN_KILLFOCUS)
|
| | 1618 | + {
|
| | 1619 | + SetFloat3place(hWnd, IDC_CUSTOMSCALEY, cfg->primaryscaley, cfgmask->primaryscaley);
|
| | 1620 | + }
|
| | 1621 | + break;
|
| 1576 | 1622 | case IDC_SHADER:
|
| 1577 | 1623 | if (HIWORD(wParam) == EN_CHANGE)
|
| 1578 | 1624 | {
|
| — | — | @@ -2328,6 +2374,25 @@ |
| 2329 | 2375 | _tcscpy(buffer, _T("Custom scale"));
|
| 2330 | 2376 | SendDlgItemMessage(hTabs[1], IDC_PRIMARYSCALE, CB_ADDSTRING, 0, (LPARAM)buffer);
|
| 2331 | 2377 | SendDlgItemMessage(hTabs[1], IDC_PRIMARYSCALE, CB_SETCURSEL, cfg->primaryscale, 0);
|
| | 2378 | + // Primary scaling size
|
| | 2379 | + if (cfg->primaryscale == 12)
|
| | 2380 | + {
|
| | 2381 | + EnableWindow(GetDlgItem(hTabs[1],IDC_CUSTOMSCALELABEL), TRUE);
|
| | 2382 | + EnableWindow(GetDlgItem(hTabs[1],IDC_CUSTOMSCALELABELX), TRUE);
|
| | 2383 | + EnableWindow(GetDlgItem(hTabs[1],IDC_CUSTOMSCALEX), TRUE);
|
| | 2384 | + EnableWindow(GetDlgItem(hTabs[1],IDC_CUSTOMSCALELABELY), TRUE);
|
| | 2385 | + EnableWindow(GetDlgItem(hTabs[1],IDC_CUSTOMSCALEY), TRUE);
|
| | 2386 | + }
|
| | 2387 | + else
|
| | 2388 | + {
|
| | 2389 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALELABEL), FALSE);
|
| | 2390 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALELABELX), FALSE);
|
| | 2391 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALEX), FALSE);
|
| | 2392 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALELABELY), FALSE);
|
| | 2393 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALEY), FALSE);
|
| | 2394 | + }
|
| | 2395 | + SetFloat3place(hTabs[1], IDC_CUSTOMSCALEX, cfg->primaryscalex, cfgmask->primaryscalex);
|
| | 2396 | + SetFloat3place(hTabs[1], IDC_CUSTOMSCALEY, cfg->primaryscaley, cfgmask->primaryscaley);
|
| 2332 | 2397 | // scaling filter
|
| 2333 | 2398 | _tcscpy(buffer,_T("Nearest"));
|
| 2334 | 2399 | SendDlgItemMessage(hTabs[0], IDC_SCALE, CB_ADDSTRING, 0, (LPARAM)buffer);
|
| — | — | @@ -2984,6 +3049,24 @@ |
| 2985 | 3050 | SetPostScaleCombo(hTabs[1], IDC_POSTSCALESIZE, cfg->postsizex, cfg->postsizey,
|
| 2986 | 3051 | cfgmask->postsizex , cfgmask->postsizey, tristate);
|
| 2987 | 3052 | SetCombo(hTabs[1], IDC_PRIMARYSCALE, cfg->primaryscale, cfgmask->primaryscale, tristate);
|
| | 3053 | + if (cfg->primaryscale == 12)
|
| | 3054 | + {
|
| | 3055 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALELABEL), TRUE);
|
| | 3056 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALELABELX), TRUE);
|
| | 3057 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALEX), TRUE);
|
| | 3058 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALELABELY), TRUE);
|
| | 3059 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALEY), TRUE);
|
| | 3060 | + }
|
| | 3061 | + else
|
| | 3062 | + {
|
| | 3063 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALELABEL), FALSE);
|
| | 3064 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALELABELX), FALSE);
|
| | 3065 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALEX), FALSE);
|
| | 3066 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALELABELY), FALSE);
|
| | 3067 | + EnableWindow(GetDlgItem(hTabs[1], IDC_CUSTOMSCALEY), FALSE);
|
| | 3068 | + }
|
| | 3069 | + SetFloat3place(hTabs[1], IDC_CUSTOMSCALEX, cfg->primaryscalex, cfgmask->primaryscalex);
|
| | 3070 | + SetFloat3place(hTabs[1], IDC_CUSTOMSCALEY, cfg->primaryscaley, cfgmask->primaryscaley);
|
| 2988 | 3071 | SetText(hTabs[1], IDC_SHADER, cfg->shaderfile, cfgmask->shaderfile, tristate);
|
| 2989 | 3072 | SetCombo(hTabs[1], IDC_BLTFILTER, cfg->BltScale, cfgmask->BltScale, tristate);
|
| 2990 | 3073 | SetCombo(hTabs[2], IDC_TEXFILTER, cfg->texfilter, cfgmask->texfilter, tristate);
|
| Index: dxglcfg/dxglcfg.rc |
| — | — | @@ -206,7 +206,7 @@ |
| 207 | 207 | COMBOBOX IDC_POSTSCALE, 7, 17, 102, 30, CBS_DROPDOWNLIST | CBS_HASSTRINGS, WS_EX_LEFT
|
| 208 | 208 | LTEXT "Postprocess input multiplier", IDC_STATIC, 114, 7, 90, 9, SS_LEFT, WS_EX_LEFT
|
| 209 | 209 | COMBOBOX IDC_POSTSCALESIZE, 114, 17, 102, 30, CBS_DROPDOWN | CBS_HASSTRINGS, WS_EX_LEFT
|
| 210 | | - AUTOCHECKBOX "Use post-processing shader", IDC_USESHADER, 7, 33, 103, 8, 0, WS_EX_LEFT
|
| | 210 | + AUTOCHECKBOX "Use post-processing shader", IDC_USESHADER, 7, 33, 103, 8, WS_DISABLED, WS_EX_LEFT
|
| 211 | 211 | COMBOBOX IDC_SHADER, 7, 43, 247, 92, WS_DISABLED | CBS_DROPDOWN | CBS_HASSTRINGS, WS_EX_LEFT
|
| 212 | 212 | PUSHBUTTON "...", IDC_BROWSESHADER, 256, 42, 20, 14, WS_DISABLED, WS_EX_LEFT
|
| 213 | 213 | LTEXT "Primary buffer scaling", IDC_STATIC, 7, 58, 70, 8, SS_LEFT, WS_EX_LEFT
|