LUT Grading and Technicolor added.
Preset save/load added. Fixed a typo.
This commit is contained in:
parent
232ec85941
commit
0380e56f90
8 changed files with 321 additions and 9 deletions
|
|
@ -1,3 +1,5 @@
|
||||||
|
// BEGIN PRESET VARS
|
||||||
|
|
||||||
nosave bool mfx_lsharpenable = false;
|
nosave bool mfx_lsharpenable = false;
|
||||||
nosave float mfx_lsharpradius = .8;
|
nosave float mfx_lsharpradius = .8;
|
||||||
nosave float mfx_lsharpclamp = .05;
|
nosave float mfx_lsharpclamp = .05;
|
||||||
|
|
@ -30,6 +32,13 @@ nosave float mfx_gradesatpow = 1.;
|
||||||
nosave float mfx_gradevalmul = 1.;
|
nosave float mfx_gradevalmul = 1.;
|
||||||
nosave float mfx_gradevalpow = 1.;
|
nosave float mfx_gradevalpow = 1.;
|
||||||
|
|
||||||
|
nosave bool mfx_lutenable = false;
|
||||||
|
nosave int mfx_lutindex = 0;
|
||||||
|
nosave float mfx_lutblend = 1.;
|
||||||
|
|
||||||
|
nosave bool mfx_techenable = false;
|
||||||
|
nosave float mfx_techblend = 1.;
|
||||||
|
|
||||||
nosave bool mfx_cmatenable = false;
|
nosave bool mfx_cmatenable = false;
|
||||||
nosave float mfx_cmat_rr = 1.;
|
nosave float mfx_cmat_rr = 1.;
|
||||||
nosave float mfx_cmat_rg = 0.;
|
nosave float mfx_cmat_rg = 0.;
|
||||||
|
|
@ -100,3 +109,17 @@ nosave int mfx_palnum = 0;
|
||||||
nosave float mfx_palsat = 1.;
|
nosave float mfx_palsat = 1.;
|
||||||
nosave float mfx_palpow = 1.;
|
nosave float mfx_palpow = 1.;
|
||||||
nosave float mfx_paldither = .05;
|
nosave float mfx_paldither = .05;
|
||||||
|
|
||||||
|
nosave string mfx_presetname = "Unnamed";
|
||||||
|
|
||||||
|
// END PRESET VARS
|
||||||
|
|
||||||
|
nosave int mfx_presetslot = 0;
|
||||||
|
nosave string mfx_preset0 = "";
|
||||||
|
nosave string mfx_preset1 = "";
|
||||||
|
nosave string mfx_preset2 = "";
|
||||||
|
nosave string mfx_preset3 = "";
|
||||||
|
nosave string mfx_preset4 = "";
|
||||||
|
nosave string mfx_preset5 = "";
|
||||||
|
nosave string mfx_preset6 = "";
|
||||||
|
nosave string mfx_preset7 = "";
|
||||||
16
gldefs.txt
16
gldefs.txt
|
|
@ -21,6 +21,22 @@ HardwareShader postprocess scene
|
||||||
Uniform float gradevalpow
|
Uniform float gradevalpow
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HardwareShader postprocess scene
|
||||||
|
{
|
||||||
|
Name "mfx_technicolor"
|
||||||
|
Shader "shaders/glsl/mfx_technicolor.fp" 330
|
||||||
|
Uniform float techblend
|
||||||
|
}
|
||||||
|
|
||||||
|
HardwareShader postprocess scene
|
||||||
|
{
|
||||||
|
Name "mfx_lutgrading"
|
||||||
|
Shader "shaders/glsl/mfx_lutgrading.fp" 330
|
||||||
|
Texture LUTTexture "textures/mfxlut.png"
|
||||||
|
Uniform int lutindex
|
||||||
|
Uniform float lutblend
|
||||||
|
}
|
||||||
|
|
||||||
HardwareShader postprocess scene
|
HardwareShader postprocess scene
|
||||||
{
|
{
|
||||||
Name "mfx_colormatrix"
|
Name "mfx_colormatrix"
|
||||||
|
|
|
||||||
30
language.txt
30
language.txt
|
|
@ -77,6 +77,22 @@ MFX_PALETTE61="RGB3";
|
||||||
MFX_PALETTE62="RGB4";
|
MFX_PALETTE62="RGB4";
|
||||||
MFX_PALETTE63="RGB5";
|
MFX_PALETTE63="RGB5";
|
||||||
MFX_PALETTE64="RGB6";
|
MFX_PALETTE64="RGB6";
|
||||||
|
MFX_LUT1="Skyrim Day";
|
||||||
|
MFX_LUT2="Skyrim Interior Day";
|
||||||
|
MFX_LUT3="Skyrim Interior Night";
|
||||||
|
MFX_LUT4="Skyrim Night";
|
||||||
|
MFX_LUT5="FNV Day";
|
||||||
|
MFX_LUT6="FNV Interior";
|
||||||
|
MFX_LUT7="FNV Night";
|
||||||
|
MFX_LUT8="DUST Day";
|
||||||
|
MFX_LUT9="DUST Interior";
|
||||||
|
MFX_LUT10="DUST Night";
|
||||||
|
MFX_LUT11="FO4 Day";
|
||||||
|
MFX_LUT12="FO4 Interior";
|
||||||
|
MFX_LUT13="FO4 Night";
|
||||||
|
MFX_LUT14="FROST Day";
|
||||||
|
MFX_LUT15="FROST Interior";
|
||||||
|
MFX_LUT16="FROST Night";
|
||||||
MFX_ENABLE="Enable";
|
MFX_ENABLE="Enable";
|
||||||
MFX_RESET="Reset to Default";
|
MFX_RESET="Reset to Default";
|
||||||
MFX_LUMASHARPEN="Luma Sharpen";
|
MFX_LUMASHARPEN="Luma Sharpen";
|
||||||
|
|
@ -107,6 +123,11 @@ MFX_GRADESATMUL="Saturation Intensity";
|
||||||
MFX_GRADESATPOW="Saturation Gamma";
|
MFX_GRADESATPOW="Saturation Gamma";
|
||||||
MFX_GRADEVALMUL="Value Intensity";
|
MFX_GRADEVALMUL="Value Intensity";
|
||||||
MFX_GRADEVALPOW="Value Gamma";
|
MFX_GRADEVALPOW="Value Gamma";
|
||||||
|
MFX_LUTGRADE="LUT Grading";
|
||||||
|
MFX_LUTTEX="LUT Index";
|
||||||
|
MFX_LUTBLEND="Blend Factor";
|
||||||
|
MFX_TECHNICOLOR="Technicolor";
|
||||||
|
MFX_TECHBLEND="Blend Factor";
|
||||||
MFX_CMAT="Color Matrix";
|
MFX_CMAT="Color Matrix";
|
||||||
MFX_CMAT_RR="Red→Red";
|
MFX_CMAT_RR="Red→Red";
|
||||||
MFX_CMAT_RG="Red→Green";
|
MFX_CMAT_RG="Red→Green";
|
||||||
|
|
@ -144,7 +165,7 @@ MFX_BSS="BlurSharpShift";
|
||||||
MFX_BSS_1="(Some pretentious schmucks";
|
MFX_BSS_1="(Some pretentious schmucks";
|
||||||
MFX_BSS_2="claim this \"enhances\" the visuals)";
|
MFX_BSS_2="claim this \"enhances\" the visuals)";
|
||||||
MFX_BSSBLURENABLE="Blur Enable";
|
MFX_BSSBLURENABLE="Blur Enable";
|
||||||
MFX_BSSBLURRADIUS="BlurRadius";
|
MFX_BSSBLURRADIUS="Blur Radius";
|
||||||
MFX_BSSSHARPENABLE="Sharp Enable";
|
MFX_BSSSHARPENABLE="Sharp Enable";
|
||||||
MFX_BSSSHARPRADIUS="Sharp Radius";
|
MFX_BSSSHARPRADIUS="Sharp Radius";
|
||||||
MFX_BSSSHARPAMOUNT="Sharp Amount";
|
MFX_BSSSHARPAMOUNT="Sharp Amount";
|
||||||
|
|
@ -177,3 +198,10 @@ MFX_PALNUM="Palette";
|
||||||
MFX_PALSAT="Saturation";
|
MFX_PALSAT="Saturation";
|
||||||
MFX_PALPOW="Gamma";
|
MFX_PALPOW="Gamma";
|
||||||
MFX_PALDITHER="Dithering";
|
MFX_PALDITHER="Dithering";
|
||||||
|
MFX_PRESETNUM="Preset Slot";
|
||||||
|
MFX_PRESETNAME="Preset Name";
|
||||||
|
MFX_LOADPRESET="Load Preset";
|
||||||
|
MFX_SAVEPRESET="Save Preset";
|
||||||
|
MFX_PRESETEMPTY="MariFX Preset #%d is empty.";
|
||||||
|
MFX_PRESETLOADED="MariFX Preset #%d (%s) Loaded.";
|
||||||
|
MFX_PRESETSAVED="MariFX Preset #%d (%s) Saved.";
|
||||||
|
|
|
||||||
47
menudef.txt
47
menudef.txt
|
|
@ -104,17 +104,41 @@ OptionValue "MFXPalette"
|
||||||
63, "$MFX_PALETTE64"
|
63, "$MFX_PALETTE64"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OptionValue "MFXLUT"
|
||||||
|
{
|
||||||
|
0, "$MFX_LUT1"
|
||||||
|
1, "$MFX_LUT2"
|
||||||
|
2, "$MFX_LUT3"
|
||||||
|
3, "$MFX_LUT4"
|
||||||
|
4, "$MFX_LUT5"
|
||||||
|
5, "$MFX_LUT6"
|
||||||
|
6, "$MFX_LUT7"
|
||||||
|
7, "$MFX_LUT8"
|
||||||
|
8, "$MFX_LUT9"
|
||||||
|
9, "$MFX_LUT10"
|
||||||
|
10, "$MFX_LUT11"
|
||||||
|
11, "$MFX_LUT12"
|
||||||
|
12, "$MFX_LUT13"
|
||||||
|
13, "$MFX_LUT14"
|
||||||
|
14, "$MFX_LUT15"
|
||||||
|
15, "$MFX_LUT16"
|
||||||
|
}
|
||||||
|
|
||||||
OptionMenu "MFXOptionsMenu"
|
OptionMenu "MFXOptionsMenu"
|
||||||
{
|
{
|
||||||
Class MFXOptionMenu
|
Class MFXOptionMenu
|
||||||
Title "$MFX_TITLE"
|
Title "$MFX_TITLE"
|
||||||
|
MFXPresetList "$MFX_PRESETNUM", "mfx_presetslot"
|
||||||
|
TextField "$MFX_PRESETNAME", "mfx_presetname"
|
||||||
|
SafeCommand "$MFX_LOADPRESET", "event loadmfxpreset"
|
||||||
|
SafeCommand "$MFX_SAVEPRESET", "event savemfxpreset"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
StaticText "$MFX_LUMASHARPEN", "Gold"
|
StaticText "$MFX_LUMASHARPEN", "Gold"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
Option "$MFX_ENABLE", "mfx_lsharpenable", "YesNo"
|
Option "$MFX_ENABLE", "mfx_lsharpenable", "YesNo"
|
||||||
MFXSlider "$MFX_LSHARPRADIUS", "mfx_lsharpradius", 0, 1, 0.01, 2
|
MFXSlider "$MFX_LSHARPRADIUS", "mfx_lsharpradius", 0, 1, 0.01, 2
|
||||||
MFXSlider "$MFX_LSHARPTRESHOLD", "mfx_lsharpclamp", 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
|
MFXSlider "$MFX_LSHARPSTRENGTH", "mfx_lsharpblend", 0, 10, 0.01, 2
|
||||||
SafeCommand "$MFX_RESET", "event resetmfxvars 8"
|
SafeCommand "$MFX_RESET", "event resetmfxvars 8"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
StaticText "$MFX_GRAIN", "Gold"
|
StaticText "$MFX_GRAIN", "Gold"
|
||||||
|
|
@ -130,7 +154,7 @@ OptionMenu "MFXOptionsMenu"
|
||||||
StaticText "$MFX_DIRT", "Gold"
|
StaticText "$MFX_DIRT", "Gold"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
Option "$MFX_ENABLE", "mfx_dirtenable", "YesNo"
|
Option "$MFX_ENABLE", "mfx_dirtenable", "YesNo"
|
||||||
MFXSlider "$MFX_DIRTMC", "mfx_dirtmc", 1, 8, 1, 0
|
MFXSlider "$MFX_DIRTMC", "mfx_dirtmc", 1, 8, 0.01, 2
|
||||||
MFXSlider "$MFX_DIRTCFACTOR", "mfx_dirtcfactor", 0, 1, 0.01, 2
|
MFXSlider "$MFX_DIRTCFACTOR", "mfx_dirtcfactor", 0, 1, 0.01, 2
|
||||||
SafeCommand "$MFX_RESET", "event resetmfxvars 1"
|
SafeCommand "$MFX_RESET", "event resetmfxvars 1"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
|
|
@ -153,6 +177,19 @@ OptionMenu "MFXOptionsMenu"
|
||||||
MFXSlider "$MFX_GRADEVALPOW", "mfx_gradevalpow", 0, 2, 0.01, 2
|
MFXSlider "$MFX_GRADEVALPOW", "mfx_gradevalpow", 0, 2, 0.01, 2
|
||||||
SafeCommand "$MFX_RESET", "event resetmfxvars 2"
|
SafeCommand "$MFX_RESET", "event resetmfxvars 2"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
|
StaticText "$MFX_LUTGRADE", "Gold"
|
||||||
|
StaticText " "
|
||||||
|
Option "$MFX_ENABLE", "mfx_lutenable", "YesNo"
|
||||||
|
Option "$MFX_LUTTEX", "mfx_lutindex", "MFXLUT"
|
||||||
|
MFXSlider "$MFX_LUTBLEND", "mfx_lutblend", 0, 1, 0.01, 2
|
||||||
|
SafeCommand "$MFX_RESET", "event resetmfxvars 9"
|
||||||
|
StaticText " "
|
||||||
|
StaticText "$MFX_TECHNICOLOR", "Gold"
|
||||||
|
StaticText " "
|
||||||
|
Option "$MFX_ENABLE", "mfx_techenable", "YesNo"
|
||||||
|
MFXSlider "$MFX_TECHBLEND", "mfx_techblend", 0, 1, 0.01, 2
|
||||||
|
SafeCommand "$MFX_RESET", "event resetmfxvars 10"
|
||||||
|
StaticText " "
|
||||||
StaticText "$MFX_CMAT", "Gold"
|
StaticText "$MFX_CMAT", "Gold"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
Option "$MFX_ENABLE", "mfx_cmatenable", "YesNo"
|
Option "$MFX_ENABLE", "mfx_cmatenable", "YesNo"
|
||||||
|
|
@ -200,10 +237,10 @@ OptionMenu "MFXOptionsMenu"
|
||||||
StaticText "$MFX_BSS_2", "Brown"
|
StaticText "$MFX_BSS_2", "Brown"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
Option "$MFX_BSSBLURENABLE", "mfx_bssblurenable", "YesNo"
|
Option "$MFX_BSSBLURENABLE", "mfx_bssblurenable", "YesNo"
|
||||||
MFXSlider "$MFX_BSSBLURRADIUS", "mfx_bssblurradius", 0, 1, 0.05, 2
|
MFXSlider "$MFX_BSSBLURRADIUS", "mfx_bssblurradius", 0, 1, 0.01, 2
|
||||||
Option "$MFX_BSSSHARPENABLE", "mfx_bsssharpenable", "YesNo"
|
Option "$MFX_BSSSHARPENABLE", "mfx_bsssharpenable", "YesNo"
|
||||||
MFXSlider "$MFX_BSSSHARPRADIUS", "mfx_bsssharpradius", 0, 1, 0.05, 2
|
MFXSlider "$MFX_BSSSHARPRADIUS", "mfx_bsssharpradius", 0, 1, 0.01, 2
|
||||||
MFXSlider "$MFX_BSSSHARPAMOUNT", "mfx_bsssharpamount", 0, 8, 0.1, 1
|
MFXSlider "$MFX_BSSSHARPAMOUNT", "mfx_bsssharpamount", 0, 8, 0.01, 2
|
||||||
Option "$MFX_BSSSHIFTENABLE", "mfx_bssshiftenable", "YesNo"
|
Option "$MFX_BSSSHIFTENABLE", "mfx_bssshiftenable", "YesNo"
|
||||||
MFXSlider "$MFX_BSSSHIFTRADIUS", "mfx_bssshiftradius", 0, 1, 0.05, 2
|
MFXSlider "$MFX_BSSSHIFTRADIUS", "mfx_bssshiftradius", 0, 1, 0.05, 2
|
||||||
SafeCommand "$MFX_RESET", "event resetmfxvars 5"
|
SafeCommand "$MFX_RESET", "event resetmfxvars 5"
|
||||||
|
|
|
||||||
20
shaders/glsl/mfx_lutgrading.fp
Normal file
20
shaders/glsl/mfx_lutgrading.fp
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
LUT color grading from MariENB
|
||||||
|
(C)2012-2021 Marisa Kirisame
|
||||||
|
*/
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec2 coord = TexCoord;
|
||||||
|
vec4 res = texture(InputTexture,coord);
|
||||||
|
vec3 lc = clamp(res.rgb,0.,63./64.);
|
||||||
|
vec2 lcoord = vec2((lc.r+lutindex)/16.,lc.g/64.)+vec2(1./2048,1./8192.);
|
||||||
|
double minb = floor(lc.b*64.)/64.;
|
||||||
|
double maxb = ceil(lc.b*64.)/64.;
|
||||||
|
double theta = fract(lc.b*64.);
|
||||||
|
vec3 luta = textureLod(LUTTexture,lcoord+vec2(0,minb),0.).rgb;
|
||||||
|
vec3 lutb = textureLod(LUTTexture,lcoord+vec2(0,maxb),0.).rgb;
|
||||||
|
vec3 lutm = mix(luta,lutb,vec3(theta)); // has to be vec3 for whatever reason
|
||||||
|
res.rgb = mix(res.rgb,lutm,lutblend);
|
||||||
|
FragColor = res;
|
||||||
|
}
|
||||||
16
shaders/glsl/mfx_technicolor.fp
Normal file
16
shaders/glsl/mfx_technicolor.fp
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
"Technicolor" filter from MariENB
|
||||||
|
(C)2012-2021 Marisa Kirisame
|
||||||
|
*/
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec2 coord = TexCoord;
|
||||||
|
vec4 res = texture(InputTexture,coord);
|
||||||
|
res.rgb = clamp(res.rgb,0.,1.);
|
||||||
|
float red = 1.-(res.r-(res.g+res.b)*.5);
|
||||||
|
float green = 1.-(res.g-(res.r+res.b)*.5);
|
||||||
|
float blue = 1.-(res.b-(res.r+res.g)*.5);
|
||||||
|
vec3 tint = vec3(green*blue,red*blue,red*green)*res.rgb;
|
||||||
|
res.rgb = mix(res.rgb,res.rgb+.5*(tint-res.rgb),techblend);
|
||||||
|
FragColor = res;
|
||||||
|
}
|
||||||
BIN
textures/mfxlut.png
Normal file
BIN
textures/mfxlut.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 MiB |
178
zscript.txt
178
zscript.txt
|
|
@ -1,4 +1,139 @@
|
||||||
version "3.3"
|
version "4.7"
|
||||||
|
|
||||||
|
// preset save functions
|
||||||
|
Class MFXPresetUtility
|
||||||
|
{
|
||||||
|
static clearscope void SavePreset( int slot )
|
||||||
|
{
|
||||||
|
let lmp = Wads.CheckNumForFullname("cvarinfo.marifx");
|
||||||
|
String dat = Wads.ReadLump(lmp);
|
||||||
|
// fucking Windows
|
||||||
|
dat.Substitute("\r","");
|
||||||
|
Array<String> list, ln;
|
||||||
|
list.Clear();
|
||||||
|
dat.Split(list,"\n");
|
||||||
|
let dct = Dictionary.Create();
|
||||||
|
bool dosave = false;
|
||||||
|
CVar v;
|
||||||
|
String pn = "";
|
||||||
|
for ( int i=0; i<list.Size(); i++ )
|
||||||
|
{
|
||||||
|
if ( list[i].Mid(3,17) == "BEGIN PRESET VARS" ) dosave = true;
|
||||||
|
else if ( list[i].Mid(3,15) == "END PRESET VARS" ) dosave = false;
|
||||||
|
if ( !dosave || (list[i].Length() == 0) || (list[i].Left(2) == "//") || (list[i].Left(1) == "") )
|
||||||
|
continue;
|
||||||
|
int eq = list[i].IndexOf("=");
|
||||||
|
if ( eq == -1 ) continue;
|
||||||
|
list[i].Truncate(eq);
|
||||||
|
ln.Clear();
|
||||||
|
list[i].Split(ln," ",0);
|
||||||
|
for ( int j=0; j<ln.Size(); j++ )
|
||||||
|
{
|
||||||
|
if ( (ln[j].Left(4) != "mfx_") ) continue;
|
||||||
|
v = CVar.FindCVar(ln[j]);
|
||||||
|
if ( !v ) continue;
|
||||||
|
String str = v.GetString();
|
||||||
|
dct.Insert(ln[j],str);
|
||||||
|
if ( ln[j] == "mfx_presetname" ) pn = str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
v = CVar.FindCVar("mfx_preset"..slot);
|
||||||
|
if ( v ) v.SetString(dct.ToString());
|
||||||
|
Console.Printf(StringTable.Localize("$MFX_PRESETSAVED"),slot,pn);
|
||||||
|
}
|
||||||
|
|
||||||
|
static clearscope void LoadPreset( int slot )
|
||||||
|
{
|
||||||
|
CVar v = CVar.FindCVar("mfx_preset"..slot);
|
||||||
|
if ( !v ) return;
|
||||||
|
String str = v.GetString();
|
||||||
|
if ( str == "" )
|
||||||
|
{
|
||||||
|
Console.Printf(StringTable.Localize("$MFX_PRESETEMPTY"),slot);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let dct = Dictionary.FromString(str);
|
||||||
|
let di = DictionaryIterator.Create(dct);
|
||||||
|
String pn = "";
|
||||||
|
while ( di.Next() )
|
||||||
|
{
|
||||||
|
String k = di.Key();
|
||||||
|
v = CVar.FindCVar(k);
|
||||||
|
if ( !v ) continue;
|
||||||
|
String str = di.Value();
|
||||||
|
v.SetString(str);
|
||||||
|
if ( k == "mfx_presetname" ) pn = str;
|
||||||
|
}
|
||||||
|
Console.Printf(StringTable.Localize("$MFX_PRESETLOADED"),slot,pn);
|
||||||
|
}
|
||||||
|
|
||||||
|
static clearscope String GetPresetName( int slot )
|
||||||
|
{
|
||||||
|
CVar v = CVar.FindCVar("mfx_preset"..slot);
|
||||||
|
if ( !v ) return "Error";
|
||||||
|
String str = v.GetString();
|
||||||
|
if ( str == "" ) return "Empty";
|
||||||
|
let dct = Dictionary.FromString(str);
|
||||||
|
return dct.At("mfx_presetname");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// for preset listing
|
||||||
|
Class OptionMenuItemMFXPresetList : OptionMenuItemOptionBase
|
||||||
|
{
|
||||||
|
CVar mCVar;
|
||||||
|
String names[8];
|
||||||
|
|
||||||
|
OptionMenuItemMFXPresetList Init( String label, Name command, CVar graycheck = null, int center = 0 )
|
||||||
|
{
|
||||||
|
Super.Init(label,command,'',graycheck,center);
|
||||||
|
mCVar = CVar.FindCVar(mAction);
|
||||||
|
UpdateNames();
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateNames()
|
||||||
|
{
|
||||||
|
for ( int i=0; i<8; i++ )
|
||||||
|
names[i] = MFXPresetUtility.GetPresetName(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
override int GetSelection()
|
||||||
|
{
|
||||||
|
return clamp(mCVar.GetInt(),0,7);
|
||||||
|
}
|
||||||
|
|
||||||
|
override void SetSelection( int Selection )
|
||||||
|
{
|
||||||
|
mCVar.SetInt(clamp(Selection,0,7));
|
||||||
|
}
|
||||||
|
|
||||||
|
override int Draw( OptionMenuDescriptor desc, int y, int indent, bool selected )
|
||||||
|
{
|
||||||
|
if ( mCenter ) indent = (screen.GetWidth()/2);
|
||||||
|
drawLabel(indent,y,selected?OptionMenuSettings.mFontColorSelection:OptionMenuSettings.mFontColor,isGrayed());
|
||||||
|
int sel = GetSelection();
|
||||||
|
drawValue(indent,y,OptionMenuSettings.mFontColorValue,String.Format("%d - %s",sel,names[sel]),isGrayed());
|
||||||
|
return indent;
|
||||||
|
}
|
||||||
|
|
||||||
|
override bool MenuEvent( int mkey, bool fromcontroller )
|
||||||
|
{
|
||||||
|
int Selection = GetSelection();
|
||||||
|
if ( mkey == Menu.MKEY_Left )
|
||||||
|
{
|
||||||
|
if ( --Selection < 0 ) Selection = 7;
|
||||||
|
}
|
||||||
|
else if ( (mkey == Menu.MKEY_Right) || (mkey == Menu.MKEY_Enter) )
|
||||||
|
{
|
||||||
|
if ( ++Selection > 7 ) Selection = 0;
|
||||||
|
}
|
||||||
|
else return OptionMenuItem.MenuEvent(mkey,fromcontroller);
|
||||||
|
SetSelection(Selection);
|
||||||
|
Menu.MenuSound("menu/change");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// keyboard input snaps to increment
|
// keyboard input snaps to increment
|
||||||
// holding shift increments by ten steps
|
// holding shift increments by ten steps
|
||||||
|
|
@ -21,7 +156,7 @@ Class OptionMenuItemMFXSlider : OptionMenuItemSlider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// passes shift presses to MFXSliders
|
// passes shift/alt presses to MFXSliders
|
||||||
Class MFXOptionMenu : OptionMenu
|
Class MFXOptionMenu : OptionMenu
|
||||||
{
|
{
|
||||||
override void Init( Menu parent, OptionMenuDescriptor desc )
|
override void Init( Menu parent, OptionMenuDescriptor desc )
|
||||||
|
|
@ -42,6 +177,17 @@ Class MFXOptionMenu : OptionMenu
|
||||||
}
|
}
|
||||||
return Super.OnUIEvent(ev);
|
return Super.OnUIEvent(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override void OnReturn()
|
||||||
|
{
|
||||||
|
Super.OnReturn();
|
||||||
|
for ( int i=0; i<mDesc.mItems.size(); i++ )
|
||||||
|
{
|
||||||
|
if ( !(mDesc.mItems[i] is 'OptionMenuItemMFXPresetList') )
|
||||||
|
continue;
|
||||||
|
OptionMenuItemMFXPresetList(mDesc.mItems[i]).UpdateNames();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class MariFXHandler : StaticEventHandler
|
Class MariFXHandler : StaticEventHandler
|
||||||
|
|
@ -76,6 +222,13 @@ Class MariFXHandler : StaticEventHandler
|
||||||
Shader.SetUniform1f(p,"mfx_grading","gradesatpow",mfx_gradesatpow);
|
Shader.SetUniform1f(p,"mfx_grading","gradesatpow",mfx_gradesatpow);
|
||||||
Shader.SetUniform1f(p,"mfx_grading","gradevalmul",mfx_gradevalmul);
|
Shader.SetUniform1f(p,"mfx_grading","gradevalmul",mfx_gradevalmul);
|
||||||
Shader.SetUniform1f(p,"mfx_grading","gradevalpow",mfx_gradevalpow);
|
Shader.SetUniform1f(p,"mfx_grading","gradevalpow",mfx_gradevalpow);
|
||||||
|
// LUT GRADING
|
||||||
|
Shader.SetEnabled(p,"mfx_lutgrading",mfx_lutenable);
|
||||||
|
Shader.SetUniform1i(p,"mfx_lutgrading","lutindex",mfx_lutindex);
|
||||||
|
Shader.SetUniform1f(p,"mfx_lutgrading","lutblend",mfx_lutblend);
|
||||||
|
// TECHNICOLOR
|
||||||
|
Shader.SetEnabled(p,"mfx_technicolor",mfx_techenable);
|
||||||
|
Shader.SetUniform1f(p,"mfx_technicolor","techblend",mfx_techblend);
|
||||||
// COLOR MATRIX
|
// COLOR MATRIX
|
||||||
Shader.SetEnabled(p,"mfx_colormatrix",mfx_cmatenable);
|
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","redrow",(mfx_cmat_rr,mfx_cmat_rg,mfx_cmat_rb));
|
||||||
|
|
@ -160,7 +313,17 @@ Class MariFXHandler : StaticEventHandler
|
||||||
override void ConsoleProcess( ConsoleEvent e )
|
override void ConsoleProcess( ConsoleEvent e )
|
||||||
{
|
{
|
||||||
PlayerInfo p = players[consoleplayer];
|
PlayerInfo p = players[consoleplayer];
|
||||||
if ( e.Name ~== "resetmfxvars" )
|
if ( e.Name ~== "loadmfxpreset" )
|
||||||
|
{
|
||||||
|
int slot = clamp(mfx_presetslot,0,7);
|
||||||
|
MFXPresetUtility.LoadPreset(slot);
|
||||||
|
}
|
||||||
|
else if ( e.Name ~== "savemfxpreset" )
|
||||||
|
{
|
||||||
|
int slot = clamp(mfx_presetslot,0,7);
|
||||||
|
MFXPresetUtility.SavePreset(slot);
|
||||||
|
}
|
||||||
|
else if ( e.Name ~== "resetmfxvars" )
|
||||||
{
|
{
|
||||||
switch( e.args[0] )
|
switch( e.args[0] )
|
||||||
{
|
{
|
||||||
|
|
@ -275,6 +438,15 @@ Class MariFXHandler : StaticEventHandler
|
||||||
CVar.FindCVar('mfx_lsharpclamp').ResetToDefault();
|
CVar.FindCVar('mfx_lsharpclamp').ResetToDefault();
|
||||||
CVar.FindCVar('mfx_lsharpblend').ResetToDefault();
|
CVar.FindCVar('mfx_lsharpblend').ResetToDefault();
|
||||||
break;
|
break;
|
||||||
|
case 9:
|
||||||
|
CVar.FindCVar('mfx_lutenable').ResetToDefault();
|
||||||
|
CVar.FindCVar('mfx_lutindex').ResetToDefault();
|
||||||
|
CVar.FindCVar('mfx_lutblend').ResetToDefault();
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
CVar.FindCVar('mfx_techenable').ResetToDefault();
|
||||||
|
CVar.FindCVar('mfx_techblend').ResetToDefault();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue