1
0
mirror of https://github.com/narzoul/DDrawCompat synced 2024-12-30 08:55:36 +01:00

Added SpriteFilter config

This commit is contained in:
narzoul 2022-03-06 15:15:35 +01:00
parent 19985f294e
commit 6ca41202f3
9 changed files with 51 additions and 1 deletions

View File

@ -12,6 +12,7 @@ namespace Config
Settings::DisplayResolution displayResolution;
Settings::RenderColorDepth renderColorDepth;
Settings::ResolutionScale resolutionScale;
Settings::SpriteFilter spriteFilter;
Settings::SpriteTexCoord spriteTexCoord;
Settings::SupportedResolutions supportedResolutions;
Settings::TextureFilter textureFilter;

View File

@ -10,6 +10,7 @@
#include <Config/Settings/DisplayResolution.h>
#include <Config/Settings/RenderColorDepth.h>
#include <Config/Settings/ResolutionScale.h>
#include <Config/Settings/SpriteFilter.h>
#include <Config/Settings/SpriteTexCoord.h>
#include <Config/Settings/SupportedResolutions.h>
#include <Config/Settings/TextureFilter.h>
@ -30,6 +31,7 @@ namespace Config
extern Settings::DisplayResolution displayResolution;
extern Settings::RenderColorDepth renderColorDepth;
extern Settings::ResolutionScale resolutionScale;
extern Settings::SpriteFilter spriteFilter;
extern Settings::SpriteTexCoord spriteTexCoord;
extern Settings::SupportedResolutions supportedResolutions;
extern Settings::TextureFilter textureFilter;

View File

@ -0,0 +1,17 @@
#include <Config/Settings/SpriteFilter.h>
#include <D3dDdi/DeviceState.h>
namespace Config
{
namespace Settings
{
SpriteFilter::SpriteFilter()
: MappedSetting("SpriteFilter", "app", {
{"app", D3DTEXF_NONE},
{"point", D3DTEXF_POINT},
{"linear", D3DTEXF_LINEAR}
})
{
}
}
}

View File

@ -0,0 +1,15 @@
#pragma once
#include <Config/MappedSetting.h>
namespace Config
{
namespace Settings
{
class SpriteFilter : public MappedSetting<UINT>
{
public:
SpriteFilter();
};
}
}

View File

@ -310,7 +310,10 @@ namespace D3dDdi
case D3DDDITSS_MAGFILTER:
case D3DDDITSS_MINFILTER:
return D3DTEXF_NONE == Config::textureFilter.getFilter() ? value : Config::textureFilter.getFilter();
{
auto filter = (m_spriteMode && 0 == stage) ? Config::spriteFilter.get() : Config::textureFilter.getFilter();
return D3DTEXF_NONE == filter ? value : filter;
}
case D3DDDITSS_MIPFILTER:
return D3DTEXF_NONE == Config::textureFilter.getMipFilter() ? value : Config::textureFilter.getMipFilter();
@ -646,6 +649,8 @@ namespace D3dDdi
m_changedTextureStageStates[0].set(D3DDDITSS_ADDRESSU);
m_changedTextureStageStates[0].set(D3DDDITSS_ADDRESSV);
}
m_changedTextureStageStates[0].set(D3DDDITSS_MAGFILTER);
m_changedTextureStageStates[0].set(D3DDDITSS_MINFILTER);
D3DDDIARG_SETVERTEXSHADERCONSTB data = {};
data.Register = 15;

View File

@ -227,6 +227,7 @@
<ClInclude Include="Config\Settings\DisplayResolution.h" />
<ClInclude Include="Config\Settings\RenderColorDepth.h" />
<ClInclude Include="Config\Settings\ResolutionScale.h" />
<ClInclude Include="Config\Settings\SpriteFilter.h" />
<ClInclude Include="Config\Settings\SpriteTexCoord.h" />
<ClInclude Include="Config\Settings\SupportedResolutions.h" />
<ClInclude Include="Config\Settings\TextureFilter.h" />
@ -352,6 +353,7 @@
<ClCompile Include="Config\Settings\DisplayRefreshRate.cpp" />
<ClCompile Include="Config\Settings\DisplayResolution.cpp" />
<ClCompile Include="Config\Settings\ResolutionScale.cpp" />
<ClCompile Include="Config\Settings\SpriteFilter.cpp" />
<ClCompile Include="Config\Settings\SpriteTexCoord.cpp" />
<ClCompile Include="Config\Settings\SupportedResolutions.cpp" />
<ClCompile Include="Config\Settings\TextureFilter.cpp" />

View File

@ -531,6 +531,9 @@
<ClInclude Include="Config\Settings\SpriteTexCoord.h">
<Filter>Header Files\Config\Settings</Filter>
</ClInclude>
<ClInclude Include="Config\Settings\SpriteFilter.h">
<Filter>Header Files\Config\Settings</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="Gdi\Gdi.cpp">
@ -839,6 +842,9 @@
<ClCompile Include="Config\Settings\SpriteTexCoord.cpp">
<Filter>Source Files\Config\Settings</Filter>
</ClCompile>
<ClCompile Include="Config\Settings\SpriteFilter.cpp">
<Filter>Source Files\Config\Settings</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="DDrawCompat.rc">

View File

@ -16,6 +16,7 @@ namespace Overlay
addControl(Config::displayFilter);
addControl(Config::renderColorDepth);
addControl(Config::resolutionScale);
addControl(Config::spriteFilter);
addControl(Config::spriteTexCoord);
addControl(Config::textureFilter);
}

View File

@ -78,6 +78,7 @@ namespace Overlay
if (&Config::antialiasing == &m_setting ||
&Config::renderColorDepth == &m_setting ||
&Config::resolutionScale == &m_setting ||
&Config::spriteFilter == &m_setting ||
&Config::spriteTexCoord == &m_setting ||
&Config::textureFilter == &m_setting)
{