From 4b82bb50dffb1e384d0c9708bcf331dfc8094fb3 Mon Sep 17 00:00:00 2001 From: Rachael Alexanderson <eruanna@drdteam.org> Date: Sun, 10 Sep 2017 12:12:31 -0400 Subject: [PATCH 1/6] - removed scale resolutions and added vid_scalefactor to replace them. --- src/r_videoscale.cpp | 29 +++++++++++++++-------------- wadsrc/static/language.enu | 3 +++ wadsrc/static/menudef.txt | 13 ++++++------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/r_videoscale.cpp b/src/r_videoscale.cpp index 7add7450d..f8ec6ab85 100644 --- a/src/r_videoscale.cpp +++ b/src/r_videoscale.cpp @@ -25,7 +25,7 @@ #include "c_dispatch.h" #include "c_cvars.h" -#define NUMSCALEMODES 11 +#define NUMSCALEMODES 5 namespace { @@ -41,19 +41,19 @@ namespace { // isValid, isLinear, GetScaledWidth(), GetScaledHeight(), isScaled43 { true, false, [](uint32_t Width)->uint32_t { return Width; }, [](uint32_t Height)->uint32_t { return Height; }, false }, // 0 - Native - { true, false, [](uint32_t Width)->uint32_t { return 320; }, [](uint32_t Height)->uint32_t { return 200; }, true }, // 1 - 320x200 - { true, true, [](uint32_t Width)->uint32_t { return 640; }, [](uint32_t Height)->uint32_t { return 400; }, true }, // 2 - 640x400 - { true, true, [](uint32_t Width)->uint32_t { return 1280; }, [](uint32_t Height)->uint32_t { return 800; }, true }, // 3 - 1280x800 - { false, false, nullptr, nullptr, false }, // 4 - { false, false, nullptr, nullptr, false }, // 5 - { false, false, nullptr, nullptr, false }, // 6 - { false, false, nullptr, nullptr, false }, // 7 - { true, false, [](uint32_t Width)->uint32_t { return Width / 2; }, [](uint32_t Height)->uint32_t { return Height / 2; }, false }, // 8 - Half-Res - { true, true, [](uint32_t Width)->uint32_t { return Width * 0.75; }, [](uint32_t Height)->uint32_t { return Height * 0.75; }, false }, // 9 - Res * 0.75 - { true, true, [](uint32_t Width)->uint32_t { return Width * 2; }, [](uint32_t Height)->uint32_t { return Height * 2; }, false }, // 10 - SSAAx2 + { true, true, [](uint32_t Width)->uint32_t { return Width; }, [](uint32_t Height)->uint32_t { return Height; }, false }, // 1 - Native (Linear) + { true, false, [](uint32_t Width)->uint32_t { return 320; }, [](uint32_t Height)->uint32_t { return 200; }, true }, // 2 - 320x200 + { true, false, [](uint32_t Width)->uint32_t { return 640; }, [](uint32_t Height)->uint32_t { return 400; }, true }, // 3 - 640x400 + { true, true, [](uint32_t Width)->uint32_t { return 1280; }, [](uint32_t Height)->uint32_t { return 800; }, true }, // 4 - 1280x800 }; } +CUSTOM_CVAR(Float, vid_scalefactor, 1.0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG) +{ + if (self <= 0.0 || self > 2.0) + self = 1.0; +} + CUSTOM_CVAR(Int, vid_scalemode, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG) { if (self < 0 || self >= NUMSCALEMODES || vScaleTable[self].isValid == false) @@ -64,17 +64,18 @@ CUSTOM_CVAR(Int, vid_scalemode, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG) bool ViewportLinearScale() { - return vScaleTable[vid_scalemode].isLinear; + // vid_scalefactor > 1 == forced linear scale + return (vid_scalefactor > 1.0) ? true : vScaleTable[vid_scalemode].isLinear; } int ViewportScaledWidth(int width) { - return vScaleTable[vid_scalemode].GetScaledWidth(width); + return vScaleTable[vid_scalemode].GetScaledWidth((int)((float)width * vid_scalefactor)); } int ViewportScaledHeight(int height) { - return vScaleTable[vid_scalemode].GetScaledHeight(height); + return vScaleTable[vid_scalemode].GetScaledHeight((int)((float)height * vid_scalefactor)); } bool ViewportIsScaled43() diff --git a/wadsrc/static/language.enu b/wadsrc/static/language.enu index 3c20a7bfd..95a13e513 100644 --- a/wadsrc/static/language.enu +++ b/wadsrc/static/language.enu @@ -2193,6 +2193,7 @@ VIDMNU_ASPECTRATIO = "Aspect ratio"; VIDMNU_FORCEASPECT = "Force aspect ratio"; VIDMNU_5X4ASPECTRATIO = "Enable 5:4 aspect ratio"; VIDMNU_SCALEMODE = "Resolution scale"; +VIDMNU_SCALEFACTOR = "Scale Factor"; VIDMNU_ENTERTEXT = "Press ENTER to set mode"; VIDMNU_TESTTEXT1 = "T to test mode for 5 seconds"; VIDMNU_TESTTEXT2 = "Please wait 5 seconds..."; @@ -2378,6 +2379,8 @@ OPTVAL_VTFZDOOM = "ZDoom (Forced)"; OPTVAL_VTFVANILLA = "Vanilla (Forced)"; OPTVAL_VTAZDOOM = "Auto (ZDoom Preferred)"; OPTVAL_VTAVANILLA = "Auto (Vanilla Preferred)"; +OPTVAL_SCALENEAREST = "Scaled (Nearest)"; +OPTVAL_SCALELINEAR = "Scaled (Linear)"; // Colors C_BRICK = "\cabrick"; diff --git a/wadsrc/static/menudef.txt b/wadsrc/static/menudef.txt index 59c7946cb..38b447d44 100644 --- a/wadsrc/static/menudef.txt +++ b/wadsrc/static/menudef.txt @@ -1858,13 +1858,11 @@ OptionValue RatiosTFT } OptionValue ScaleModes { - 0, "$OPTVAL_OFF" - 1, "320x200" - 2, "640x400" - 3, "1280x800" - 8, "0.5x" - 9, "0.75x" - 10, "2x SSAA" + 0, "$OPTVAL_SCALENEAREST" + 1, "$OPTVAL_SCALELINEAR" + 2, "320x200" + 3, "640x400" + 4, "1280x800" } OptionMenu VideoModeMenu protected @@ -1880,6 +1878,7 @@ OptionMenu VideoModeMenu protected Option "$VIDMNU_FORCEASPECT", "vid_aspect", "ForceRatios" Option "$VIDMNU_5X4ASPECTRATIO", "vid_tft", "YesNo" Option "$VIDMNU_SCALEMODE", "vid_scalemode", "ScaleModes" + Slider "$VIDMNU_SCALEFACTOR", "vid_scalefactor", 0.25, 2.0, 0.25, 2 StaticText " " ScreenResolution "res_0" ScreenResolution "res_1" From ea5cffdc819d80bd97fdfb771d7acc92739d01d5 Mon Sep 17 00:00:00 2001 From: nashmuhandes <nashbackslash@gmail.com> Date: Wed, 30 Aug 2017 09:22:01 +0800 Subject: [PATCH 2/6] Added shadowmap quality setting to the dynamic light options menu. --- wadsrc/static/language.enu | 15 ++++++++------- wadsrc/static/menudef.txt | 25 ++++++++++++++++++------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/wadsrc/static/language.enu b/wadsrc/static/language.enu index 95a13e513..8448665db 100644 --- a/wadsrc/static/language.enu +++ b/wadsrc/static/language.enu @@ -2688,13 +2688,14 @@ GLTEXMNU_TRIMSPREDGE = "Trim sprite edges"; GLTEXMNU_SORTDRAWLIST = "Sort draw lists by texture"; // Dynamic Light Options -GLLIGHTMNU_TITLE = "DYNAMIC LIGHTS"; -GLLIGHTMNU_LIGHTSENABLED = "Dynamic Lights (OpenGL)"; -GLLIGHTMNU_LIGHTDEFS = "Enable light definitions"; -GLLIGHTMNU_CLIPLIGHTS = "Clip lights"; -GLLIGHTMNU_LIGHTSPRITES = "Lights affect sprites"; -GLLIGHTMNU_LIGHTPARTICLES = "Lights affect particles"; -GLLIGHTMNU_LIGHTSHADOWMAP = "Light shadowmaps"; +GLLIGHTMNU_TITLE = "DYNAMIC LIGHTS"; +GLLIGHTMNU_LIGHTSENABLED = "Dynamic Lights (OpenGL)"; +GLLIGHTMNU_LIGHTDEFS = "Enable light definitions"; +GLLIGHTMNU_CLIPLIGHTS = "Clip lights"; +GLLIGHTMNU_LIGHTSPRITES = "Lights affect sprites"; +GLLIGHTMNU_LIGHTPARTICLES = "Lights affect particles"; +GLLIGHTMNU_LIGHTSHADOWMAP = "Light shadowmaps"; +GLLIGHTMNU_LIGHTSHADOWMAPQUALITY = "Shadowmap quality"; // OpenGL Preferences GLPREFMNU_TITLE = "OPENGL PREFERENCES"; diff --git a/wadsrc/static/menudef.txt b/wadsrc/static/menudef.txt index 38b447d44..f9627516a 100644 --- a/wadsrc/static/menudef.txt +++ b/wadsrc/static/menudef.txt @@ -2127,6 +2127,16 @@ OptionValue VRMode 7, "$OPTVAL_QUADBUFFERED" } +OptionValue ShadowMapQuality +{ + 32, "32" + 64, "64" + 128, "128" + 256, "256" + 512, "512" + 1024, "1024" +} + OptionMenu "GLTextureGLOptions" protected { Title "$GLTEXMNU_TITLE" @@ -2147,13 +2157,14 @@ OptionMenu "GLTextureGLOptions" protected OptionMenu "GLLightOptions" protected { Title "$GLLIGHTMNU_TITLE" - Option "$TCMNU_DYNLIGHTS", "r_dynlights", "OnOff" - Option "$GLLIGHTMNU_LIGHTSENABLED", gl_lights, "OnOff" - Option "$GLLIGHTMNU_LIGHTDEFS", gl_attachedlights, "YesNo" - Option "$GLLIGHTMNU_CLIPLIGHTS", gl_lights_checkside, "YesNo" - Option "$GLLIGHTMNU_LIGHTSPRITES", gl_light_sprites, "YesNo" - Option "$GLLIGHTMNU_LIGHTPARTICLES", gl_light_particles, "YesNo" - Option "$GLLIGHTMNU_LIGHTSHADOWMAP", gl_light_shadowmap, "YesNo" + Option "$TCMNU_DYNLIGHTS", "r_dynlights", "OnOff" + Option "$GLLIGHTMNU_LIGHTSENABLED", gl_lights, "OnOff" + Option "$GLLIGHTMNU_LIGHTDEFS", gl_attachedlights, "YesNo" + Option "$GLLIGHTMNU_CLIPLIGHTS", gl_lights_checkside, "YesNo" + Option "$GLLIGHTMNU_LIGHTSPRITES", gl_light_sprites, "YesNo" + Option "$GLLIGHTMNU_LIGHTPARTICLES", gl_light_particles, "YesNo" + Option "$GLLIGHTMNU_LIGHTSHADOWMAP", gl_light_shadowmap, "YesNo" + Option "$GLLIGHTMNU_LIGHTSHADOWMAPQUALITY", gl_shadowmap_quality, "ShadowMapQuality" } OptionMenu "OpenGLOptions" protected From 3ff15976405b53d052007af96e4a134b98fca1a4 Mon Sep 17 00:00:00 2001 From: nashmuhandes <nashbackslash@gmail.com> Date: Thu, 31 Aug 2017 09:46:52 +0800 Subject: [PATCH 3/6] Change minimum shadowmap quality to 128. --- src/gl/dynlights/gl_shadowmap.cpp | 2 -- wadsrc/static/menudef.txt | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/gl/dynlights/gl_shadowmap.cpp b/src/gl/dynlights/gl_shadowmap.cpp index 0f493b751..e472635fd 100644 --- a/src/gl/dynlights/gl_shadowmap.cpp +++ b/src/gl/dynlights/gl_shadowmap.cpp @@ -86,8 +86,6 @@ CUSTOM_CVAR(Int, gl_shadowmap_quality, 128, CVAR_ARCHIVE | CVAR_GLOBALCONFIG) { switch (self) { - case 32: - case 64: case 128: case 256: case 512: diff --git a/wadsrc/static/menudef.txt b/wadsrc/static/menudef.txt index f9627516a..729a914eb 100644 --- a/wadsrc/static/menudef.txt +++ b/wadsrc/static/menudef.txt @@ -2129,8 +2129,6 @@ OptionValue VRMode OptionValue ShadowMapQuality { - 32, "32" - 64, "64" 128, "128" 256, "256" 512, "512" From d80f9634e3973339c6d26ea3bbed12fc859c5477 Mon Sep 17 00:00:00 2001 From: nashmuhandes <nashbackslash@gmail.com> Date: Thu, 31 Aug 2017 09:48:10 +0800 Subject: [PATCH 4/6] Change default shadowmap quality to 512 at dpJudas's advice (https://forum.zdoom.org/viewtopic.php?p=1016143#p1016143) --- src/gl/dynlights/gl_shadowmap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gl/dynlights/gl_shadowmap.cpp b/src/gl/dynlights/gl_shadowmap.cpp index e472635fd..4ef06efa3 100644 --- a/src/gl/dynlights/gl_shadowmap.cpp +++ b/src/gl/dynlights/gl_shadowmap.cpp @@ -82,7 +82,7 @@ ADD_STAT(shadowmap) return out; } -CUSTOM_CVAR(Int, gl_shadowmap_quality, 128, CVAR_ARCHIVE | CVAR_GLOBALCONFIG) +CUSTOM_CVAR(Int, gl_shadowmap_quality, 512, CVAR_ARCHIVE | CVAR_GLOBALCONFIG) { switch (self) { From f5f7cd9fed688d0cb06d192997a9b941c9d4bc76 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" <alexey.lysiuk@gmail.com> Date: Mon, 11 Sep 2017 12:22:22 +0300 Subject: [PATCH 5/6] Fixed broken FOV in SetCameraToTexture() ACS function --- src/p_acs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/p_acs.cpp b/src/p_acs.cpp index ce21871a6..2dfbec49b 100644 --- a/src/p_acs.cpp +++ b/src/p_acs.cpp @@ -10041,7 +10041,7 @@ scriptwait: } else { - FCanvasTextureInfo::Add (camera, picnum, ACSToDouble(STACK(1))); + FCanvasTextureInfo::Add (camera, picnum, STACK(1)); } } sp -= 3; From 3e12884720c0e812e653b5ef433ec4b7dfcdcc1e Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" <alexey.lysiuk@gmail.com> Date: Mon, 11 Sep 2017 13:14:34 +0300 Subject: [PATCH 6/6] Updated Travis CI configuration to use Clang 5.0 --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3de14e1d9..7bfb4c527 100644 --- a/.travis.yml +++ b/.travis.yml @@ -56,15 +56,15 @@ matrix: - os: linux compiler: clang env: - - CLANG_VERSION=4.0 + - CLANG_VERSION=5.0 - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=MinSizeRel -DDYN_OPENAL=NO -DDYN_SNDFILE=NO -DDYN_MPG123=NO -DDYN_FLUIDSYNTH=NO" addons: apt: sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-4.0 + - llvm-toolchain-trusty-5.0 packages: - - clang-4.0 + - clang-5.0 - libstdc++-5-dev - libsdl2-dev - libgme-dev