1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

add option to configure d3d9 filter

This commit is contained in:
FunkyFr3sh 2023-08-13 12:49:54 +02:00
parent 9de2c045a7
commit d7a173b0da
3 changed files with 75 additions and 0 deletions

View File

@ -662,6 +662,12 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
if (renderer == "direct3d9on12") {
RendererCbx->AddItem(L"Direct3D 12 (9On12)", NULL);
RendererCbx->ItemIndex = 4;
ShaderLbl->Caption =
ReplaceStr(ShaderLbl->Caption, "OpenGL", "Direct3D");
ShaderD3DCbx->Visible = true;
ShaderCbx->Visible = false;
}
else if (renderer == "openglcore") {
RendererCbx->AddItem(L"OpenGL Core", NULL);
@ -669,6 +675,12 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
}
else if (StartsStr("d", renderer)) {
RendererCbx->ItemIndex = 1;
ShaderLbl->Caption =
ReplaceStr(ShaderLbl->Caption, "OpenGL", "Direct3D");
ShaderD3DCbx->Visible = true;
ShaderCbx->Visible = false;
}
else if (StartsStr("o", renderer)) {
RendererCbx->ItemIndex = 2;
@ -697,6 +709,20 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
{
}
int d3d9_filter = ini->ReadInteger("ddraw", "d3d9_filter", 2);
switch (d3d9_filter) {
case 0:
ShaderD3DCbx->ItemIndex = 0;
break;
case 1:
ShaderD3DCbx->ItemIndex = 1;
break;
default:
ShaderD3DCbx->ItemIndex = 2;
break;
}
Maxfps = ini->ReadInteger("ddraw", "maxfps", -1);
MaxfpsChk->State = Maxfps != 0 ? tssOn : tssOff;
@ -868,6 +894,8 @@ void TConfigForm::SaveSettings()
ini->WriteString("ddraw", "shader", ShaderCbx->Text);
ini->WriteInteger("ddraw", "d3d9_filter", ShaderD3DCbx->ItemIndex);
int maxfps = Maxfps == 0 ? -1 : Maxfps;
ini->WriteInteger(
@ -1139,6 +1167,22 @@ void __fastcall TConfigForm::DevmodeChkClick(TObject *Sender)
void __fastcall TConfigForm::RendererCbxChange(TObject *Sender)
{
if (ContainsStr(RendererCbx->Text, "Direct3D")) {
ShaderLbl->Caption =
ReplaceStr(ShaderLbl->Caption, "OpenGL", "Direct3D");
ShaderD3DCbx->Visible = true;
ShaderCbx->Visible = false;
}
else {
ShaderLbl->Caption =
ReplaceStr(ShaderLbl->Caption, "Direct3D", "OpenGL");
ShaderCbx->Visible = true;
ShaderD3DCbx->Visible = false;
}
SaveSettings();
}
@ -1151,6 +1195,11 @@ void __fastcall TConfigForm::ShaderCbxChange(TObject *Sender)
SaveSettings();
}
void __fastcall TConfigForm::ShaderD3DCbxChange(TObject *Sender)
{
SaveSettings();
}
void __fastcall TConfigForm::MaxfpsChkClick(TObject *Sender)
{
SaveSettings();

View File

@ -3178,6 +3178,30 @@ object ConfigForm: TConfigForm
Height = 31
OnPaint = PboxPaint
end
object ShaderD3DCbx: TComboBox
Left = 41
Top = 132
Width = 425
Height = 29
BevelEdges = []
BevelInner = bvNone
BevelOuter = bvSpace
Style = csDropDownList
DropDownCount = 10
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Segoe UI'
Font.Style = []
ParentFont = False
TabOrder = 6
Visible = False
OnChange = ShaderD3DCbxChange
Items.Strings = (
'Nearest neighbor'
'Bilinear'
'Bicubic Catmull-Rom')
end
object RendererCbx: TComboBox
Left = 41
Top = 55

View File

@ -78,6 +78,7 @@ __published: // Von der IDE verwaltete Komponenten
TLabel *UnlockCursor2KeyLbl;
TLabel *ScreenshotLbl;
TEdit *ScreenshotEdt;
TComboBox *ShaderD3DCbx;
void __fastcall DisplayBtnClick(TObject *Sender);
void __fastcall AdvancedBtnClick(TObject *Sender);
void __fastcall CompatibilityBtnClick(TObject *Sender);
@ -105,6 +106,7 @@ __published: // Von der IDE verwaltete Komponenten
void __fastcall HotkeyBtnClick(TObject *Sender);
void __fastcall HotkeyEdtKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
void __fastcall HotkeyEdtKeyUp(TObject *Sender, WORD &Key, TShiftState Shift);
void __fastcall ShaderD3DCbxChange(TObject *Sender);