Major MariFX update:

- Complete RetroFX filter (downscale+palette).
 - Additional palettes, extending to the full range of 64.
 - Localization support (just English for now).
 - Better slider input (shift for 10x increments, alt for 5x increments)
 - Use nosave cvars for performance and so they don't end up in savegames.
 - A lot of cleanup.
This commit is contained in:
Marisa the Magician 2021-10-07 19:51:47 +02:00
commit 232ec85941
19 changed files with 689 additions and 591 deletions

View file

@ -1,94 +1,102 @@
user bool mfx_lsharpenable = false;
user float mfx_lsharpradius = 0.8;
user float mfx_lsharpclamp = 0.05;
user float mfx_lsharpblend = 6.0;
nosave bool mfx_lsharpenable = false;
nosave float mfx_lsharpradius = .8;
nosave float mfx_lsharpclamp = .05;
nosave float mfx_lsharpblend = 6.;
user bool mfx_ne = false;
user float mfx_ni = 0.05;
user float mfx_ns = 0.0;
user float mfx_np = 4.0;
user float mfx_bnp = 1.5;
user int mfx_nb = 2;
nosave bool mfx_ne = false;
nosave float mfx_ni = .05;
nosave float mfx_ns = 0.;
nosave float mfx_np = 4.;
nosave float mfx_bnp = 1.5;
nosave int mfx_nb = 2;
user bool mfx_dirtenable = false;
user float mfx_dirtcfactor = 0.05;
user float mfx_dirtmc = 4.0;
nosave bool mfx_dirtenable = false;
nosave float mfx_dirtcfactor = .05;
nosave float mfx_dirtmc = 4.;
user bool mfx_gradeenable = false;
user float mfx_grademul_r = 1.0;
user float mfx_grademul_g = 1.0;
user float mfx_grademul_b = 1.0;
user float mfx_gradepow_r = 1.0;
user float mfx_gradepow_g = 1.0;
user float mfx_gradepow_b = 1.0;
user float mfx_gradecol_r = 1.0;
user float mfx_gradecol_g = 1.0;
user float mfx_gradecol_b = 1.0;
user float mfx_gradecolfact = 0.0;
user float mfx_gradesatmul = 1.0;
user float mfx_gradesatpow = 1.0;
user float mfx_gradevalmul = 1.0;
user float mfx_gradevalpow = 1.0;
nosave bool mfx_gradeenable = false;
nosave float mfx_grademul_r = 1.;
nosave float mfx_grademul_g = 1.;
nosave float mfx_grademul_b = 1.;
nosave float mfx_gradepow_r = 1.;
nosave float mfx_gradepow_g = 1.;
nosave float mfx_gradepow_b = 1.;
nosave float mfx_gradecol_r = 1.;
nosave float mfx_gradecol_g = 1.;
nosave float mfx_gradecol_b = 1.;
nosave float mfx_gradecolfact = 0.;
nosave float mfx_gradesatmul = 1.;
nosave float mfx_gradesatpow = 1.;
nosave float mfx_gradevalmul = 1.;
nosave float mfx_gradevalpow = 1.;
user bool mfx_cmatenable = false;
user float mfx_cmat_rr = 1.0;
user float mfx_cmat_rg = 0.0;
user float mfx_cmat_rb = 0.0;
user float mfx_cmat_gr = 0.0;
user float mfx_cmat_gg = 1.0;
user float mfx_cmat_gb = 0.0;
user float mfx_cmat_br = 0.0;
user float mfx_cmat_bg = 0.0;
user float mfx_cmat_bb = 1.0;
nosave bool mfx_cmatenable = false;
nosave float mfx_cmat_rr = 1.;
nosave float mfx_cmat_rg = 0.;
nosave float mfx_cmat_rb = 0.;
nosave float mfx_cmat_gr = 0.;
nosave float mfx_cmat_gg = 1.;
nosave float mfx_cmat_gb = 0.;
nosave float mfx_cmat_br = 0.;
nosave float mfx_cmat_bg = 0.;
nosave float mfx_cmat_bb = 1.;
user bool mfx_hsenable = false;
user float mfx_hsover = 0.0;
user float mfx_hshue_a = 0.0;
user float mfx_hssat_a = 0.0;
user float mfx_hsval_a = 0.0;
user float mfx_hshue_r = 0.0;
user float mfx_hssat_r = 0.0;
user float mfx_hsval_r = 0.0;
user float mfx_hshue_y = 0.0;
user float mfx_hssat_y = 0.0;
user float mfx_hsval_y = 0.0;
user float mfx_hshue_g = 0.0;
user float mfx_hssat_g = 0.0;
user float mfx_hsval_g = 0.0;
user float mfx_hshue_c = 0.0;
user float mfx_hssat_c = 0.0;
user float mfx_hsval_c = 0.0;
user float mfx_hshue_b = 0.0;
user float mfx_hssat_b = 0.0;
user float mfx_hsval_b = 0.0;
user float mfx_hshue_m = 0.0;
user float mfx_hssat_m = 0.0;
user float mfx_hsval_m = 0.0;
nosave bool mfx_hsenable = false;
nosave float mfx_hsover = 0.;
nosave float mfx_hshue_a = 0.;
nosave float mfx_hssat_a = 0.;
nosave float mfx_hsval_a = 0.;
nosave float mfx_hshue_r = 0.;
nosave float mfx_hssat_r = 0.;
nosave float mfx_hsval_r = 0.;
nosave float mfx_hshue_y = 0.;
nosave float mfx_hssat_y = 0.;
nosave float mfx_hsval_y = 0.;
nosave float mfx_hshue_g = 0.;
nosave float mfx_hssat_g = 0.;
nosave float mfx_hsval_g = 0.;
nosave float mfx_hshue_c = 0.;
nosave float mfx_hssat_c = 0.;
nosave float mfx_hsval_c = 0.;
nosave float mfx_hshue_b = 0.;
nosave float mfx_hssat_b = 0.;
nosave float mfx_hsval_b = 0.;
nosave float mfx_hshue_m = 0.;
nosave float mfx_hssat_m = 0.;
nosave float mfx_hsval_m = 0.;
user bool mfx_bssblurenable = false;
user float mfx_bssblurradius = 0.15;
user bool mfx_bsssharpenable = false;
user float mfx_bsssharpradius = 1.0;
user float mfx_bsssharpamount = 2.0;
user bool mfx_bssshiftenable = false;
user float mfx_bssshiftradius = 0.75;
nosave bool mfx_bssblurenable = false;
nosave float mfx_bssblurradius = .15;
nosave bool mfx_bsssharpenable = false;
nosave float mfx_bsssharpradius = 1.;
nosave float mfx_bsssharpamount = 2.;
nosave bool mfx_bssshiftenable = false;
nosave float mfx_bssshiftradius = .75;
user bool mfx_bblurenable = false;
user float mfx_bblurpow = 1.0;
user float mfx_bblurmul = 1.0;
user float mfx_bblurbump = 0.0;
user float mfx_bblurradius = 1.0;
nosave bool mfx_bblurenable = false;
nosave float mfx_bblurpow = 1.;
nosave float mfx_bblurmul = 1.;
nosave float mfx_bblurbump = 0.;
nosave float mfx_bblurradius = 1.;
user bool mfx_vigenable = false;
user float mfx_vigcolor_r = 0.0;
user float mfx_vigcolor_g = 0.0;
user float mfx_vigcolor_b = 0.0;
user float mfx_vigpow = 4.0;
user float mfx_vigmul = 0.75;
user float mfx_vigbump = 0.0;
user int mfx_vigshape = 1;
user int mfx_vigmode = 0;
nosave bool mfx_vigenable = false;
nosave float mfx_vigcolor_r = 0.;
nosave float mfx_vigcolor_g = 0.;
nosave float mfx_vigcolor_b = 0.;
nosave float mfx_vigpow = 4.;
nosave float mfx_vigmul = .75;
nosave float mfx_vigbump = 0.;
nosave int mfx_vigshape = 1;
nosave int mfx_vigmode = 0;
user bool mfx_palenable = false;
user int mfx_palnum = 0;
user float mfx_paldither = 0.05;
nosave bool mfx_retroenable = false;
nosave int mfx_retroscalemode = 0;
nosave int mfx_bres_x = 640;
nosave int mfx_bres_y = 480;
nosave float mfx_bscl_x = .5;
nosave float mfx_bscl_y = .5;
nosave bool mfx_palenable = false;
nosave int mfx_palnum = 0;
nosave float mfx_palsat = 1.;
nosave float mfx_palpow = 1.;
nosave float mfx_paldither = .05;

View file

@ -128,11 +128,21 @@ HardwareShader postprocess scene
Texture VignetteTexture "textures/mfxvig.png"
}
HardwareShader postprocess scene
{
Name "mfx_retrofx"
Shader "shaders/glsl/mfx_retrofx.fp" 330
Uniform vec2 bresl
}
HardwareShader postprocess scene
{
Name "mfx_palette"
Shader "shaders/glsl/mfx_palette.fp" 330
Texture PalLUTTexture "textures/mfxpal.png"
Uniform vec2 sfact
Uniform float palsat
Uniform float palpow
Uniform float paldither
Uniform int palnum
}

View file

@ -9,6 +9,10 @@ MFX_VIGSHAPE3="Texture";
MFX_VIGMODE1="Translucent";
MFX_VIGMODE2="Add";
MFX_VIGMODE3="Multiply";
MFX_SCLMODE1="Clean Scale";
MFX_SCLMODE2="OptClean Scale";
MFX_SCLMODE3="Scale Factor";
MFX_SCLMODE4="Resolution";
MFX_PALETTE1="Doom";
MFX_PALETTE2="Heretic";
MFX_PALETTE3="Hexen";
@ -44,11 +48,132 @@ MFX_PALETTE32="Web Palette";
MFX_PALETTE33="Unreal";
MFX_PALETTE34="Unreal (Purple)";
MFX_PALETTE35="Unreal (Tinted)";
MFX_PALETTE36="SWWM GZ";
MFX_PALETTE37="UNDEATH";
MFX_PALETTE38="NES";
MFX_PALETTE39="Atari 2600";
MFX_PALETTE40="Ice Tea (RGB)";
MFX_PALETTE41="Ice Tea (sRGB)";
MFX_PALETTE42="Ice Tea (LXN)";
MFX_PALETTE43="Rainbow #1";
MFX_PALETTE44="Rainbow #2";
MFX_PALETTE45="Rainbow #3";
MFX_PALETTE46="Rainbow #4";
MFX_PALETTE47="Rainbow #5";
MFX_PALETTE48="Rainbow #6";
MFX_PALETTE49="Rainbow #7";
MFX_PALETTE50="Rainbow #8";
MFX_PALETTE51="Gradient #1";
MFX_PALETTE52="Gradient #2";
MFX_PALETTE53="Gradient #3";
MFX_PALETTE54="Gradient #4";
MFX_PALETTE55="Gradient #5";
MFX_PALETTE56="Gradient #6";
MFX_PALETTE57="Gradient #7";
MFX_PALETTE58="Gradient #8";
MFX_PALETTE59="RGB1";
MFX_PALETTE60="RGB2";
MFX_PALETTE61="RGB3";
MFX_PALETTE62="RGB4";
MFX_PALETTE63="RGB5";
MFX_PALETTE64="RGB6";
MFX_ENABLE="Enable";
MFX_RESET="Reset to Default";
MFX_LUMASHARPEN="Luma Sharpen";
MFX_LSHARPRADIUS="Sharpen Radius";
MFX_LSHARPTRESHOLD="Sharpen Threshold";
MFX_LSHARPSTRENGTH="Sharpen Strength";
[es]
MFX_GRAIN="Film Grain";
MFX_NI="Grain Intensity";
MFX_NS="Grain Saturation";
MFX_NP="Grain Contrast";
MFX_NB="Grain Blend Mode";
MFX_BNP="Grain Dark Mask Contrast";
MFX_DIRT="Screen Dirt";
MFX_DIRTMC="Dirt Scale";
MFX_DIRTCFACTOR="Dirt Intensity";
MFX_GRADE="Color Grading";
MFX_GRADEMUL_R="Red Intensity";
MFX_GRADEMUL_G="Green Intensity";
MFX_GRADEMUL_B="Blue Intensity";
MFX_GRADEPOW_R="Red Gamma";
MFX_GRADEPOW_G="Green Gamma";
MFX_GRADEPOW_B="Blue Gamma";
MFX_GRADECOL_R="Red Tint";
MFX_GRADECOL_G="Green Tint";
MFX_GRADECOL_B="Blue Tint";
MFX_GRADECOLFACT="Tint Factor";
MFX_GRADESATMUL="Saturation Intensity";
MFX_GRADESATPOW="Saturation Gamma";
MFX_GRADEVALMUL="Value Intensity";
MFX_GRADEVALPOW="Value Gamma";
MFX_CMAT="Color Matrix";
MFX_CMAT_RR="Red→Red";
MFX_CMAT_RG="Red→Green";
MFX_CMAT_RB="Red→Blue";
MFX_CMAT_GR="Green→Red";
MFX_CMAT_GG="Green→Green";
MFX_CMAT_GB="Green→Blue";
MFX_CMAT_BR="Blue→Red";
MFX_CMAT_BG="Blue→Green";
MFX_CMAT_BB="Blue→Blue";
MFX_HUESAT="Hue-Saturation";
MFX_HSOVER="Overlap";
MFX_HSHUE_A="Master Hue";
MFX_HSSAT_A="Master Saturation";
MFX_HSVAL_A="Master Value";
MFX_HSHUE_R="Red Hue";
MFX_HSSAT_R="Red Saturation";
MFX_HSVAL_R="Red Value";
MFX_HSHUE_Y="Yellow Hue";
MFX_HSSAT_Y="Yellow Saturation";
MFX_HSVAL_Y="Yellow Value";
MFX_HSHUE_G="Green Hue";
MFX_HSSAT_G="Green Saturation";
MFX_HSVAL_G="Green Value";
MFX_HSHUE_C="Cyan Hue";
MFX_HSSAT_C="Cyan Saturation";
MFX_HSVAL_C="Cyan Value";
MFX_HSHUE_B="Blue Hue";
MFX_HSSAT_B="Blue Saturation";
MFX_HSVAL_B="Blue Value";
MFX_HSHUE_M="Magenta Hue";
MFX_HSSAT_M="Magenta Saturation";
MFX_HSVAL_M="Magenta Value";
MFX_BSS="BlurSharpShift";
MFX_BSS_1="(Some pretentious schmucks";
MFX_BSS_2="claim this \"enhances\" the visuals)";
MFX_BSSBLURENABLE="Blur Enable";
MFX_BSSBLURRADIUS="BlurRadius";
MFX_BSSSHARPENABLE="Sharp Enable";
MFX_BSSSHARPRADIUS="Sharp Radius";
MFX_BSSSHARPAMOUNT="Sharp Amount";
MFX_BSSSHIFTENABLE="Shift Enable";
MFX_BSSSHIFTRADIUS="Shift Radius";
MFX_VIGBBLUR="Vignette / Border Blur";
MFX_VIGENABLE="Enable Vignette";
MFX_VIGCOLOR_R="Vignette Red";
MFX_VIGCOLOR_G="Vignette Green";
MFX_VIGCOLOR_B="Vignette Blue";
MFX_VIGPOW="Vignette Gamma";
MFX_VIGMUL="Vignette Intensity";
MFX_VIGBUMP="Vignette Offset";
MFX_VIGSHAPE="Vignette Shape";
MFX_VIGMODE="Vignette Mode";
MFX_BBLURENABLE="Enable Blur";
MFX_BBLURPOW="Blur Gamma";
MFX_BBLURMUL="Blur Intensity";
MFX_BBLURBUMP="Blur Offset";
MFX_BBLURRADIUS="Blur Radius";
MFX_RETROFX="Retro FX";
MFX_RETROENABLE="Enable Downscale";
MFX_RETROSCALEMODE="Scaling Mode";
MFX_BRESX="Horizontal Resolution";
MFX_BRESY="Vertical Resolution";
MFX_BSCLX="Horizontal Scale";
MFX_BSCLY="Vertical Scale";
MFX_PALENABLE="Enable Palette";
MFX_PALNUM="Palette";
MFX_PALSAT="Saturation";
MFX_PALPOW="Gamma";
MFX_PALDITHER="Dithering";

View file

@ -1,6 +1,9 @@
AddOptionMenu "OptionsMenu"
{
StaticText " "
SubMenu "$MFX_TITLE", "MFXOptionsMenu"
}
AddOptionMenu "OptionsMenuSimple"
{
SubMenu "$MFX_TITLE", "MFXOptionsMenu"
}
@ -25,6 +28,14 @@ OptionValue "MFXVigMode"
2, "$MFX_VIGMODE3"
}
OptionValue "MFXScaleMode"
{
0, "$MFX_SCLMODE1"
1, "$MFX_SCLMODE2"
2, "$MFX_SCLMODE3"
3, "$MFX_SCLMODE4"
}
OptionValue "MFXPalette"
{
0, "$MFX_PALETTE1"
@ -62,133 +73,171 @@ OptionValue "MFXPalette"
32, "$MFX_PALETTE33"
33, "$MFX_PALETTE34"
34, "$MFX_PALETTE35"
35, "$MFX_PALETTE36"
36, "$MFX_PALETTE37"
37, "$MFX_PALETTE38"
38, "$MFX_PALETTE39"
39, "$MFX_PALETTE40"
40, "$MFX_PALETTE41"
41, "$MFX_PALETTE42"
42, "$MFX_PALETTE43"
43, "$MFX_PALETTE44"
44, "$MFX_PALETTE45"
45, "$MFX_PALETTE46"
46, "$MFX_PALETTE47"
47, "$MFX_PALETTE48"
48, "$MFX_PALETTE49"
49, "$MFX_PALETTE50"
50, "$MFX_PALETTE51"
51, "$MFX_PALETTE52"
52, "$MFX_PALETTE53"
53, "$MFX_PALETTE54"
54, "$MFX_PALETTE55"
55, "$MFX_PALETTE56"
56, "$MFX_PALETTE57"
57, "$MFX_PALETTE58"
58, "$MFX_PALETTE59"
59, "$MFX_PALETTE60"
60, "$MFX_PALETTE61"
61, "$MFX_PALETTE62"
62, "$MFX_PALETTE63"
63, "$MFX_PALETTE64"
}
OptionMenu "MFXOptionsMenu"
{
Class MFXOptionMenu
Title "$MFX_TITLE"
StaticText " "
StaticText "Luma Sharpen", "Gold"
StaticText "$MFX_LUMASHARPEN", "Gold"
StaticText " "
Option "Enable", "mfx_lsharpenable", "YesNo"
Slider "Sharpen Radius", "mfx_lsharpradius", 0, 1, 0.01, 2
Slider "Sharpen Threshold", "mfx_lsharpclamp", 0, 1, 0.01, 2
Slider "Sharpen Strength", "mfx_lsharpblend", 0, 10, 0.1, 1
SafeCommand "Reset to Default", "event resetmfxvars 8"
Option "$MFX_ENABLE", "mfx_lsharpenable", "YesNo"
MFXSlider "$MFX_LSHARPRADIUS", "mfx_lsharpradius", 0, 1, 0.01, 2
MFXSlider "$MFX_LSHARPTRESHOLD", "mfx_lsharpclamp", 0, 1, 0.01, 2
MFXSlider "$MFX_LSHARPSTRENGTH", "mfx_lsharpblend", 0, 10, 0.1, 1
SafeCommand "$MFX_RESET", "event resetmfxvars 8"
StaticText " "
StaticText "Film Grain", "Gold"
StaticText "$MFX_GRAIN", "Gold"
StaticText " "
Option "Enable", "mfx_ne", "YesNo"
Slider "Grain Intensity", "mfx_ni", 0, 1, 0.01, 2
Slider "Grain Saturation", "mfx_ns", -1, 1, 0.01, 2
Slider "Grain Contrast", "mfx_np", 0.5, 8, 0.01, 2
Option "Grain Blend Mode", "mfx_nb", "MFXGrainBlend"
Slider "Grain Dark Mask Contrast", "mfx_bnp", 0.5, 10, 0.01, 2
SafeCommand "Reset to Default", "event resetmfxvars 0"
Option "$MFX_ENABLE", "mfx_ne", "YesNo"
MFXSlider "$MFX_NI", "mfx_ni", 0, 1, 0.01, 2
MFXSlider "$MFX_NS", "mfx_ns", -1, 1, 0.01, 2
MFXSlider "$MFX_NP", "mfx_np", 0.5, 8, 0.01, 2
Option "$MFX_NB", "mfx_nb", "MFXGrainBlend"
MFXSlider "$MFX_BNP", "mfx_bnp", 0.5, 10, 0.01, 2
SafeCommand "$MFX_RESET", "event resetmfxvars 0"
StaticText " "
StaticText "Screen Dirt", "Gold"
StaticText "$MFX_DIRT", "Gold"
StaticText " "
Option "Enable", "mfx_dirtenable", "YesNo"
Slider "Dirt Scale", "mfx_dirtmc", 1, 8, 1, 0
Slider "Dirt Intensity", "mfx_dirtcfactor", 0, 1, 0.01, 2
SafeCommand "Reset to Default", "event resetmfxvars 1"
Option "$MFX_ENABLE", "mfx_dirtenable", "YesNo"
MFXSlider "$MFX_DIRTMC", "mfx_dirtmc", 1, 8, 1, 0
MFXSlider "$MFX_DIRTCFACTOR", "mfx_dirtcfactor", 0, 1, 0.01, 2
SafeCommand "$MFX_RESET", "event resetmfxvars 1"
StaticText " "
StaticText "Color Grading", "Gold"
StaticText "$MFX_GRADE", "Gold"
StaticText " "
Option "Enable", "mfx_gradeenable", "YesNo"
Slider "Red Intensity", "mfx_grademul_r", 0, 2, 0.01, 2
Slider "Green Intensity", "mfx_grademul_g", 0, 2, 0.01, 2
Slider "Blue Intensity", "mfx_grademul_b", 0, 2, 0.01, 2
Slider "Red Gamma", "mfx_gradepow_r", 0, 2, 0.01, 2
Slider "Green Gamma", "mfx_gradepow_g", 0, 2, 0.01, 2
Slider "Blue Gamma", "mfx_gradepow_b", 0, 2, 0.01, 2
Slider "Red Tint", "mfx_gradecol_r", -1, 1, 0.01, 2
Slider "Green Tint", "mfx_gradecol_g", -1, 1, 0.01, 2
Slider "Blue Tint", "mfx_gradecol_b", -1, 1, 0.01, 2
Slider "Tint Factor", "mfx_gradecolfact", -1, 1, 0.01, 2
Slider "Saturation Intensity", "mfx_gradesatmul", 0, 2, 0.01, 2
Slider "Saturation Gamma", "mfx_gradesatpow", 0, 2, 0.01, 2
Slider "Value Intensity", "mfx_gradevalmul", 0, 2, 0.01, 2
Slider "Value Gamma", "mfx_gradevalpow", 0, 2, 0.01, 2
SafeCommand "Reset to Default", "event resetmfxvars 2"
Option "$MFX_ENABLE", "mfx_gradeenable", "YesNo"
MFXSlider "$MFX_GRADEMUL_R", "mfx_grademul_r", 0, 2, 0.01, 2
MFXSlider "$MFX_GRADEMUL_G", "mfx_grademul_g", 0, 2, 0.01, 2
MFXSlider "$MFX_GRADEMUL_B", "mfx_grademul_b", 0, 2, 0.01, 2
MFXSlider "$MFX_GRADEPOW_R", "mfx_gradepow_r", 0, 2, 0.01, 2
MFXSlider "$MFX_GRADEPOW_G", "mfx_gradepow_g", 0, 2, 0.01, 2
MFXSlider "$MFX_GRADEPOW_B", "mfx_gradepow_b", 0, 2, 0.01, 2
MFXSlider "$MFX_GRADECOL_R", "mfx_gradecol_r", -1, 1, 0.01, 2
MFXSlider "$MFX_GRADECOL_G", "mfx_gradecol_g", -1, 1, 0.01, 2
MFXSlider "$MFX_GRADECOL_B", "mfx_gradecol_b", -1, 1, 0.01, 2
MFXSlider "$MFX_GRADECOLFACT", "mfx_gradecolfact", -1, 1, 0.01, 2
MFXSlider "$MFX_GRADESATMUL", "mfx_gradesatmul", 0, 2, 0.01, 2
MFXSlider "$MFX_GRADESATPOW", "mfx_gradesatpow", 0, 2, 0.01, 2
MFXSlider "$MFX_GRADEVALMUL", "mfx_gradevalmul", 0, 2, 0.01, 2
MFXSlider "$MFX_GRADEVALPOW", "mfx_gradevalpow", 0, 2, 0.01, 2
SafeCommand "$MFX_RESET", "event resetmfxvars 2"
StaticText " "
StaticText "Color Matrix", "Gold"
StaticText "$MFX_CMAT", "Gold"
StaticText " "
Option "Enable", "mfx_cmatenable", "YesNo"
Slider "Red->Red", "mfx_cmat_rr", -2, 2, 0.01, 2
Slider "Red->Green", "mfx_cmat_rg", -2, 2, 0.01, 2
Slider "Red->Blue", "mfx_cmat_rb", -2, 2, 0.01, 2
Slider "Green->Red", "mfx_cmat_gr", -2, 2, 0.01, 2
Slider "Green->Green", "mfx_cmat_gg", -2, 2, 0.01, 2
Slider "Green->Blue", "mfx_cmat_gb", -2, 2, 0.01, 2
Slider "Blue->Red", "mfx_cmat_br", -2, 2, 0.01, 2
Slider "Blue->Green", "mfx_cmat_bg", -2, 2, 0.01, 2
Slider "Blue->Blue", "mfx_cmat_bb", -2, 2, 0.01, 2
SafeCommand "Reset to Default", "event resetmfxvars 3"
Option "$MFX_ENABLE", "mfx_cmatenable", "YesNo"
MFXSlider "$MFX_CMAT_RR", "mfx_cmat_rr", -2, 2, 0.01, 2
MFXSlider "$MFX_CMAT_RG", "mfx_cmat_rg", -2, 2, 0.01, 2
MFXSlider "$MFX_CMAT_RB", "mfx_cmat_rb", -2, 2, 0.01, 2
MFXSlider "$MFX_CMAT_GR", "mfx_cmat_gr", -2, 2, 0.01, 2
MFXSlider "$MFX_CMAT_GG", "mfx_cmat_gg", -2, 2, 0.01, 2
MFXSlider "$MFX_CMAT_GB", "mfx_cmat_gb", -2, 2, 0.01, 2
MFXSlider "$MFX_CMAT_BR", "mfx_cmat_br", -2, 2, 0.01, 2
MFXSlider "$MFX_CMAT_BG", "mfx_cmat_bg", -2, 2, 0.01, 2
MFXSlider "$MFX_CMAT_BB", "mfx_cmat_bb", -2, 2, 0.01, 2
SafeCommand "$MFX_RESET", "event resetmfxvars 3"
StaticText " "
StaticText "Hue-Saturation", "Gold"
StaticText "$MFX_HUESAT", "Gold"
StaticText " "
Option "Enable", "mfx_hsenable", "YesNo"
Slider "Overlap", "mfx_hsover", 0, 0.5, 0.01, 2
Slider "Master Hue", "mfx_hshue_a", -1, 1, 0.01, 2
Slider "Master Saturation", "mfx_hssat_a", -1, 1, 0.01, 2
Slider "Master Value", "mfx_hsval_a", -1, 1, 0.01, 2
Slider "Red Hue", "mfx_hshue_r", -1, 1, 0.01, 2
Slider "Red Saturation", "mfx_hssat_r", -1, 1, 0.01, 2
Slider "Red Value", "mfx_hsval_r", -1, 1, 0.01, 2
Slider "Yellow Hue", "mfx_hshue_y", -1, 1, 0.01, 2
Slider "Yellow Saturation", "mfx_hssat_y", -1, 1, 0.01, 2
Slider "Yellow Value", "mfx_hsval_y", -1, 1, 0.01, 2
Slider "Green Hue", "mfx_hshue_g", -1, 1, 0.01, 2
Slider "Green Saturation", "mfx_hssat_g", -1, 1, 0.01, 2
Slider "Green Value", "mfx_hsval_g", -1, 1, 0.01, 2
Slider "Cyan Hue", "mfx_hshue_c", -1, 1, 0.01, 2
Slider "Cyan Saturation", "mfx_hssat_c", -1, 1, 0.01, 2
Slider "Cyan Value", "mfx_hsval_c", -1, 1, 0.01, 2
Slider "Blue Hue", "mfx_hshue_b", -1, 1, 0.01, 2
Slider "Blue Saturation", "mfx_hssat_b", -1, 1, 0.01, 2
Slider "Blue Value", "mfx_hsval_b", -1, 1, 0.01, 2
Slider "Magenta Hue", "mfx_hshue_m", -1, 1, 0.01, 2
Slider "Magenta Saturation", "mfx_hssat_m", -1, 1, 0.01, 2
Slider "Magenta Value", "mfx_hsval_m", -1, 1, 0.01, 2
SafeCommand "Reset to Default", "event resetmfxvars 4"
Option "$MFX_ENABLE", "mfx_hsenable", "YesNo"
MFXSlider "$MFX_HSOVER", "mfx_hsover", 0, 0.5, 0.01, 2
MFXSlider "$MFX_HSHUE_A", "mfx_hshue_a", -1, 1, 0.01, 2
MFXSlider "$MFX_HSSAT_A", "mfx_hssat_a", -1, 1, 0.01, 2
MFXSlider "$MFX_HSVAL_A", "mfx_hsval_a", -1, 1, 0.01, 2
MFXSlider "$MFX_HSHUE_R", "mfx_hshue_r", -1, 1, 0.01, 2
MFXSlider "$MFX_HSSAT_R", "mfx_hssat_r", -1, 1, 0.01, 2
MFXSlider "$MFX_HSVAL_R", "mfx_hsval_r", -1, 1, 0.01, 2
MFXSlider "$MFX_HSHUE_Y", "mfx_hshue_y", -1, 1, 0.01, 2
MFXSlider "$MFX_HSSAT_Y", "mfx_hssat_y", -1, 1, 0.01, 2
MFXSlider "$MFX_HSVAL_Y", "mfx_hsval_y", -1, 1, 0.01, 2
MFXSlider "$MFX_HSHUE_G", "mfx_hshue_g", -1, 1, 0.01, 2
MFXSlider "$MFX_HSSAT_G", "mfx_hssat_g", -1, 1, 0.01, 2
MFXSlider "$MFX_HSVAL_G", "mfx_hsval_g", -1, 1, 0.01, 2
MFXSlider "$MFX_HSHUE_C", "mfx_hshue_c", -1, 1, 0.01, 2
MFXSlider "$MFX_HSSAT_C", "mfx_hssat_c", -1, 1, 0.01, 2
MFXSlider "$MFX_HSVAL_C", "mfx_hsval_c", -1, 1, 0.01, 2
MFXSlider "$MFX_HSHUE_B", "mfx_hshue_b", -1, 1, 0.01, 2
MFXSlider "$MFX_HSSAT_B", "mfx_hssat_b", -1, 1, 0.01, 2
MFXSlider "$MFX_HSVAL_B", "mfx_hsval_b", -1, 1, 0.01, 2
MFXSlider "$MFX_HSHUE_M", "mfx_hshue_m", -1, 1, 0.01, 2
MFXSlider "$MFX_HSSAT_M", "mfx_hssat_m", -1, 1, 0.01, 2
MFXSlider "$MFX_HSVAL_M", "mfx_hsval_m", -1, 1, 0.01, 2
SafeCommand "$MFX_RESET", "event resetmfxvars 4"
StaticText " "
StaticText "BlurSharpShift", "Gold"
StaticText "$MFX_BSS", "Gold"
StaticText " "
StaticText "(Some pretentious schmucks", "Brown"
StaticText "claim this \"enhances\" the visuals)", "Brown"
StaticText "$MFX_BSS_1", "Brown"
StaticText "$MFX_BSS_2", "Brown"
StaticText " "
Option "Blur Enable", "mfx_bssblurenable", "YesNo"
Slider "Blur Radius", "mfx_bssblurradius", 0, 1, 0.05, 2
Option "Sharp Enable", "mfx_bsssharpenable", "YesNo"
Slider "Sharp Radius", "mfx_bsssharpradius", 0, 1, 0.05, 2
Slider "Sharp Amount", "mfx_bsssharpamount", 0, 8, 0.1, 1
Option "Shift Enable", "mfx_bssshiftenable", "YesNo"
Slider "Shift Radius", "mfx_bssshiftradius", 0, 1, 0.05, 2
SafeCommand "Reset to Default", "event resetmfxvars 5"
Option "$MFX_BSSBLURENABLE", "mfx_bssblurenable", "YesNo"
MFXSlider "$MFX_BSSBLURRADIUS", "mfx_bssblurradius", 0, 1, 0.05, 2
Option "$MFX_BSSSHARPENABLE", "mfx_bsssharpenable", "YesNo"
MFXSlider "$MFX_BSSSHARPRADIUS", "mfx_bsssharpradius", 0, 1, 0.05, 2
MFXSlider "$MFX_BSSSHARPAMOUNT", "mfx_bsssharpamount", 0, 8, 0.1, 1
Option "$MFX_BSSSHIFTENABLE", "mfx_bssshiftenable", "YesNo"
MFXSlider "$MFX_BSSSHIFTRADIUS", "mfx_bssshiftradius", 0, 1, 0.05, 2
SafeCommand "$MFX_RESET", "event resetmfxvars 5"
StaticText " "
StaticText "Vignette / Border Blur", "Gold"
StaticText "$MFX_VIGBBLUR", "Gold"
StaticText " "
Option "Enable Vignette", "mfx_vigenable", "YesNo"
Slider "Vignette Red", "mfx_vigcolor_r", -1, 1, 0.01, 2
Slider "Vignette Green", "mfx_vigcolor_g", -1, 1, 0.01, 2
Slider "Vignette Blue", "mfx_vigcolor_b", -1, 1, 0.01, 2
Slider "Vignette Gamma", "mfx_vigpow", 0, 16, 0.01, 2
Slider "Vignette Intensity", "mfx_vigmul", 0, 2, 0.01, 2
Slider "Vignette Offset", "mfx_vigbump", -1, 1, 0.01, 2
Option "Vignette Shape", "mfx_vigshape", "MFXVigShape"
Option "Vignette Mode", "mfx_vigmode", "MFXVigMode"
Option "Enable Blur", "mfx_bblurenable", "YesNo"
Slider "Blur Gamma", "mfx_bblurpow", 0, 16, 0.01, 2
Slider "Blur Intensity", "mfx_bblurmul", 0, 2, 0.01, 2
Slider "Blur Offset", "mfx_bblurbump", -1, 1, 0.01, 2
Slider "Blur Radius", "mfx_bblurradius", 0, 4, 0.01, 2
SafeCommand "Reset to Default", "event resetmfxvars 6"
Option "$MFX_VIGENABLE", "mfx_vigenable", "YesNo"
MFXSlider "$MFX_VIGCOLOR_R", "mfx_vigcolor_r", -1, 1, 0.01, 2
MFXSlider "$MFX_VIGCOLOR_G", "mfx_vigcolor_g", -1, 1, 0.01, 2
MFXSlider "$MFX_VIGCOLOR_B", "mfx_vigcolor_b", -1, 1, 0.01, 2
MFXSlider "$MFX_VIGPOW", "mfx_vigpow", 0, 16, 0.01, 2
MFXSlider "$MFX_VIGMUL", "mfx_vigmul", 0, 2, 0.01, 2
MFXSlider "$MFX_VIGBUMP", "mfx_vigbump", -1, 1, 0.01, 2
Option "$MFX_VIGSHAPE", "mfx_vigshape", "MFXVigShape"
Option "$MFX_VIGMODE", "mfx_vigmode", "MFXVigMode"
Option "$MFX_BBLURENABLE", "mfx_bblurenable", "YesNo"
MFXSlider "$MFX_BBLURPOW", "mfx_bblurpow", 0, 16, 0.01, 2
MFXSlider "$MFX_BBLURMUL", "mfx_bblurmul", 0, 2, 0.01, 2
MFXSlider "$MFX_BBLURBUMP", "mfx_bblurbump", -1, 1, 0.01, 2
MFXSlider "$MFX_BBLURRADIUS", "mfx_bblurradius", 0, 4, 0.01, 2
SafeCommand "$MFX_RESET", "event resetmfxvars 6"
StaticText " "
StaticText "Palette", "Gold"
StaticText "$MFX_RETROFX", "Gold"
StaticText " "
Option "Enable", "mfx_palenable", "YesNo"
Option "Palette", "mfx_palnum", "MFXPalette"
Slider "Dithering", "mfx_paldither", 0, 1, 0.01, 2
SafeCommand "Reset to Default", "event resetmfxvars 7"
Option "$MFX_RETROENABLE", "mfx_retroenable", "YesNo"
Option "$MFX_RETROSCALEMODE", "mfx_retroscalemode", "MFXScaleMode"
TextField "$MFX_BRESX", "mfx_bres_x"
TextField "$MFX_BRESY", "mfx_bres_y"
MFXSlider "$MFX_BSCLX", "mfx_bscl_x", 0, 1, 0.01, 2
MFXSlider "$MFX_BSCLY", "mfx_bscl_y", 0, 1, 0.01, 2
Option "$MFX_PALENABLE", "mfx_palenable", "YesNo"
Option "$MFX_PALNUM", "mfx_palnum", "MFXPalette"
MFXSlider "$MFX_PALSAT", "mfx_palsat", 0, 2, 0.01, 2
MFXSlider "$MFX_PALPOW", "mfx_palpow", 0, 2, 0.01, 2
MFXSlider "$MFX_PALDITHER", "mfx_paldither", 0, 1, 0.01, 2
SafeCommand "$MFX_RESET", "event resetmfxvars 7"
}

View file

@ -1,6 +1,6 @@
/*
Border blur from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
void main()
{

View file

@ -1,6 +1,6 @@
/*
BlurSharpShift blur from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
void main()
{

View file

@ -1,6 +1,6 @@
/*
BlurSharpShift sharpen from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
void main()
{

View file

@ -1,6 +1,6 @@
/*
BlurSharpShift shift from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
void main()
{

View file

@ -1,6 +1,6 @@
/*
Simple color matrix from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
void main()
{

View file

@ -1,6 +1,6 @@
/*
Dirty camera effect from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
vec3 lensdirt( in vec3 res, in vec2 coord )
{

View file

@ -1,6 +1,6 @@
/*
Math color grading from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
#define luminance(x) dot(x,vec3(0.2126,0.7152,0.0722))

View file

@ -1,6 +1,6 @@
/*
Complex grain shader ported over from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
const float nf = 0.0005;
const vec3 nm1 = vec3(2.05,3.11,2.22);

View file

@ -1,7 +1,7 @@
/*
Hue-Saturation filter from MariENB, ported over from GIMP
(C)2007 Michael Natterer
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
vec3 rgb2hsv( vec3 c )
{

View file

@ -1,6 +1,6 @@
/*
LumaSharpen from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
#define luminance(x) dot(x,vec3(0.2126,0.7152,0.0722))
@ -19,4 +19,4 @@ void main()
thesewounds = clamp(thesewounds,-sharpclamp*0.01,sharpclamp*0.01);
vec4 theywillnotheal = res+thesewounds*sharpblend;
FragColor = theywillnotheal;
}
}

View file

@ -1,7 +1,23 @@
/*
RetroFX palette reduction from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
vec3 rgb2hsv( vec3 c )
{
vec4 K = vec4(0.0,-1.0/3.0,2.0/3.0,-1.0);
vec4 p = (c.g<c.b)?vec4(c.bg,K.wz):vec4(c.gb,K.xy);
vec4 q = (c.r<p.x)?vec4(p.xyw,c.r):vec4(c.r,p.yzx);
float d = q.x-min(q.w,q.y);
float e = 1.0e-10;
return vec3(abs(q.z+(q.w-q.y)/(6.0*d+e)),d/(q.x+e),q.x);
}
vec3 hsv2rgb( vec3 c )
{
vec4 K = vec4(1.0,2.0/3.0,1.0/3.0,3.0);
vec3 p = abs(fract(c.xxx+K.xyz)*6.0-K.www);
return c.z*mix(K.xxx,clamp(p-K.xxx,0.0,1.0),c.y);
}
void main()
{
#define d(x) x/64.0
@ -18,8 +34,11 @@ void main()
);
#undef d
vec2 coord = TexCoord;
vec2 sfact = textureSize(InputTexture,0);
vec4 res = texture(InputTexture,coord);
vec3 hsv = rgb2hsv(res.rgb);
hsv.y = clamp(hsv.y*palsat,0.,1.);
hsv.z = pow(max(hsv.z,0.),palpow);
res.rgb = hsv2rgb(hsv);
if ( res.r <= 0.0 ) res.r -= paldither;
if ( res.g <= 0.0 ) res.g -= paldither;
if ( res.b <= 0.0 ) res.b -= paldither;

View file

@ -0,0 +1,10 @@
/*
RetroFX downscaling from MariENB
(C)2012-2021 Marisa Kirisame
*/
void main()
{
// far more simplified when the actual scale calculations are on the zscript side
ivec2 ncoord = ivec2((floor(TexCoord*bresl)/bresl)*textureSize(InputTexture,0));
FragColor = texelFetch(InputTexture,ncoord,0);
}

View file

@ -1,6 +1,6 @@
/*
Vignette filter from MariENB
(C)2012-2019 Marisa Kirisame
(C)2012-2021 Marisa Kirisame
*/
void main()
{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 4.4 MiB

Before After
Before After

View file

@ -1,207 +1,161 @@
version "3.3"
// keyboard input snaps to increment
// holding shift increments by ten steps
Class OptionMenuItemMFXSlider : OptionMenuItemSlider
{
bool bShift, bAlt;
override bool MenuEvent ( int mkey, bool fromcontroller )
{
double value = GetSliderValue();
double step = bShift?(mStep*10):bAlt?(mStep*5):mStep;
if ( mkey == Menu.MKEY_Left ) value -= step;
else if ( mkey == Menu.MKEY_Right ) value += step;
else return OptionMenuItem.MenuEvent(mkey,fromcontroller);
if ( value ~== 0 ) value = 0; // This is to prevent formatting anomalies with very small values
value = round(value/step)*step; // truncate to step
SetSliderValue(clamp(value,mMin,mMax));
Menu.MenuSound("menu/change");
return true;
}
}
// passes shift presses to MFXSliders
Class MFXOptionMenu : OptionMenu
{
override void Init( Menu parent, OptionMenuDescriptor desc )
{
Super.init(parent,desc);
DontDim = true;
DontBlur = true;
}
override bool OnUIEvent( UIEvent ev )
{
for ( int i=0; i<mDesc.mItems.size(); i++ )
{
if ( !(mDesc.mItems[i] is 'OptionMenuItemMFXSlider') )
continue;
OptionMenuItemMFXSlider(mDesc.mItems[i]).bShift = ev.IsShift;
OptionMenuItemMFXSlider(mDesc.mItems[i]).bAlt = ev.IsAlt;
}
return Super.OnUIEvent(ev);
}
}
Class MariFXHandler : StaticEventHandler
{
// luma sharpen
transient ui CVar mfx_lsharpenable, mfx_lsharpradius,
mfx_lsharpclamp, mfx_lsharpblend,
// noise
mfx_ne, mfx_ni, mfx_ns, mfx_np, mfx_bnp, mfx_nb,
// dirt
mfx_dirtenable, mfx_dirtcfactor, mfx_dirtmc,
// grading
mfx_gradeenable, mfx_grademul_r, mfx_grademul_g,
mfx_grademul_b, mfx_gradepow_r, mfx_gradepow_g, mfx_gradepow_b,
mfx_gradecol_r, mfx_gradecol_g, mfx_gradecol_b,
mfx_gradecolfact, mfx_gradesatmul, mfx_gradesatpow,
mfx_gradevalmul, mfx_gradevalpow,
// blursharpshift
mfx_bssblurenable, mfx_bssblurradius, mfx_bsssharpenable,
mfx_bsssharpradius, mfx_bsssharpamount, mfx_bssshiftenable,
mfx_bssshiftradius,
// vignette
mfx_vigenable, mfx_bblurenable, mfx_vigpow, mfx_vigmul,
mfx_vigbump, mfx_vigcolor_r, mfx_vigcolor_g, mfx_vigcolor_b,
mfx_bblurpow, mfx_bblurmul, mfx_bblurbump, mfx_bblurradius,
mfx_vigshape, mfx_vigmode,
// color matrix
mfx_cmatenable, mfx_cmat_rr, mfx_cmat_rg, mfx_cmat_rb,
mfx_cmat_gr, mfx_cmat_gg, mfx_cmat_gb, mfx_cmat_br,
mfx_cmat_bg, mfx_cmat_bb, mfx_cmatnormalize,
// hue-saturation
mfx_hsenable, mfx_hsover, mfx_hshue_a, mfx_hssat_a,
mfx_hsval_a, mfx_hshue_r, mfx_hssat_r, mfx_hsval_r,
mfx_hshue_y, mfx_hssat_y, mfx_hsval_y, mfx_hshue_g,
mfx_hssat_g, mfx_hsval_g, mfx_hshue_c, mfx_hssat_c,
mfx_hsval_c, mfx_hshue_b, mfx_hssat_b, mfx_hsval_b,
mfx_hshue_m, mfx_hssat_m, mfx_hsval_m,
// palette
mfx_palenable, mfx_palnum, mfx_paldither;
override void RenderOverlay( RenderEvent e )
{
PlayerInfo p = players[consoleplayer];
if ( !mfx_lsharpenable ) mfx_lsharpenable = CVar.FindCVar('mfx_lsharpenable');
if ( !mfx_lsharpradius ) mfx_lsharpradius = CVar.FindCVar('mfx_lsharpradius');
if ( !mfx_lsharpclamp ) mfx_lsharpclamp = CVar.FindCVar('mfx_lsharpclamp');
if ( !mfx_lsharpblend ) mfx_lsharpblend = CVar.FindCVar('mfx_lsharpblend');
Shader.SetEnabled(p,"mfx_lumasharp",mfx_lsharpenable.GetBool());
Shader.SetUniform1f(p,"mfx_lumasharp","sharpradius",mfx_lsharpradius.GetFloat());
Shader.SetUniform1f(p,"mfx_lumasharp","sharpclamp",mfx_lsharpclamp.GetFloat());
Shader.SetUniform1f(p,"mfx_lumasharp","sharpblend",mfx_lsharpblend.GetFloat());
if ( !mfx_ne ) mfx_ne = CVar.FindCVar('mfx_ne');
if ( !mfx_ni ) mfx_ni = CVar.FindCVar('mfx_ni');
if ( !mfx_ns ) mfx_ns = CVar.FindCVar('mfx_ns');
if ( !mfx_np ) mfx_np = CVar.FindCVar('mfx_np');
if ( !mfx_bnp ) mfx_bnp = CVar.FindCVar('mfx_bnp');
if ( !mfx_nb ) mfx_nb = CVar.FindCVar('mfx_nb');
Shader.SetEnabled(p,"mfx_grain",mfx_ne.GetBool());
Shader.SetUniform1f(p,"mfx_grain","ni",mfx_ni.GetFloat());
Shader.SetUniform1f(p,"mfx_grain","ns",mfx_ns.GetFloat());
Shader.SetUniform1f(p,"mfx_grain","np",mfx_np.GetFloat());
Shader.SetUniform1f(p,"mfx_grain","bnp",mfx_bnp.GetFloat());
Shader.SetUniform1i(p,"mfx_grain","nb",mfx_nb.GetInt());
// LUMA SHARPEN
Shader.SetEnabled(p,"mfx_lumasharp",mfx_lsharpenable);
Shader.SetUniform1f(p,"mfx_lumasharp","sharpradius",mfx_lsharpradius);
Shader.SetUniform1f(p,"mfx_lumasharp","sharpclamp",mfx_lsharpclamp);
Shader.SetUniform1f(p,"mfx_lumasharp","sharpblend",mfx_lsharpblend);
// FILM GRAIN
Shader.SetEnabled(p,"mfx_grain",mfx_ne);
Shader.SetUniform1f(p,"mfx_grain","ni",mfx_ni);
Shader.SetUniform1f(p,"mfx_grain","ns",mfx_ns);
Shader.SetUniform1f(p,"mfx_grain","np",mfx_np);
Shader.SetUniform1f(p,"mfx_grain","bnp",mfx_bnp);
Shader.SetUniform1i(p,"mfx_grain","nb",mfx_nb);
Shader.SetUniform1f(p,"mfx_grain","Timer",(gametic+e.fractic)/35.);
if ( !mfx_dirtenable ) mfx_dirtenable = CVar.FindCVar('mfx_dirtenable');
if ( !mfx_dirtmc ) mfx_dirtmc = CVar.FindCVar('mfx_dirtmc');
if ( !mfx_dirtcfactor ) mfx_dirtcfactor = CVar.FindCVar('mfx_dirtcfactor');
Shader.SetEnabled(p,"mfx_dirt",mfx_dirtenable.GetBool());
Shader.SetUniform1f(p,"mfx_dirt","dirtmc",mfx_dirtmc.GetFloat());
Shader.SetUniform1f(p,"mfx_dirt","dirtcfactor",mfx_dirtcfactor.GetFloat());
if ( !mfx_gradeenable ) mfx_gradeenable = CVar.FindCVar('mfx_gradeenable');
if ( !mfx_grademul_r ) mfx_grademul_r = CVar.FindCVar('mfx_grademul_r');
if ( !mfx_grademul_g ) mfx_grademul_g = CVar.FindCVar('mfx_grademul_g');
if ( !mfx_grademul_b ) mfx_grademul_b = CVar.FindCVar('mfx_grademul_b');
if ( !mfx_gradepow_r ) mfx_gradepow_r = CVar.FindCVar('mfx_gradepow_r');
if ( !mfx_gradepow_g ) mfx_gradepow_g = CVar.FindCVar('mfx_gradepow_g');
if ( !mfx_gradepow_b ) mfx_gradepow_b = CVar.FindCVar('mfx_gradepow_b');
if ( !mfx_gradecol_r ) mfx_gradecol_r = CVar.FindCVar('mfx_gradecol_r');
if ( !mfx_gradecol_g ) mfx_gradecol_g = CVar.FindCVar('mfx_gradecol_g');
if ( !mfx_gradecol_b ) mfx_gradecol_b = CVar.FindCVar('mfx_gradecol_b');
if ( !mfx_gradecolfact ) mfx_gradecolfact = CVar.FindCVar('mfx_gradecolfact');
if ( !mfx_gradesatmul ) mfx_gradesatmul = CVar.FindCVar('mfx_gradesatmul');
if ( !mfx_gradesatpow ) mfx_gradesatpow = CVar.FindCVar('mfx_gradesatpow');
if ( !mfx_gradevalmul ) mfx_gradevalmul = CVar.FindCVar('mfx_gradevalmul');
if ( !mfx_gradevalpow ) mfx_gradevalpow = CVar.FindCVar('mfx_gradevalpow');
Shader.SetEnabled(p,"mfx_grading",mfx_gradeenable.GetBool());
Shader.SetUniform3f(p,"mfx_grading","grademul",(mfx_grademul_r.GetFloat(),mfx_grademul_g.GetFloat(),mfx_grademul_b.GetFloat()));
Shader.SetUniform3f(p,"mfx_grading","gradepow",(mfx_gradepow_r.GetFloat(),mfx_gradepow_g.GetFloat(),mfx_gradepow_b.GetFloat()));
Shader.SetUniform3f(p,"mfx_grading","gradecol",(mfx_gradecol_r.GetFloat(),mfx_gradecol_g.GetFloat(),mfx_gradecol_b.GetFloat()));
Shader.SetUniform1f(p,"mfx_grading","gradecolfact",mfx_gradecolfact.GetFloat());
Shader.SetUniform1f(p,"mfx_grading","gradesatmul",mfx_gradesatmul.GetFloat());
Shader.SetUniform1f(p,"mfx_grading","gradesatpow",mfx_gradesatpow.GetFloat());
Shader.SetUniform1f(p,"mfx_grading","gradevalmul",mfx_gradevalmul.GetFloat());
Shader.SetUniform1f(p,"mfx_grading","gradevalpow",mfx_gradevalpow.GetFloat());
if ( !mfx_cmatenable ) mfx_cmatenable = CVar.FindCVar('mfx_cmatenable');
if ( !mfx_cmat_rr ) mfx_cmat_rr = CVar.FindCVar('mfx_cmat_rr');
if ( !mfx_cmat_rg ) mfx_cmat_rg = CVar.FindCVar('mfx_cmat_rg');
if ( !mfx_cmat_rb ) mfx_cmat_rb = CVar.FindCVar('mfx_cmat_rb');
if ( !mfx_cmat_gr ) mfx_cmat_gr = CVar.FindCVar('mfx_cmat_gr');
if ( !mfx_cmat_gg ) mfx_cmat_gg = CVar.FindCVar('mfx_cmat_gg');
if ( !mfx_cmat_gb ) mfx_cmat_gb = CVar.FindCVar('mfx_cmat_gb');
if ( !mfx_cmat_br ) mfx_cmat_br = CVar.FindCVar('mfx_cmat_br');
if ( !mfx_cmat_bg ) mfx_cmat_bg = CVar.FindCVar('mfx_cmat_bg');
if ( !mfx_cmat_bb ) mfx_cmat_bb = CVar.FindCVar('mfx_cmat_bb');
Shader.SetEnabled(p,"mfx_colormatrix",mfx_cmatenable.GetBool());
Shader.SetUniform3f(p,"mfx_colormatrix","redrow",(mfx_cmat_rr.GetFloat(),mfx_cmat_rg.GetFloat(),mfx_cmat_rb.GetFloat()));
Shader.SetUniform3f(p,"mfx_colormatrix","greenrow",(mfx_cmat_gr.GetFloat(),mfx_cmat_gg.GetFloat(),mfx_cmat_gb.GetFloat()));
Shader.SetUniform3f(p,"mfx_colormatrix","bluerow",(mfx_cmat_br.GetFloat(),mfx_cmat_bg.GetFloat(),mfx_cmat_bb.GetFloat()));
if ( !mfx_hsenable ) mfx_hsenable = CVar.FindCVar('mfx_hsenable');
if ( !mfx_hsover ) mfx_hsover = CVar.FindCVar('mfx_hsover');
if ( !mfx_hshue_a ) mfx_hshue_a = CVar.FindCVar('mfx_hshue_a');
if ( !mfx_hssat_a ) mfx_hssat_a = CVar.FindCVar('mfx_hssat_a');
if ( !mfx_hsval_a ) mfx_hsval_a = CVar.FindCVar('mfx_hsval_a');
if ( !mfx_hshue_r ) mfx_hshue_r = CVar.FindCVar('mfx_hshue_r');
if ( !mfx_hssat_r ) mfx_hssat_r = CVar.FindCVar('mfx_hssat_r');
if ( !mfx_hsval_r ) mfx_hsval_r = CVar.FindCVar('mfx_hsval_r');
if ( !mfx_hshue_y ) mfx_hshue_y = CVar.FindCVar('mfx_hshue_y');
if ( !mfx_hssat_y ) mfx_hssat_y = CVar.FindCVar('mfx_hssat_y');
if ( !mfx_hsval_y ) mfx_hsval_y = CVar.FindCVar('mfx_hsval_y');
if ( !mfx_hshue_g ) mfx_hshue_g = CVar.FindCVar('mfx_hshue_g');
if ( !mfx_hssat_g ) mfx_hssat_g = CVar.FindCVar('mfx_hssat_g');
if ( !mfx_hsval_g ) mfx_hsval_g = CVar.FindCVar('mfx_hsval_g');
if ( !mfx_hshue_c ) mfx_hshue_c = CVar.FindCVar('mfx_hshue_c');
if ( !mfx_hssat_c ) mfx_hssat_c = CVar.FindCVar('mfx_hssat_c');
if ( !mfx_hsval_c ) mfx_hsval_c = CVar.FindCVar('mfx_hsval_c');
if ( !mfx_hshue_b ) mfx_hshue_b = CVar.FindCVar('mfx_hshue_b');
if ( !mfx_hssat_b ) mfx_hssat_b = CVar.FindCVar('mfx_hssat_b');
if ( !mfx_hsval_b ) mfx_hsval_b = CVar.FindCVar('mfx_hsval_b');
if ( !mfx_hshue_m ) mfx_hshue_m = CVar.FindCVar('mfx_hshue_m');
if ( !mfx_hssat_m ) mfx_hssat_m = CVar.FindCVar('mfx_hssat_m');
if ( !mfx_hsval_m ) mfx_hsval_m = CVar.FindCVar('mfx_hsval_m');
Shader.SetEnabled(p,"mfx_huesaturation",mfx_hsenable.GetBool());
Shader.SetUniform1f(p,"mfx_huesaturation","hsover",mfx_hsover.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_a",mfx_hshue_a.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_a",mfx_hssat_a.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_a",mfx_hsval_a.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_r",mfx_hshue_r.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_r",mfx_hssat_r.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_r",mfx_hsval_r.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_y",mfx_hshue_y.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_y",mfx_hssat_y.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_y",mfx_hsval_y.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_g",mfx_hshue_g.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_g",mfx_hssat_g.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_g",mfx_hsval_g.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_c",mfx_hshue_c.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_c",mfx_hssat_c.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_c",mfx_hsval_c.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_b",mfx_hshue_b.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_b",mfx_hssat_b.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_b",mfx_hsval_b.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_m",mfx_hshue_m.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_m",mfx_hssat_m.GetFloat());
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_m",mfx_hsval_m.GetFloat());
if ( !mfx_bssblurenable ) mfx_bssblurenable = CVar.FindCVar('mfx_bssblurenable');
if ( !mfx_bssblurradius ) mfx_bssblurradius = CVar.FindCVar('mfx_bssblurradius');
if ( !mfx_bsssharpenable ) mfx_bsssharpenable = CVar.FindCVar('mfx_bsssharpenable');
if ( !mfx_bsssharpradius ) mfx_bsssharpradius = CVar.FindCVar('mfx_bsssharpradius');
if ( !mfx_bsssharpamount ) mfx_bsssharpamount = CVar.FindCVar('mfx_bsssharpamount');
if ( !mfx_bssshiftenable ) mfx_bssshiftenable = CVar.FindCVar('mfx_bssshiftenable');
if ( !mfx_bssshiftradius ) mfx_bssshiftradius = CVar.FindCVar('mfx_bssshiftradius');
Shader.SetEnabled(p,"mfx_bss_blur",mfx_bssblurenable.GetBool());
Shader.SetUniform1f(p,"mfx_bss_blur","bssblurradius",mfx_bssblurradius.GetFloat());
Shader.SetEnabled(p,"mfx_bss_sharp",mfx_bsssharpenable.GetBool());
Shader.SetUniform1f(p,"mfx_bss_sharp","bsssharpradius",mfx_bsssharpradius.GetFloat());
Shader.SetUniform1f(p,"mfx_bss_sharp","bsssharpamount",mfx_bsssharpamount.GetFloat());
Shader.SetEnabled(p,"mfx_bss_shift",mfx_bssshiftenable.GetBool());
Shader.SetUniform1f(p,"mfx_bss_shift","bssshiftradius",mfx_bssshiftradius.GetFloat());
if ( !mfx_vigenable ) mfx_vigenable = CVar.FindCVar('mfx_vigenable');
if ( !mfx_vigcolor_r ) mfx_vigcolor_r = CVar.FindCVar('mfx_vigcolor_r');
if ( !mfx_vigcolor_g ) mfx_vigcolor_g = CVar.FindCVar('mfx_vigcolor_g');
if ( !mfx_vigcolor_b ) mfx_vigcolor_b = CVar.FindCVar('mfx_vigcolor_b');
if ( !mfx_vigpow ) mfx_vigpow = CVar.FindCVar('mfx_vigpow');
if ( !mfx_vigmul ) mfx_vigmul = CVar.FindCVar('mfx_vigmul');
if ( !mfx_vigbump ) mfx_vigbump = CVar.FindCVar('mfx_vigbump');
if ( !mfx_bblurenable ) mfx_bblurenable = CVar.FindCVar('mfx_bblurenable');
if ( !mfx_bblurpow ) mfx_bblurpow = CVar.FindCVar('mfx_bblurpow');
if ( !mfx_bblurmul ) mfx_bblurmul = CVar.FindCVar('mfx_bblurmul');
if ( !mfx_bblurbump ) mfx_bblurbump = CVar.FindCVar('mfx_bblurbump');
if ( !mfx_bblurradius ) mfx_bblurradius = CVar.FindCVar('mfx_bblurradius');
if ( !mfx_vigshape ) mfx_vigshape = CVar.FindCVar('mfx_vigshape');
if ( !mfx_vigmode ) mfx_vigmode = CVar.FindCVar('mfx_vigmode');
Shader.SetEnabled(p,"mfx_borderblur",mfx_bblurenable.GetBool());
Shader.SetUniform1f(p,"mfx_borderblur","vigpow",mfx_vigpow.GetFloat());
Shader.SetUniform1f(p,"mfx_borderblur","vigmul",mfx_vigmul.GetFloat());
Shader.SetUniform1f(p,"mfx_borderblur","vigbump",mfx_vigbump.GetFloat());
Shader.SetUniform1i(p,"mfx_borderblur","vigshape",mfx_vigshape.GetInt());
Shader.SetUniform1f(p,"mfx_borderblur","bblurpow",mfx_bblurpow.GetFloat());
Shader.SetUniform1f(p,"mfx_borderblur","bblurmul",mfx_bblurmul.GetFloat());
Shader.SetUniform1f(p,"mfx_borderblur","bblurbump",mfx_bblurbump.GetFloat());
Shader.SetUniform1f(p,"mfx_borderblur","bblurradius",mfx_bblurradius.GetFloat());
Shader.SetEnabled(p,"mfx_vignette",mfx_vigenable.GetBool());
Shader.SetUniform3f(p,"mfx_vignette","vigcolor",(mfx_vigcolor_r.GetFloat(),mfx_vigcolor_g.GetFloat(),mfx_vigcolor_b.GetFloat()));
Shader.SetUniform1f(p,"mfx_vignette","vigpow",mfx_vigpow.GetFloat());
Shader.SetUniform1f(p,"mfx_vignette","vigmul",mfx_vigmul.GetFloat());
Shader.SetUniform1f(p,"mfx_vignette","vigbump",mfx_vigbump.GetFloat());
Shader.SetUniform1i(p,"mfx_vignette","vigshape",mfx_vigshape.GetInt());
Shader.SetUniform1i(p,"mfx_vignette","vigmode",mfx_vigmode.GetInt());
if ( !mfx_palenable ) mfx_palenable = CVar.FindCVar('mfx_palenable');
if ( !mfx_palnum ) mfx_palnum = CVar.FindCVar('mfx_palnum');
if ( !mfx_paldither ) mfx_paldither = CVar.FindCVar('mfx_paldither');
Shader.SetEnabled(p,"mfx_palette",mfx_palenable.GetBool());
Shader.SetUniform1i(p,"mfx_palette","palnum",mfx_palnum.GetInt());
Shader.SetUniform1f(p,"mfx_palette","paldither",mfx_paldither.GetFloat());
// SCREEN DIRT
Shader.SetEnabled(p,"mfx_dirt",mfx_dirtenable);
Shader.SetUniform1f(p,"mfx_dirt","dirtmc",mfx_dirtmc);
Shader.SetUniform1f(p,"mfx_dirt","dirtcfactor",mfx_dirtcfactor);
// COLOR GRADING
Shader.SetEnabled(p,"mfx_grading",mfx_gradeenable);
Shader.SetUniform3f(p,"mfx_grading","grademul",(mfx_grademul_r,mfx_grademul_g,mfx_grademul_b));
Shader.SetUniform3f(p,"mfx_grading","gradepow",(mfx_gradepow_r,mfx_gradepow_g,mfx_gradepow_b));
Shader.SetUniform3f(p,"mfx_grading","gradecol",(mfx_gradecol_r,mfx_gradecol_g,mfx_gradecol_b));
Shader.SetUniform1f(p,"mfx_grading","gradecolfact",mfx_gradecolfact);
Shader.SetUniform1f(p,"mfx_grading","gradesatmul",mfx_gradesatmul);
Shader.SetUniform1f(p,"mfx_grading","gradesatpow",mfx_gradesatpow);
Shader.SetUniform1f(p,"mfx_grading","gradevalmul",mfx_gradevalmul);
Shader.SetUniform1f(p,"mfx_grading","gradevalpow",mfx_gradevalpow);
// COLOR MATRIX
Shader.SetEnabled(p,"mfx_colormatrix",mfx_cmatenable);
Shader.SetUniform3f(p,"mfx_colormatrix","redrow",(mfx_cmat_rr,mfx_cmat_rg,mfx_cmat_rb));
Shader.SetUniform3f(p,"mfx_colormatrix","greenrow",(mfx_cmat_gr,mfx_cmat_gg,mfx_cmat_gb));
Shader.SetUniform3f(p,"mfx_colormatrix","bluerow",(mfx_cmat_br,mfx_cmat_bg,mfx_cmat_bb));
// HUE-SATURATION
Shader.SetEnabled(p,"mfx_huesaturation",mfx_hsenable);
Shader.SetUniform1f(p,"mfx_huesaturation","hsover",mfx_hsover);
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_a",mfx_hshue_a);
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_a",mfx_hssat_a);
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_a",mfx_hsval_a);
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_r",mfx_hshue_r);
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_r",mfx_hssat_r);
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_r",mfx_hsval_r);
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_y",mfx_hshue_y);
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_y",mfx_hssat_y);
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_y",mfx_hsval_y);
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_g",mfx_hshue_g);
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_g",mfx_hssat_g);
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_g",mfx_hsval_g);
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_c",mfx_hshue_c);
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_c",mfx_hssat_c);
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_c",mfx_hsval_c);
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_b",mfx_hshue_b);
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_b",mfx_hssat_b);
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_b",mfx_hsval_b);
Shader.SetUniform1f(p,"mfx_huesaturation","hshue_m",mfx_hshue_m);
Shader.SetUniform1f(p,"mfx_huesaturation","hssat_m",mfx_hssat_m);
Shader.SetUniform1f(p,"mfx_huesaturation","hsval_m",mfx_hsval_m);
// BLURSHARPSHIFT
Shader.SetEnabled(p,"mfx_bss_blur",mfx_bssblurenable);
Shader.SetUniform1f(p,"mfx_bss_blur","bssblurradius",mfx_bssblurradius);
Shader.SetEnabled(p,"mfx_bss_sharp",mfx_bsssharpenable);
Shader.SetUniform1f(p,"mfx_bss_sharp","bsssharpradius",mfx_bsssharpradius);
Shader.SetUniform1f(p,"mfx_bss_sharp","bsssharpamount",mfx_bsssharpamount);
Shader.SetEnabled(p,"mfx_bss_shift",mfx_bssshiftenable);
Shader.SetUniform1f(p,"mfx_bss_shift","bssshiftradius",mfx_bssshiftradius);
// VIGNETTE / BORDER BLUR
Shader.SetEnabled(p,"mfx_borderblur",mfx_bblurenable);
Shader.SetUniform1f(p,"mfx_borderblur","vigpow",mfx_vigpow);
Shader.SetUniform1f(p,"mfx_borderblur","vigmul",mfx_vigmul);
Shader.SetUniform1f(p,"mfx_borderblur","vigbump",mfx_vigbump);
Shader.SetUniform1i(p,"mfx_borderblur","vigshape",mfx_vigshape);
Shader.SetUniform1f(p,"mfx_borderblur","bblurpow",mfx_bblurpow);
Shader.SetUniform1f(p,"mfx_borderblur","bblurmul",mfx_bblurmul);
Shader.SetUniform1f(p,"mfx_borderblur","bblurbump",mfx_bblurbump);
Shader.SetUniform1f(p,"mfx_borderblur","bblurradius",mfx_bblurradius);
Shader.SetEnabled(p,"mfx_vignette",mfx_vigenable);
Shader.SetUniform3f(p,"mfx_vignette","vigcolor",(mfx_vigcolor_r,mfx_vigcolor_g,mfx_vigcolor_b));
Shader.SetUniform1f(p,"mfx_vignette","vigpow",mfx_vigpow);
Shader.SetUniform1f(p,"mfx_vignette","vigmul",mfx_vigmul);
Shader.SetUniform1f(p,"mfx_vignette","vigbump",mfx_vigbump);
Shader.SetUniform1i(p,"mfx_vignette","vigshape",mfx_vigshape);
Shader.SetUniform1i(p,"mfx_vignette","vigmode",mfx_vigmode);
// RETRO FX
Vector2 rresl = (Screen.GetWidth(),Screen.GetHeight());
Vector2 bresl = rresl;
switch ( mfx_retroscalemode )
{
case 0:
bresl = (CleanWidth,CleanHeight);
break;
case 1:
bresl = (CleanWidth_1,CleanHeight_1);
break;
case 2:
bresl = (max(1,rresl.x*mfx_bscl_x),max(1,rresl.y*mfx_bscl_y));
break;
case 3:
bresl = (clamp(mfx_bres_x,1,rresl.x),clamp(mfx_bres_y,1,rresl.y));
break;
}
Shader.SetEnabled(p,"mfx_retrofx",mfx_retroenable);
Shader.SetUniform2f(p,"mfx_retrofx","bresl",bresl);
Shader.SetEnabled(p,"mfx_palette",mfx_palenable);
Shader.SetUniform2f(p,"mfx_palette","sfact",mfx_retroenable?bresl:rresl);
Shader.SetUniform1f(p,"mfx_palette","palsat",mfx_palsat);
Shader.SetUniform1f(p,"mfx_palette","palpow",mfx_palpow);
Shader.SetUniform1i(p,"mfx_palette","palnum",mfx_palnum);
Shader.SetUniform1f(p,"mfx_palette","paldither",mfx_paldither);
}
override void ConsoleProcess( ConsoleEvent e )
{
@ -211,192 +165,115 @@ Class MariFXHandler : StaticEventHandler
switch( e.args[0] )
{
case 0:
if ( !mfx_ne ) mfx_ne = CVar.FindCVar('mfx_ne');
if ( !mfx_ni ) mfx_ni = CVar.FindCVar('mfx_ni');
if ( !mfx_ns ) mfx_ns = CVar.FindCVar('mfx_ns');
if ( !mfx_np ) mfx_np = CVar.FindCVar('mfx_np');
if ( !mfx_bnp ) mfx_bnp = CVar.FindCVar('mfx_bnp');
if ( !mfx_nb ) mfx_nb = CVar.FindCVar('mfx_nb');
mfx_ne.ResetToDefault();
mfx_ni.ResetToDefault();
mfx_ns.ResetToDefault();
mfx_np.ResetToDefault();
mfx_bnp.ResetToDefault();
mfx_nb.ResetToDefault();
CVar.FindCVar('mfx_ne').ResetToDefault();
CVar.FindCVar('mfx_ni').ResetToDefault();
CVar.FindCVar('mfx_ns').ResetToDefault();
CVar.FindCVar('mfx_np').ResetToDefault();
CVar.FindCVar('mfx_bnp').ResetToDefault();
CVar.FindCVar('mfx_nb').ResetToDefault();
break;
case 1:
if ( !mfx_dirtenable ) mfx_dirtenable = CVar.FindCVar('mfx_dirtenable');
if ( !mfx_dirtmc ) mfx_dirtmc = CVar.FindCVar('mfx_dirtmc');
if ( !mfx_dirtcfactor ) mfx_dirtcfactor = CVar.FindCVar('mfx_dirtcfactor');
mfx_dirtenable.ResetToDefault();
mfx_dirtmc.ResetToDefault();
mfx_dirtcfactor.ResetToDefault();
CVar.FindCVar('mfx_dirtenable').ResetToDefault();
CVar.FindCVar('mfx_dirtmc').ResetToDefault();
CVar.FindCVar('mfx_dirtcfactor').ResetToDefault();
break;
case 2:
if ( !mfx_gradeenable ) mfx_gradeenable = CVar.FindCVar('mfx_gradeenable');
if ( !mfx_grademul_r ) mfx_grademul_r = CVar.FindCVar('mfx_grademul_r');
if ( !mfx_grademul_g ) mfx_grademul_g = CVar.FindCVar('mfx_grademul_g');
if ( !mfx_grademul_b ) mfx_grademul_b = CVar.FindCVar('mfx_grademul_b');
if ( !mfx_gradepow_r ) mfx_gradepow_r = CVar.FindCVar('mfx_gradepow_r');
if ( !mfx_gradepow_g ) mfx_gradepow_g = CVar.FindCVar('mfx_gradepow_g');
if ( !mfx_gradepow_b ) mfx_gradepow_b = CVar.FindCVar('mfx_gradepow_b');
if ( !mfx_gradecol_r ) mfx_gradecol_r = CVar.FindCVar('mfx_gradecol_r');
if ( !mfx_gradecol_g ) mfx_gradecol_g = CVar.FindCVar('mfx_gradecol_g');
if ( !mfx_gradecol_b ) mfx_gradecol_b = CVar.FindCVar('mfx_gradecol_b');
if ( !mfx_gradecolfact ) mfx_gradecolfact = CVar.FindCVar('mfx_gradecolfact');
if ( !mfx_gradesatmul ) mfx_gradesatmul = CVar.FindCVar('mfx_gradesatmul');
if ( !mfx_gradesatpow ) mfx_gradesatpow = CVar.FindCVar('mfx_gradesatpow');
if ( !mfx_gradevalmul ) mfx_gradevalmul = CVar.FindCVar('mfx_gradevalmul');
if ( !mfx_gradevalpow ) mfx_gradevalpow = CVar.FindCVar('mfx_gradevalpow');
mfx_gradeenable.ResetToDefault();
mfx_grademul_r.ResetToDefault();
mfx_grademul_g.ResetToDefault();
mfx_grademul_b.ResetToDefault();
mfx_gradepow_r.ResetToDefault();
mfx_gradepow_g.ResetToDefault();
mfx_gradepow_b.ResetToDefault();
mfx_gradecol_r.ResetToDefault();
mfx_gradecol_g.ResetToDefault();
mfx_gradecol_b.ResetToDefault();
mfx_gradecolfact.ResetToDefault();
mfx_gradesatmul.ResetToDefault();
mfx_gradesatpow.ResetToDefault();
mfx_gradevalmul.ResetToDefault();
mfx_gradevalpow.ResetToDefault();
CVar.FindCVar('mfx_gradeenable').ResetToDefault();
CVar.FindCVar('mfx_grademul_r').ResetToDefault();
CVar.FindCVar('mfx_grademul_g').ResetToDefault();
CVar.FindCVar('mfx_grademul_b').ResetToDefault();
CVar.FindCVar('mfx_gradepow_r').ResetToDefault();
CVar.FindCVar('mfx_gradepow_g').ResetToDefault();
CVar.FindCVar('mfx_gradepow_b').ResetToDefault();
CVar.FindCVar('mfx_gradecol_r').ResetToDefault();
CVar.FindCVar('mfx_gradecol_g').ResetToDefault();
CVar.FindCVar('mfx_gradecol_b').ResetToDefault();
CVar.FindCVar('mfx_gradecolfact').ResetToDefault();
CVar.FindCVar('mfx_gradesatmul').ResetToDefault();
CVar.FindCVar('mfx_gradesatpow').ResetToDefault();
CVar.FindCVar('mfx_gradevalmul').ResetToDefault();
CVar.FindCVar('mfx_gradevalpow').ResetToDefault();
break;
case 3:
if ( !mfx_cmatenable ) mfx_cmatenable = CVar.FindCVar('mfx_cmatenable');
if ( !mfx_cmat_rr ) mfx_cmat_rr = CVar.FindCVar('mfx_cmat_rr');
if ( !mfx_cmat_rg ) mfx_cmat_rg = CVar.FindCVar('mfx_cmat_rg');
if ( !mfx_cmat_rb ) mfx_cmat_rb = CVar.FindCVar('mfx_cmat_rb');
if ( !mfx_cmat_gr ) mfx_cmat_gr = CVar.FindCVar('mfx_cmat_gr');
if ( !mfx_cmat_gg ) mfx_cmat_gg = CVar.FindCVar('mfx_cmat_gg');
if ( !mfx_cmat_gb ) mfx_cmat_gb = CVar.FindCVar('mfx_cmat_gb');
if ( !mfx_cmat_br ) mfx_cmat_br = CVar.FindCVar('mfx_cmat_br');
if ( !mfx_cmat_bg ) mfx_cmat_bg = CVar.FindCVar('mfx_cmat_bg');
if ( !mfx_cmat_bb ) mfx_cmat_bb = CVar.FindCVar('mfx_cmat_bb');
mfx_cmatenable.ResetToDefault();
mfx_cmat_rr.ResetToDefault();
mfx_cmat_rg.ResetToDefault();
mfx_cmat_rb.ResetToDefault();
mfx_cmat_gr.ResetToDefault();
mfx_cmat_gg.ResetToDefault();
mfx_cmat_gb.ResetToDefault();
mfx_cmat_br.ResetToDefault();
mfx_cmat_bg.ResetToDefault();
mfx_cmat_bb.ResetToDefault();
CVar.FindCVar('mfx_cmatenable').ResetToDefault();
CVar.FindCVar('mfx_cmat_rr').ResetToDefault();
CVar.FindCVar('mfx_cmat_rg').ResetToDefault();
CVar.FindCVar('mfx_cmat_rb').ResetToDefault();
CVar.FindCVar('mfx_cmat_gr').ResetToDefault();
CVar.FindCVar('mfx_cmat_gg').ResetToDefault();
CVar.FindCVar('mfx_cmat_gb').ResetToDefault();
CVar.FindCVar('mfx_cmat_br').ResetToDefault();
CVar.FindCVar('mfx_cmat_bg').ResetToDefault();
CVar.FindCVar('mfx_cmat_bb').ResetToDefault();
break;
case 4:
if ( !mfx_hsenable ) mfx_hsenable = CVar.FindCVar('mfx_hsenable');
if ( !mfx_hsover ) mfx_hsover = CVar.FindCVar('mfx_hsover');
if ( !mfx_hshue_a ) mfx_hshue_a = CVar.FindCVar('mfx_hshue_a');
if ( !mfx_hssat_a ) mfx_hssat_a = CVar.FindCVar('mfx_hssat_a');
if ( !mfx_hsval_a ) mfx_hsval_a = CVar.FindCVar('mfx_hsval_a');
if ( !mfx_hshue_r ) mfx_hshue_r = CVar.FindCVar('mfx_hshue_r');
if ( !mfx_hssat_r ) mfx_hssat_r = CVar.FindCVar('mfx_hssat_r');
if ( !mfx_hsval_r ) mfx_hsval_r = CVar.FindCVar('mfx_hsval_r');
if ( !mfx_hshue_y ) mfx_hshue_y = CVar.FindCVar('mfx_hshue_y');
if ( !mfx_hssat_y ) mfx_hssat_y = CVar.FindCVar('mfx_hssat_y');
if ( !mfx_hsval_y ) mfx_hsval_y = CVar.FindCVar('mfx_hsval_y');
if ( !mfx_hshue_g ) mfx_hshue_g = CVar.FindCVar('mfx_hshue_g');
if ( !mfx_hssat_g ) mfx_hssat_g = CVar.FindCVar('mfx_hssat_g');
if ( !mfx_hsval_g ) mfx_hsval_g = CVar.FindCVar('mfx_hsval_g');
if ( !mfx_hshue_c ) mfx_hshue_c = CVar.FindCVar('mfx_hshue_c');
if ( !mfx_hssat_c ) mfx_hssat_c = CVar.FindCVar('mfx_hssat_c');
if ( !mfx_hsval_c ) mfx_hsval_c = CVar.FindCVar('mfx_hsval_c');
if ( !mfx_hshue_b ) mfx_hshue_b = CVar.FindCVar('mfx_hshue_b');
if ( !mfx_hssat_b ) mfx_hssat_b = CVar.FindCVar('mfx_hssat_b');
if ( !mfx_hsval_b ) mfx_hsval_b = CVar.FindCVar('mfx_hsval_b');
if ( !mfx_hshue_m ) mfx_hshue_m = CVar.FindCVar('mfx_hshue_m');
if ( !mfx_hssat_m ) mfx_hssat_m = CVar.FindCVar('mfx_hssat_m');
if ( !mfx_hsval_m ) mfx_hsval_m = CVar.FindCVar('mfx_hsval_m');
mfx_hsenable.ResetToDefault();
mfx_hsover.ResetToDefault();
mfx_hshue_a.ResetToDefault();
mfx_hssat_a.ResetToDefault();
mfx_hsval_a.ResetToDefault();
mfx_hshue_r.ResetToDefault();
mfx_hssat_r.ResetToDefault();
mfx_hsval_r.ResetToDefault();
mfx_hshue_y.ResetToDefault();
mfx_hssat_y.ResetToDefault();
mfx_hsval_y.ResetToDefault();
mfx_hshue_g.ResetToDefault();
mfx_hssat_g.ResetToDefault();
mfx_hsval_g.ResetToDefault();
mfx_hshue_c.ResetToDefault();
mfx_hssat_c.ResetToDefault();
mfx_hsval_c.ResetToDefault();
mfx_hshue_b.ResetToDefault();
mfx_hssat_b.ResetToDefault();
mfx_hsval_b.ResetToDefault();
mfx_hshue_m.ResetToDefault();
mfx_hssat_m.ResetToDefault();
mfx_hsval_m.ResetToDefault();
CVar.FindCVar('mfx_hsenable').ResetToDefault();
CVar.FindCVar('mfx_hsover').ResetToDefault();
CVar.FindCVar('mfx_hshue_a').ResetToDefault();
CVar.FindCVar('mfx_hssat_a').ResetToDefault();
CVar.FindCVar('mfx_hsval_a').ResetToDefault();
CVar.FindCVar('mfx_hshue_r').ResetToDefault();
CVar.FindCVar('mfx_hssat_r').ResetToDefault();
CVar.FindCVar('mfx_hsval_r').ResetToDefault();
CVar.FindCVar('mfx_hshue_y').ResetToDefault();
CVar.FindCVar('mfx_hssat_y').ResetToDefault();
CVar.FindCVar('mfx_hsval_y').ResetToDefault();
CVar.FindCVar('mfx_hshue_g').ResetToDefault();
CVar.FindCVar('mfx_hssat_g').ResetToDefault();
CVar.FindCVar('mfx_hsval_g').ResetToDefault();
CVar.FindCVar('mfx_hshue_c').ResetToDefault();
CVar.FindCVar('mfx_hssat_c').ResetToDefault();
CVar.FindCVar('mfx_hsval_c').ResetToDefault();
CVar.FindCVar('mfx_hshue_b').ResetToDefault();
CVar.FindCVar('mfx_hssat_b').ResetToDefault();
CVar.FindCVar('mfx_hsval_b').ResetToDefault();
CVar.FindCVar('mfx_hshue_m').ResetToDefault();
CVar.FindCVar('mfx_hssat_m').ResetToDefault();
CVar.FindCVar('mfx_hsval_m').ResetToDefault();
break;
case 5:
if ( !mfx_bssblurenable ) mfx_bssblurenable = CVar.FindCVar('mfx_bssblurenable');
if ( !mfx_bssblurradius ) mfx_bssblurradius = CVar.FindCVar('mfx_bssblurradius');
if ( !mfx_bsssharpenable ) mfx_bsssharpenable = CVar.FindCVar('mfx_bsssharpenable');
if ( !mfx_bsssharpradius ) mfx_bsssharpradius = CVar.FindCVar('mfx_bsssharpradius');
if ( !mfx_bsssharpamount ) mfx_bsssharpamount = CVar.FindCVar('mfx_bsssharpamount');
if ( !mfx_bssshiftenable ) mfx_bssshiftenable = CVar.FindCVar('mfx_bssshiftenable');
if ( !mfx_bssshiftradius ) mfx_bssshiftradius = CVar.FindCVar('mfx_bssshiftradius');
mfx_bssblurenable.ResetToDefault();
mfx_bssblurradius.ResetToDefault();
mfx_bsssharpenable.ResetToDefault();
mfx_bsssharpradius.ResetToDefault();
mfx_bsssharpamount.ResetToDefault();
mfx_bssshiftenable.ResetToDefault();
mfx_bssshiftradius.ResetToDefault();
CVar.FindCVar('mfx_bssblurenable').ResetToDefault();
CVar.FindCVar('mfx_bssblurradius').ResetToDefault();
CVar.FindCVar('mfx_bsssharpenable').ResetToDefault();
CVar.FindCVar('mfx_bsssharpradius').ResetToDefault();
CVar.FindCVar('mfx_bsssharpamount').ResetToDefault();
CVar.FindCVar('mfx_bssshiftenable').ResetToDefault();
CVar.FindCVar('mfx_bssshiftradius').ResetToDefault();
break;
case 6:
if ( !mfx_vigenable ) mfx_vigenable = CVar.FindCVar('mfx_vigenable');
if ( !mfx_vigcolor_r ) mfx_vigcolor_r = CVar.FindCVar('mfx_vigcolor_r');
if ( !mfx_vigcolor_g ) mfx_vigcolor_g = CVar.FindCVar('mfx_vigcolor_g');
if ( !mfx_vigcolor_b ) mfx_vigcolor_b = CVar.FindCVar('mfx_vigcolor_b');
if ( !mfx_vigpow ) mfx_vigpow = CVar.FindCVar('mfx_vigpow');
if ( !mfx_vigmul ) mfx_vigmul = CVar.FindCVar('mfx_vigmul');
if ( !mfx_vigbump ) mfx_vigbump = CVar.FindCVar('mfx_vigbump');
if ( !mfx_vigshape ) mfx_vigshape = CVar.FindCVar('mfx_vigshape');
if ( !mfx_vigmode ) mfx_vigmode = CVar.FindCVar('mfx_vigmode');
if ( !mfx_bblurenable ) mfx_bblurenable = CVar.FindCVar('mfx_bblurenable');
if ( !mfx_bblurpow ) mfx_bblurpow = CVar.FindCVar('mfx_bblurpow');
if ( !mfx_bblurmul ) mfx_bblurmul = CVar.FindCVar('mfx_bblurmul');
if ( !mfx_bblurbump ) mfx_bblurbump = CVar.FindCVar('mfx_bblurbump');
if ( !mfx_bblurradius ) mfx_bblurradius = CVar.FindCVar('mfx_bblurradius');
mfx_bblurenable.ResetToDefault();
mfx_bblurpow.ResetToDefault();
mfx_bblurmul.ResetToDefault();
mfx_bblurbump.ResetToDefault();
mfx_bblurradius.ResetToDefault();
mfx_vigenable.ResetToDefault();
mfx_vigcolor_r.ResetToDefault();
mfx_vigcolor_g.ResetToDefault();
mfx_vigcolor_b.ResetToDefault();
mfx_vigpow.ResetToDefault();
mfx_vigmul.ResetToDefault();
mfx_vigbump.ResetToDefault();
mfx_vigshape.ResetToDefault();
mfx_vigmode.ResetToDefault();
CVar.FindCVar('mfx_bblurenable').ResetToDefault();
CVar.FindCVar('mfx_bblurpow').ResetToDefault();
CVar.FindCVar('mfx_bblurmul').ResetToDefault();
CVar.FindCVar('mfx_bblurbump').ResetToDefault();
CVar.FindCVar('mfx_bblurradius').ResetToDefault();
CVar.FindCVar('mfx_vigenable').ResetToDefault();
CVar.FindCVar('mfx_vigcolor_r').ResetToDefault();
CVar.FindCVar('mfx_vigcolor_g').ResetToDefault();
CVar.FindCVar('mfx_vigcolor_b').ResetToDefault();
CVar.FindCVar('mfx_vigpow').ResetToDefault();
CVar.FindCVar('mfx_vigmul').ResetToDefault();
CVar.FindCVar('mfx_vigbump').ResetToDefault();
CVar.FindCVar('mfx_vigshape').ResetToDefault();
CVar.FindCVar('mfx_vigmode').ResetToDefault();
break;
case 7:
if ( !mfx_palenable ) mfx_palenable = CVar.FindCVar('mfx_palenable');
if ( !mfx_palnum ) mfx_palnum = CVar.FindCVar('mfx_palnum');
if ( !mfx_paldither ) mfx_paldither = CVar.FindCVar('mfx_paldither');
mfx_palenable.ResetToDefault();
mfx_palnum.ResetToDefault();
mfx_paldither.ResetToDefault();
CVar.FindCVar('mfx_retroenable').ResetToDefault();
CVar.FindCVar('mfx_retroscalemode').ResetToDefault();
CVar.FindCVar('mfx_bres_x').ResetToDefault();
CVar.FindCVar('mfx_bres_y').ResetToDefault();
CVar.FindCVar('mfx_bscl_x').ResetToDefault();
CVar.FindCVar('mfx_bscl_y').ResetToDefault();
CVar.FindCVar('mfx_palenable').ResetToDefault();
CVar.FindCVar('mfx_palnum').ResetToDefault();
CVar.FindCVar('mfx_palsat').ResetToDefault();
CVar.FindCVar('mfx_palpow').ResetToDefault();
CVar.FindCVar('mfx_paldither').ResetToDefault();
break;
case 8:
if ( !mfx_lsharpenable ) mfx_lsharpenable = CVar.FindCVar('mfx_lsharpenable');
if ( !mfx_lsharpradius ) mfx_lsharpradius = CVar.FindCVar('mfx_lsharpradius');
if ( !mfx_lsharpclamp ) mfx_lsharpclamp = CVar.FindCVar('mfx_lsharpclamp');
if ( !mfx_lsharpblend ) mfx_lsharpblend = CVar.FindCVar('mfx_lsharpblend');
mfx_lsharpenable.ResetToDefault();
mfx_lsharpradius.ResetToDefault();
mfx_lsharpclamp.ResetToDefault();
mfx_lsharpblend.ResetToDefault();
CVar.FindCVar('mfx_lsharpenable').ResetToDefault();
CVar.FindCVar('mfx_lsharpradius').ResetToDefault();
CVar.FindCVar('mfx_lsharpclamp').ResetToDefault();
CVar.FindCVar('mfx_lsharpblend').ResetToDefault();
break;
}
}