From 3f83453ee70a0e747cace0627e34018832b00336 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sat, 5 Feb 2022 22:48:15 +0100 Subject: [PATCH] Updates to palette filter. --- gldefs.txt | 1 + shaders/glsl/mfx_palette.fp | 36 +++++++++--------------------------- textures/mfxdither.png | Bin 0 -> 140 bytes zscript/mfx_menu.zsc | 18 ++++++++++++------ 4 files changed, 22 insertions(+), 33 deletions(-) create mode 100644 textures/mfxdither.png diff --git a/gldefs.txt b/gldefs.txt index 65ac1f2..865cef0 100644 --- a/gldefs.txt +++ b/gldefs.txt @@ -174,6 +174,7 @@ HardwareShader postprocess scene { Name "mfx_palette" Shader "shaders/glsl/mfx_palette.fp" 330 + Texture DitherTexture "textures/mfxdither.png" Texture PalLUTTexture "textures/mfxpal.png" Uniform vec2 sfact Uniform float palsat diff --git a/shaders/glsl/mfx_palette.fp b/shaders/glsl/mfx_palette.fp index 4b5daaf..046aafb 100644 --- a/shaders/glsl/mfx_palette.fp +++ b/shaders/glsl/mfx_palette.fp @@ -1,51 +1,33 @@ /* RetroFX palette reduction from MariENB - (C)2012-2021 Marisa Kirisame + (C)2012-2022 Marisa Kirisame */ vec3 rgb2hsv( vec3 c ) { - vec4 K = vec4(0.0,-1.0/3.0,2.0/3.0,-1.0); + vec4 K = vec4(0.,-1./3.,2./3.,-1.); vec4 p = (c.g= 1.0 ) res.r += paldither; - if ( res.g >= 1.0 ) res.g += paldither; - if ( res.b >= 1.0 ) res.b += paldither; - res.rgb += paldither*dither8[int(coord.x*sfact.x)%8+int(coord.y*sfact.y)%8*8]-0.5*paldither; + ivec2 dcoord = ivec2(int(coord.x*sfact.x)%8,int(coord.y*sfact.y)%8); + res.rgb += paldither*texelFetch(DitherTexture,dcoord,0).x-.5*paldither; vec3 lc = clamp(floor(res.rgb*64),0,63); ivec2 lcoord = ivec2(lc.r,lc.g+lc.b*64); lcoord.x += 64*palnum; diff --git a/textures/mfxdither.png b/textures/mfxdither.png new file mode 100644 index 0000000000000000000000000000000000000000..6b32e3e6de807257f6cfd6a2a4ee1e790cf3627f GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0y~yVBi2@5W(;;k<^Pks#Eq$AD{sDsnF$W9|Ft8st|IU2a_%mbsfr0}(AT{dG p#jh(r7QW25{D8p$p92O57RoC+ZHja_z`(%3;OXk;vd$@?2>`hvF(&{3 literal 0 HcmV?d00001 diff --git a/zscript/mfx_menu.zsc b/zscript/mfx_menu.zsc index e80e3cd..69c1263 100644 --- a/zscript/mfx_menu.zsc +++ b/zscript/mfx_menu.zsc @@ -159,11 +159,22 @@ Class OptionMenuItemMFXSlider : OptionMenuItemSlider // passes shift/alt presses to MFXSliders Class MFXOptionMenu : OptionMenu { + private void UpdatePresetNames() + { + for ( int i=0; i