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::DisplayResolution displayResolution;
Settings::RenderColorDepth renderColorDepth; Settings::RenderColorDepth renderColorDepth;
Settings::ResolutionScale resolutionScale; Settings::ResolutionScale resolutionScale;
Settings::SpriteFilter spriteFilter;
Settings::SpriteTexCoord spriteTexCoord; Settings::SpriteTexCoord spriteTexCoord;
Settings::SupportedResolutions supportedResolutions; Settings::SupportedResolutions supportedResolutions;
Settings::TextureFilter textureFilter; Settings::TextureFilter textureFilter;

View File

@ -10,6 +10,7 @@
#include <Config/Settings/DisplayResolution.h> #include <Config/Settings/DisplayResolution.h>
#include <Config/Settings/RenderColorDepth.h> #include <Config/Settings/RenderColorDepth.h>
#include <Config/Settings/ResolutionScale.h> #include <Config/Settings/ResolutionScale.h>
#include <Config/Settings/SpriteFilter.h>
#include <Config/Settings/SpriteTexCoord.h> #include <Config/Settings/SpriteTexCoord.h>
#include <Config/Settings/SupportedResolutions.h> #include <Config/Settings/SupportedResolutions.h>
#include <Config/Settings/TextureFilter.h> #include <Config/Settings/TextureFilter.h>
@ -30,6 +31,7 @@ namespace Config
extern Settings::DisplayResolution displayResolution; extern Settings::DisplayResolution displayResolution;
extern Settings::RenderColorDepth renderColorDepth; extern Settings::RenderColorDepth renderColorDepth;
extern Settings::ResolutionScale resolutionScale; extern Settings::ResolutionScale resolutionScale;
extern Settings::SpriteFilter spriteFilter;
extern Settings::SpriteTexCoord spriteTexCoord; extern Settings::SpriteTexCoord spriteTexCoord;
extern Settings::SupportedResolutions supportedResolutions; extern Settings::SupportedResolutions supportedResolutions;
extern Settings::TextureFilter textureFilter; 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_MAGFILTER:
case D3DDDITSS_MINFILTER: 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: case D3DDDITSS_MIPFILTER:
return D3DTEXF_NONE == Config::textureFilter.getMipFilter() ? value : Config::textureFilter.getMipFilter(); 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_ADDRESSU);
m_changedTextureStageStates[0].set(D3DDDITSS_ADDRESSV); m_changedTextureStageStates[0].set(D3DDDITSS_ADDRESSV);
} }
m_changedTextureStageStates[0].set(D3DDDITSS_MAGFILTER);
m_changedTextureStageStates[0].set(D3DDDITSS_MINFILTER);
D3DDDIARG_SETVERTEXSHADERCONSTB data = {}; D3DDDIARG_SETVERTEXSHADERCONSTB data = {};
data.Register = 15; data.Register = 15;

View File

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

View File

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

View File

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

View File

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