mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
Core: Add option to force linear texture filtering.
This commit is contained in:
@ -480,7 +480,7 @@ void Renderer::CheckForConfigChanges()
|
||||
const u32 old_multisamples = g_ActiveConfig.iMultisamples;
|
||||
const int old_anisotropy = g_ActiveConfig.iMaxAnisotropy;
|
||||
const int old_efb_access_tile_size = g_ActiveConfig.iEFBAccessTileSize;
|
||||
const bool old_force_filtering = g_ActiveConfig.bForceFiltering;
|
||||
const auto old_texture_filtering_mode = g_ActiveConfig.texture_filtering_mode;
|
||||
const bool old_vsync = g_ActiveConfig.bVSyncActive;
|
||||
const bool old_bbox = g_ActiveConfig.bBBoxEnable;
|
||||
const u32 old_game_mod_changes =
|
||||
@ -533,7 +533,7 @@ void Renderer::CheckForConfigChanges()
|
||||
changed_bits |= CONFIG_CHANGE_BIT_MULTISAMPLES;
|
||||
if (old_anisotropy != g_ActiveConfig.iMaxAnisotropy)
|
||||
changed_bits |= CONFIG_CHANGE_BIT_ANISOTROPY;
|
||||
if (old_force_filtering != g_ActiveConfig.bForceFiltering)
|
||||
if (old_texture_filtering_mode != g_ActiveConfig.texture_filtering_mode)
|
||||
changed_bits |= CONFIG_CHANGE_BIT_FORCE_TEXTURE_FILTERING;
|
||||
if (old_vsync != g_ActiveConfig.bVSyncActive)
|
||||
changed_bits |= CONFIG_CHANGE_BIT_VSYNC;
|
||||
|
@ -1001,7 +1001,13 @@ static void SetSamplerState(u32 index, float custom_tex_scale, bool custom_tex,
|
||||
state.Generate(bpmem, index);
|
||||
|
||||
// Force texture filtering config option.
|
||||
if (g_ActiveConfig.bForceFiltering)
|
||||
if (g_ActiveConfig.texture_filtering_mode == TextureFilteringMode::Nearest)
|
||||
{
|
||||
state.tm0.min_filter = FilterMode::Near;
|
||||
state.tm0.mag_filter = FilterMode::Near;
|
||||
state.tm0.mipmap_filter = FilterMode::Near;
|
||||
}
|
||||
else if (g_ActiveConfig.texture_filtering_mode == TextureFilteringMode::Linear)
|
||||
{
|
||||
state.tm0.min_filter = FilterMode::Linear;
|
||||
state.tm0.mag_filter = FilterMode::Linear;
|
||||
|
@ -111,7 +111,7 @@ void VideoConfig::Refresh()
|
||||
iShaderCompilerThreads = Config::Get(Config::GFX_SHADER_COMPILER_THREADS);
|
||||
iShaderPrecompilerThreads = Config::Get(Config::GFX_SHADER_PRECOMPILER_THREADS);
|
||||
|
||||
bForceFiltering = Config::Get(Config::GFX_ENHANCE_FORCE_FILTERING);
|
||||
texture_filtering_mode = Config::Get(Config::GFX_ENHANCE_FORCE_TEXTURE_FILTERING);
|
||||
iMaxAnisotropy = Config::Get(Config::GFX_ENHANCE_MAX_ANISOTROPY);
|
||||
sPostProcessingShader = Config::Get(Config::GFX_ENHANCE_POST_SHADER);
|
||||
bForceTrueColor = Config::Get(Config::GFX_ENHANCE_FORCE_TRUE_COLOR);
|
||||
|
@ -45,6 +45,13 @@ enum class ShaderCompilationMode : int
|
||||
AsynchronousSkipRendering
|
||||
};
|
||||
|
||||
enum class TextureFilteringMode : int
|
||||
{
|
||||
Default,
|
||||
Nearest,
|
||||
Linear,
|
||||
};
|
||||
|
||||
enum class TriState : int
|
||||
{
|
||||
Off,
|
||||
@ -72,7 +79,7 @@ struct VideoConfig final
|
||||
u32 iMultisamples = 0;
|
||||
bool bSSAA = false;
|
||||
int iEFBScale = 0;
|
||||
bool bForceFiltering = false;
|
||||
TextureFilteringMode texture_filtering_mode = TextureFilteringMode::Default;
|
||||
int iMaxAnisotropy = 0;
|
||||
std::string sPostProcessingShader;
|
||||
bool bForceTrueColor = false;
|
||||
|
Reference in New Issue
Block a user