Improve undersampling settings

The setting now accepts values between 1 and 8 in the
Advanced Settings menu.
Values 0 and 1 now behave the same way (setting it to 1 won't
disable MSAA anymore), so there's no need to expose 0 as a value.

This closes #8939.
This commit is contained in:
Hugo Locurcio 2019-09-17 06:13:17 +02:00 committed by SmallJoker
parent e0a85fae01
commit 05a7da6279
2 changed files with 8 additions and 7 deletions

@ -508,10 +508,11 @@ texture_min_size (Minimum texture size) int 64
# when set to higher number than 0.
fsaa (FSAA) enum 0 0,1,2,4,8,16
# Undersampling is similar to using lower screen resolution, but it applies
# Undersampling is similar to using a lower screen resolution, but it applies
# to the game world only, keeping the GUI intact.
# It should give significant performance boost at the cost of less detailed image.
undersampling (Undersampling) enum 0 0,2,3,4
# It should give a significant performance boost at the cost of less detailed image.
# Higher values result in a less detailed image.
undersampling (Undersampling) int 1 1 8
[**Shaders]

@ -35,7 +35,7 @@ RenderingCorePlain::RenderingCorePlain(
void RenderingCorePlain::initTextures()
{
if (!scale)
if (scale <= 1)
return;
v2u32 size{scaledown(scale, screensize.X), scaledown(scale, screensize.Y)};
lowres = driver->addRenderTargetTexture(
@ -44,21 +44,21 @@ void RenderingCorePlain::initTextures()
void RenderingCorePlain::clearTextures()
{
if (!scale)
if (scale <= 1)
return;
driver->removeTexture(lowres);
}
void RenderingCorePlain::beforeDraw()
{
if (!scale)
if (scale <= 1)
return;
driver->setRenderTarget(lowres, true, true, skycolor);
}
void RenderingCorePlain::upscale()
{
if (!scale)
if (scale <= 1)
return;
driver->setRenderTarget(0, true, true);
v2u32 size{scaledown(scale, screensize.X), scaledown(scale, screensize.Y)};