Keep old naive dither as an option.

This commit is contained in:
Marisa the Magician 2023-03-04 18:19:38 +01:00
commit e8b7b1c29f
10 changed files with 145 additions and 36 deletions

View file

@ -160,39 +160,82 @@ Class MariFXHandler : StaticEventHandler
}
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","paldepth",int(2.**mfx_paldepth)-1);
switch ( mfx_paldither )
if ( mfx_palnaive )
{
case 0:
Shader.SetUniform1i(p,"mfx_palette","dsize",2);
Shader.SetUniform1i(p,"mfx_palette","doffset",0);
break;
case 1:
Shader.SetUniform1i(p,"mfx_palette","dsize",2);
Shader.SetUniform1i(p,"mfx_palette","doffset",2);
break;
case 2:
Shader.SetUniform1i(p,"mfx_palette","dsize",4);
Shader.SetUniform1i(p,"mfx_palette","doffset",4);
break;
case 3:
Shader.SetUniform1i(p,"mfx_palette","dsize",8);
Shader.SetUniform1i(p,"mfx_palette","doffset",8);
break;
case 4:
Shader.SetUniform1i(p,"mfx_palette","dsize",16);
Shader.SetUniform1i(p,"mfx_palette","doffset",16);
break;
default:
Shader.SetUniform1i(p,"mfx_palette","dsize",1);
Shader.SetUniform1i(p,"mfx_palette","doffset",0);
break;
Shader.SetEnabled(p,"mfx_palette",false);
Shader.SetEnabled(p,"mfx_palette_naive",mfx_palenable);
Shader.SetUniform2f(p,"mfx_palette_naive","sfact",mfx_retroenable?bresl:rresl);
Shader.SetUniform1f(p,"mfx_palette_naive","palsat",mfx_palsat);
Shader.SetUniform1f(p,"mfx_palette_naive","palpow",mfx_palpow);
bool dospread = true;
switch ( mfx_paldither )
{
case 0:
Shader.SetUniform1i(p,"mfx_palette_naive","dsize",2);
Shader.SetUniform1i(p,"mfx_palette_naive","doffset",0);
break;
case 1:
Shader.SetUniform1i(p,"mfx_palette_naive","dsize",2);
Shader.SetUniform1i(p,"mfx_palette_naive","doffset",2);
break;
case 2:
Shader.SetUniform1i(p,"mfx_palette_naive","dsize",4);
Shader.SetUniform1i(p,"mfx_palette_naive","doffset",4);
break;
case 3:
Shader.SetUniform1i(p,"mfx_palette_naive","dsize",8);
Shader.SetUniform1i(p,"mfx_palette_naive","doffset",8);
break;
case 4:
Shader.SetUniform1i(p,"mfx_palette_naive","dsize",16);
Shader.SetUniform1i(p,"mfx_palette_naive","doffset",16);
break;
default:
Shader.SetUniform1i(p,"mfx_palette_naive","dsize",1);
Shader.SetUniform1i(p,"mfx_palette_naive","doffset",0);
dospread = false;
break;
}
Shader.SetUniform1f(p,"mfx_palette_naive","paldither",dospread?mfx_palspread:0.);
Shader.SetUniform1i(p,"mfx_palette_naive","palnum",mfx_palnum);
}
else
{
Shader.SetEnabled(p,"mfx_palette_naive",false);
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","paldepth",int(2.**mfx_paldepth)-1);
switch ( mfx_paldither )
{
case 0:
Shader.SetUniform1i(p,"mfx_palette","dsize",2);
Shader.SetUniform1i(p,"mfx_palette","doffset",0);
break;
case 1:
Shader.SetUniform1i(p,"mfx_palette","dsize",2);
Shader.SetUniform1i(p,"mfx_palette","doffset",2);
break;
case 2:
Shader.SetUniform1i(p,"mfx_palette","dsize",4);
Shader.SetUniform1i(p,"mfx_palette","doffset",4);
break;
case 3:
Shader.SetUniform1i(p,"mfx_palette","dsize",8);
Shader.SetUniform1i(p,"mfx_palette","doffset",8);
break;
case 4:
Shader.SetUniform1i(p,"mfx_palette","dsize",16);
Shader.SetUniform1i(p,"mfx_palette","doffset",16);
break;
default:
Shader.SetUniform1i(p,"mfx_palette","dsize",1);
Shader.SetUniform1i(p,"mfx_palette","doffset",0);
break;
}
Shader.SetUniform1i(p,"mfx_palette","palnum",mfx_palnum);
}
Shader.SetUniform1i(p,"mfx_palette","palnum",mfx_palnum);
}
override void ConsoleProcess( ConsoleEvent e )
{
@ -323,8 +366,10 @@ Class MariFXHandler : StaticEventHandler
CVar.FindCVar('mfx_palnum').ResetToDefault();
CVar.FindCVar('mfx_palsat').ResetToDefault();
CVar.FindCVar('mfx_palpow').ResetToDefault();
CVar.FindCVar('mfx_palnaive').ResetToDefault();
CVar.FindCVar('mfx_paldither').ResetToDefault();
CVar.FindCVar('mfx_paldepth').ResetToDefault();
CVar.FindCVar('mfx_palspread').ResetToDefault();
break;
case 8:
CVar.FindCVar('mfx_lsharpenable').ResetToDefault();

View file

@ -154,6 +154,14 @@ Class OptionMenuItemMFXSlider : OptionMenuItemSlider
Menu.MenuSound("menu/change");
return true;
}
override bool isGrayed()
{
// HACK
if ( (mAction == 'mfx_paldepth') && mfx_palnaive ) return true;
if ( (mAction == 'mfx_palspread') && !mfx_palnaive ) return true;
return Super.isGrayed();
}
}
// passes shift/alt presses to MFXSliders