slang-shaders/bezel/koko-aio/shaders/config.inc
2022-12-05 18:48:10 -06:00

491 lines
22 KiB
C++

//Setting the glow/halo sharpness parameter to this
//will skip the blurring phase and lowers the gpu use
//Set this to the same value as used for the maximum
//of IN_GLOW_WH, HALO_W and HALO_H
#define GLOW_SHARP_MAX 7
//Consider content interlaced if lines are more than this
#define MIN_LINES_INTERLACED 300
//Sort of dithering used in vignette, spot, backlight leds
#define NOISEPOWER ((params.OutputSize.z)*3)
//Bezel reflection area size in relation to the game frame
//Use the lowest possible value for best performance
//It is also used to compute wrap/repeated coordinates.
#define BEZEL_REFLECTION_AREA_SIZE 0.175
// 0.0-1.0: sensitivity to scene change (ambilike stuff), 0.0 changes more
#define AMBI_SCENE_CHG_THRSHLD 0.07
// The following will allow to sample at reduced interval
// The scene change detection logic will take advantage of it
// So that quick fades will still be treated as scene changes
#define AMBI_AVGLUM_DIVIDER 4
// The following defines the speed of the color fades
// when changing scene. (range 0..1)
// It is wise to correlate it with avglum_divider
// try between (1/avglum_divider) and (1/avglum_divider)/3
#define AMBI_FAST_STEP 0.125
#define eps 1e-5
layout(push_constant) uniform Push {
vec4 SourceSize;
vec4 OriginalSize;
vec4 OutputSize;
vec4 final_passSize;
uint FrameCount;
float SCANLINE_DARK;
float VMASK_OVERWHITE ;
float VMASK_DARKLINE_SCALE;
float VMASK_GAP;
float VMASK_USE_GM;
float DRKLN_OVERWHITE ;
float DO_DARKLINES_VOFFSET ;
float DARKLINES_PERIOD ;
float HALO_W ;
float HALO_H ;
float HALO_POWER ;
float HALO_GAMMA ;
float DO_BLOOM ; //4
float BLOOM_QUALITY ; //1
} params;
layout(std140, set = 0, binding = 0) uniform UBO {
mat4 MVP;
vec4 FinalViewportSize;
vec4 in_glow_passSize;
vec4 FXAA_passSize;
//vec4 main_passSize;
//vec4 monitor_bodySize;
//vec4 bgSize;
vec4 avglum_passSize;
vec4 first_passSize;
float DO_SCANLINES;
float DO_IN_GLOW;
float DO_VMASK_AND_DARKLINES ;
float MASK_COMPENSATION ;
float DO_HALO ;
float DO_CCORRECTION;
float DO_ALT_BLANK;
//float IN_GLOW_ADD ;
float SCANLINES_BLEEDING ;
float IN_GLOW_WH ;
float IN_GLOW_POWER ;
float IN_GLOW_GAMMA ;
float BLOOM_MIX;
float BLOOM_SIZE ; //1
float BLOOM_GAMMA; //1
float BLOOM_BYPASS; //1
float BLOOM_POWER; //1
float BLOOM_OVER_WHITE;
float BLOOM_GAMMA_OUT;
float ALT_BLANK_STRENGTH ; //2 FIXME to 1
float ALT_BLANK_PERIOD ;
float DO_FXAA ; //1
float DO_SAT_BLEED;
float SAT_BLEED_SIZE_LEFT;
float SAT_BLEED_SIZE_RIGHT;
float SAT_BLEED_FALLOFF;
float SAT_BLEED_STRENGTH;
float SAT_BLEED_PAL;
float SCANLINE_FLICKERING ; //2
float SCANLINE_FLICKERING_POWER;
float SCANLINE_DISABLE_ON_INTERLACE;
float SCANLINE_COMPENSATION;
float RGB_MASK_STRENGTH;
float DARKLINES_STRENGTH;
float GAMMA_OUT ; //1
float SATURATION;
float LUMINANCE;
float CONTRAST;
float BRIGHTNESS;
float TEMPERATURE;
float DO_CURVATURE;
float GEOM_WARP_X;
float GEOM_WARP_Y;
float GEOM_CORNER_SIZE;
float GEOM_CORNER_SMOOTH;
float DO_BEZEL;
float BEZEL_R;
float BEZEL_G;
float BEZEL_B;
float BEZEL_CON;
float BEZEL_INNER_ZOOM;
float BEZEL_IMAGE_BORDER;
float BEZEL_FRAME_ZOOM;
float DO_SPOT;
float S_POSITION;
float S_SIZE;
float S_POWER;
float S_BYPASS;
float DO_VIGNETTE;
float V_SIZE;
float V_POWER;
float V_BYPASS;
float DO_DYNZOOM;
float DYNZOOM_FACTOR;
float DO_AMBILIGHT;
float AMBI_FALLOFF;
float AMBI_POWER;
float ASPECT_X;
float ASPECT_Y;
float AMBI_STEPS;
float DO_BG_IMAGE;
float BG_IMAGE_OVER;
float BG_IMAGE_OFFY;
float BG_IMAGE_OFFX;
float BG_IMAGE_ZOOM;
float DO_SHIFT_RGB;
float SHIFT_R;
float SHIFT_G;
float SHIFT_B;
float OFFSET_STRENGTH;
} global;
// Color correction
#pragma parameter DO_CCORRECTION "★ Color corrections enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter LUMINANCE " Luminance push (>1.0=clip)" 0.0 0.0 1.5 0.05
#pragma parameter SATURATION " Saturation in (1.0=off)" 1.0 0.0 2.0 0.01
#pragma parameter CONTRAST " Contrast in (0.0=off)" 0.0 -1.0 1.0 0.01
#pragma parameter BRIGHTNESS " Brightness in (0.0=off)" 0.0 -1.0 1.0 0.01
#pragma parameter TEMPERATURE " Temperature in (6500=off)" 6500.0 3000 10000.0 50.0
#pragma parameter GAMMA_OUT " Gamma out" 0.69 0.1 9.0 0.025
// FXAA
// Apply an antialiasing filter via FXAA from Nvidia.
#pragma parameter DO_FXAA "★ FXAA enable? ==>" 0.0 0.0 1.0 1.0
//Offset RGB
// Allow to shift Red, Green, Blue components along x and y axis
#pragma parameter DO_SHIFT_RGB "★ Shift RGB components enable? (bad with FXAA) ==>" 0.0 0.0 1.0 1.0
#pragma parameter OFFSET_STRENGTH " Strength" 0.5 0.0 1.0 0.1
#pragma parameter SHIFT_R " Red offset" -40.0 -210.0 189.0 1
#pragma parameter SHIFT_G " Green offset" 40.0 -210.0 189.0 1
#pragma parameter SHIFT_B " Blue offset" 3.0 -210.0 189.0 1
// YIQ/YUV bandwidth limited chroma bleeding.
#pragma parameter DO_SAT_BLEED "★ Bandwidth limited chroma bleeding enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter SAT_BLEED_PAL " Use PAL colorspace, not NTSC" 0.0 0.0 1.0 1.0
#pragma parameter SAT_BLEED_STRENGTH " Strength" 1.0 0.0 5.0 0.01
#pragma parameter SAT_BLEED_SIZE_LEFT " Size Left" 5.0 1.0 40.0 1.0
#pragma parameter SAT_BLEED_SIZE_RIGHT " Size Right" 5.0 1.0 40.0 1.0
#pragma parameter SAT_BLEED_FALLOFF " Falloff" 1.7 1.0 2.0 0.01
// Input glowing
// Emulates the glowing of the input signal by blurring it with "IN_GLOW_WH" sharpness.
// Apply a gamma filter "IN_GLOW_GAMMA" to "light" it, multiplying the result by "IN_GLOW_POWER" and
// finally interpolating(*) it with the source image.
// "IN_GLOW_ADD" allows to modulate from interpolation(*) to a sum, wihch may (or not) produce better effects.
// With "IN_GLOW_ADD=0" input glowing does not alter the RGB mask
// or slot mask applied to the image.
#pragma parameter DO_IN_GLOW "★ Glowing Input/power enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter IN_GLOW_POWER " Input signal glow strength" 0.45 0.0 5.0 0.05
#pragma parameter IN_GLOW_WH " Sharpness" 2.5 0.2 7.0 0.05
#pragma parameter IN_GLOW_GAMMA " Gamma, the higher, the less the glow on dark colors" 1.0 1.0 10.0 0.1
//#pragma parameter IN_GLOW_ADD " Post gain (0.0 to disable)" 0.0 0.0 1.0 0.05
// RGB Mask
// Emulates CRT RGB phosphors.
// This is done by multiplying the source image pixels, in turn, by red green or blue.
// The strenght of the multiplication, and so of the final effect is affected by "RGB_MASK_STRENGTH" value.
// A Value of 0 completely disable the effect.
// "VMASK_DARKLINE_SCALE" Scales the gaps, the width the mask, and the height of the rgm bask and darklines (for HiDPI).
// "VMASK_GAP" Will draw an horizontal gap between triads, for HiDPI monitors.
// "VMASK_USE_GM" exploit the rgb subpixel layout of the real monitor to higher the apparent RGB vmask resolution
// "VMASK_OVERWHITE" modulates the strenght of the effect depending on the source pixel brightness,
// This is handy if you want to keep a good image contrast/brightness, but keep in mind that other
// parameters like haloing and bloom.
// Aperture grille/slot mask (shadow mask not implemented) are handled via *DARKLINES*
// Draw darklines on screen coordinates, by mixing black pixels with the source image
// on final viewport coordinates.
// "DARKLINES_STRENGTH" expresses the final strenght of the effect.
// if "DO_DARKLINES_VOFFSET" is 0, straight horizontal black lines will be painted that emulates an aperture grille.
// "DARKLINES_PERIOD" expresses every how many lines draw a black one (or the height ov the RGB triads)
// "DO_DARKLINES_VOFFSET" lets you to vertically offset by ""DARKLINES_PERIOD/2" the lines every 3 screen pixels,
// allowing, in conjunction with RGB mask, to emulate slot mask
// MASK_COMPENSATION will, where possible, compensate for the loss of brightness by smartly pushing the source luminance
#pragma parameter DO_VMASK_AND_DARKLINES "★ RGB Masks and/or Darklines enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter MASK_COMPENSATION " Compensate for brightness loss" 0.0 0.0 1.0 0.05
#pragma parameter VMASK_DARKLINE_SCALE " (HiDPI) Vmask and Darklines multiplier" 1.0 1.0 4.0 1.0
#pragma parameter RGB_MASK_STRENGTH " Vmask Strength (0.0 to disable)" 0.75 0.0 1.0 0.05
#pragma parameter VMASK_USE_GM " RGB Mask: (LoDPI) Green,Magenta -> BGR" 0.0 0.0 1.0 1.0
#pragma parameter VMASK_GAP " RGB Mask: Horizontal Gap between triads" 0.0 0.0 1.0 1.0
#pragma parameter VMASK_OVERWHITE " RGB Mask: affect bright colors" 1.0 0.0 1.0 0.05
#pragma parameter DARKLINES_STRENGTH " Darklines: strength (0.0 to disable)" 0.65 0.0 1.0 0.05
#pragma parameter DO_DARKLINES_VOFFSET " Darklines: offset by triads" 1.0 0.0 1.0 1.0
#pragma parameter DARKLINES_PERIOD " Darklines: period (triad height)" 4.0 2.0 16.0 2.0
#pragma parameter DRKLN_OVERWHITE " Darklines: affect bright colors" 1.0 0.0 1.0 0.05
// Halo
// The parameters are the same as input glowing, but this time the effect is applie
// after emulating the RGB phosphors the aperture grille or the slot masks and, instead of
// multiplying the resulting picture by the source one, it is added.
// this means that haloing will produce solid colors,
// lessening afromentioned effects on bright colors.
#pragma parameter DO_HALO "★ Halo enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter HALO_POWER " Strength" 0.9 0.0 5.0 0.025
#pragma parameter HALO_W " Horizontal sharpness" 1.75 0.2 7.0 0.05
#pragma parameter HALO_H " Vertical sharpness" 1.75 0.2 7.0 0.05
#pragma parameter HALO_GAMMA " Gamma, the higher, the less the halo on dark colors" 2.0 1.0 10.0 0.1
// Scanlines
// Blank even source lines, the value from 0.0 to 1.0 expresses the darkness of the blanked lines
// 1.0 means no blank at all.
// SCANLINE_DARK controls the gap brightness
// SCANLINE_COMPENSATION will make scanlines brighter, where possible, to compensate for the loss of brightness
// SCANLINE_BLEEDING will make the whiter part of the scanline to bright the gap.
#pragma parameter DO_SCANLINES "★ Scanlines enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter SCANLINE_DARK " Scanlines gap brightness" 0.0 -0.5 1.0 0.05
#pragma parameter SCANLINE_COMPENSATION " Compensate for brightness loss" 0.0 0.0 1.0 0.1
#pragma parameter SCANLINES_BLEEDING " Scanlines bleeding" 0.0 0.0 3.0 0.05
// Alternate the drawing of the scanlines between frames. this will produce a flickering typical of
// interlaced screens; 0 disable the effect, 1 always enables it, 2 enables it only when
// the shader detects an interlaced signal, which actually means that the vertical resoution is "high enough"
#pragma parameter SCANLINE_FLICKERING " Interlace Flicker (0=off,1=on,2=if interlaced)" 2.0 0.0 2.0 1.0
#pragma parameter SCANLINE_FLICKERING_POWER " Interlace Flicker power" 0.75 0.0 4.0 0.1
#pragma parameter SCANLINE_DISABLE_ON_INTERLACE " Disable on interlaced screen" 0.0 0.0 1.0 1.0
// Bloom
// The image is downsampled, bloomed and mixed back with the original image.
// "BLOOM_MIX" is the final mix strength
// "BLOOM_SIZE" is the radius of the blurred image
// "BLOOM_QUALITY" express a tradeoff between quality and effect speed.
// "BLOOM_GAMMA" allows to apply more bloom on the bright colors of the source image
// "BLOOM_POWER" is the additional gain applied to the bloom
// "BLOOM_BYPASS" will show only the bloomed component
// the original image.
#pragma parameter DO_BLOOM "★ Bloom enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter BLOOM_MIX " Final mix, (0.0=off)" 0.2 0.0 1.0 0.01
#pragma parameter BLOOM_SIZE " Radius" 2.0 0.25 30.0 0.25
#pragma parameter BLOOM_QUALITY " Quality: more is better but slower" 1.0 1.0 32.0 1.0
#pragma parameter BLOOM_GAMMA " Input Gamma" 10.0 1.0 10.0 0.1
#pragma parameter BLOOM_POWER " Power multiplier" 10.0 1.0 100.0 0.5
#pragma parameter BLOOM_GAMMA_OUT " Output Gamma" 10.0 0.1 10.0 0.1
#pragma parameter BLOOM_OVER_WHITE " Strength on bright areas (0 = aura)" 0.5 0.0 1.0 0.05
#pragma parameter BLOOM_BYPASS " Bypass" 0.0 0.0 1.0 1.0
//Curvature parameters:
#pragma parameter DO_CURVATURE "★ Curvature enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter GEOM_WARP_X " Warp X" 0.3 0.0 6.0 0.05
#pragma parameter GEOM_WARP_Y " Warp Y" 0.0 0.0 6.0 0.05
#pragma parameter GEOM_CORNER_SIZE " Corner radius" 0.01 0.01 0.1 0.005
#pragma parameter GEOM_CORNER_SMOOTH " Corner sharpness" 350.0 50.0 1000.0 25.0
//Bezel related
#pragma parameter DO_BEZEL "★ Bezel enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter BEZEL_R " Bezel color: Red" -0.3 -0.5 0.5 0.01
#pragma parameter BEZEL_G " Bezel color: Green" -0.3 -0.5 0.5 0.01
#pragma parameter BEZEL_B " Bezel color: Blue" -0.3 -0.5 0.5 0.01
#pragma parameter BEZEL_CON " Bezel Contrast" 1.3 0.0 10.0 0.01
#pragma parameter BEZEL_INNER_ZOOM " Image zoom" -0.18 -1.5 0.5 0.01
#pragma parameter BEZEL_FRAME_ZOOM " Frame zoom" 0.0 -1.5 0.5 0.01
#pragma parameter BEZEL_IMAGE_BORDER " Image border" 1.01 1.0 1.2 0.01
#pragma parameter DO_BG_IMAGE "★ Backgound image enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter LABEL_WARNING1 " ⚠ RetroArch aspect needs to be set to Full! ⚠" 1.0 1.0 1.0 1.0
#pragma parameter BG_IMAGE_OVER " Image over content (alpha channel driven)?" 0.0 0.0 1.0 1.0
#pragma parameter BG_IMAGE_OFFX " Shift Image over X axis" 0.0 -1.0 1.0 0.001
#pragma parameter BG_IMAGE_OFFY " Shift Image over Y axis" 0.0 -1.0 1.0 0.001
#pragma parameter BG_IMAGE_ZOOM " Zoom Image" 1.0 -1.0 3.0 0.001
//Back leds
//Emulates leds under the monitor frame that slowly reacts to image contents
#pragma parameter DO_AMBILIGHT "★ Ambient light leds enable? ==> " 1.0 0.0 1.0 1.0
#pragma parameter LABEL_WARNING3 " ⚠ RetroArch aspect needs to be set to Full! ⚠" 1.0 1.0 1.0 1.0
#pragma parameter LABEL_WARNING4 " ⚠ Resize the window once if you see glitches! ⚠" 1.0 1.0 1.0 1.0
#pragma parameter AMBI_STEPS " Slowness" 60.0 5.0 1000.0 5.0
#pragma parameter AMBI_FALLOFF " Light Falloff" 0.7 0.1 3.0 0.01
#pragma parameter AMBI_POWER " Led power" 1.5 1.0 7.0 0.05
#pragma parameter label_ar "★ Aspect Ratio " 0.0 0.0 1.0 1.0
#pragma parameter ASPECT_X " Aspect Ratio Numerator (-x for a preset below)" 0.0 -5.0 256. 1.0
#pragma parameter ASPECT_Y " Aspect Ratio Denominator" 3.0 0.0 256. 1.0
#pragma parameter label_aspect_presets " Presets reference list:" 0.0 0.0 0.0 1.0
#pragma parameter label_aspect_preset0 " (0 = MAME 1.33)" 0.0 0.0 0.0 1.0
#pragma parameter label_aspect_preset1 " (-1 = NTSC 1.5)" 0.0 0.0 0.0 1.0
#pragma parameter label_aspect_preset2 " (-2 = PAL 1.25)" 0.0 0.0 0.0 1.0
#pragma parameter label_aspect_preset3 " (-3 = Snes 8/7)" 0.0 0.0 0.0 1.0
#pragma parameter label_aspect_preset4 " (-4 = Megadrive 10/7)" 0.0 0.0 0.0 1.0
#pragma parameter label_aspect_preset5 " (-5 = Uncorrected)" 0.0 0.0 0.0 1.0
//Full screen glowing
//Modulate the image zooming depending on the image luminosity.
//You can lower the effect power through the DYNZOOM_FACTOR parameter.
#pragma parameter DO_DYNZOOM "★ Luminosity dependant zoom enable? ==>" 1.0 0.0 1.0 1.0
#pragma parameter DYNZOOM_FACTOR " Narrowness" 80.0 30.0 120.0 1.0
//Vignette and spot
//Emulates the vignette effect and/or a light reflection.
#pragma parameter DO_VIGNETTE "★ Vignette enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter V_BYPASS " bypass " 0.0 0.0 1.0 1.0
#pragma parameter V_SIZE " size" 1.7 0.0 3.0 0.05
#pragma parameter V_POWER " power" 1.1 0.05 2.0 0.05
#pragma parameter DO_SPOT "★ Spot enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter S_BYPASS " bypass" 0.0 0.0 1.0 1.0
#pragma parameter S_POSITION " Position" 0.0 -420.0 378.0 1
#pragma parameter S_SIZE " size" 0.4 0.0 1.0 0.01
#pragma parameter S_POWER " power" 0.1 0.05 2.0 0.05
// Alternative blanking.
// Emulates the low pixel persistance of CRT monitors and reduces the motion blur,
// typical of LCD displays, by blanking even/odd screen lines on even/odd frames.
// ALT_BLANK_STRENGTH expresses the strength of the "blank".
#pragma parameter DO_ALT_BLANK "★ Alternate line blanking enable? ==>" 0.0 0.0 1.0 1.0
#pragma parameter ALT_BLANK_STRENGTH " Alternate black frame insertion strength" 0.5 0.0 1.0 0.1
#pragma parameter ALT_BLANK_PERIOD " Dark lines period" 4.0 0.0 20.0 1.0
#define DO_FXAA global.DO_FXAA
#define DO_SAT_BLEED global.DO_SAT_BLEED
#define SAT_BLEED_SIZE_LEFT global.SAT_BLEED_SIZE_LEFT
#define SAT_BLEED_SIZE_RIGHT global.SAT_BLEED_SIZE_RIGHT
#define SAT_BLEED_FALLOFF global.SAT_BLEED_FALLOFF
#define SAT_BLEED_STRENGTH global.SAT_BLEED_STRENGTH
#define SAT_BLEED_PAL global.SAT_BLEED_PAL
//#define prefer_std_pow params.prefer_std_pow
#define DO_SCANLINES global.DO_SCANLINES
#define SCANLINE_DARK params.SCANLINE_DARK
#define SCANLINE_OVERWHITE global.SCANLINE_OVERWHITE
#define SCANLINE_FLICKERING global.SCANLINE_FLICKERING
#define SCANLINE_FLICKERING_POWER global.SCANLINE_FLICKERING_POWER
#define SCANLINE_DISABLE_ON_INTERLACE global.SCANLINE_DISABLE_ON_INTERLACE
#define SCANLINE_COMPENSATION global.SCANLINE_COMPENSATION
#define DO_IN_GLOW global.DO_IN_GLOW
//#define IN_GLOW_ADD global.IN_GLOW_ADD
#define SCANLINES_BLEEDING global.SCANLINES_BLEEDING
#define IN_GLOW_WH global.IN_GLOW_WH
#define IN_GLOW_POWER global.IN_GLOW_POWER
#define IN_GLOW_GAMMA global.IN_GLOW_GAMMA
#define DO_VMASK_AND_DARKLINES global.DO_VMASK_AND_DARKLINES
#define MASK_COMPENSATION global.MASK_COMPENSATION
#define RGB_MASK_STRENGTH global.RGB_MASK_STRENGTH
#define VMASK_OVERWHITE params.VMASK_OVERWHITE
#define VMASK_DARKLINE_SCALE params.VMASK_DARKLINE_SCALE
#define VMASK_GAP params.VMASK_GAP
#define VMASK_USE_GM params.VMASK_USE_GM
#define DARKLINES_STRENGTH global.DARKLINES_STRENGTH
#define DRKLN_OVERWHITE params.DRKLN_OVERWHITE
#define DO_DARKLINES_VOFFSET params.DO_DARKLINES_VOFFSET
#define DARKLINES_PERIOD params.DARKLINES_PERIOD
#define DO_HALO global.DO_HALO
#define HALO_W params.HALO_W
#define HALO_H params.HALO_H
#define HALO_POWER params.HALO_POWER
#define HALO_GAMMA params.HALO_GAMMA
#define DO_BLOOM params.DO_BLOOM
#define BLOOM_MIX global.BLOOM_MIX
#define BLOOM_QUALITY params.BLOOM_QUALITY
#define BLOOM_SIZE global.BLOOM_SIZE
#define BLOOM_GAMMA global.BLOOM_GAMMA
#define BLOOM_POWER global.BLOOM_POWER
#define BLOOM_GAMMA_OUT global.BLOOM_GAMMA_OUT
#define BLOOM_OVER_WHITE global.BLOOM_OVER_WHITE
#define BLOOM_BYPASS global.BLOOM_BYPASS
#define DO_CCORRECTION global.DO_CCORRECTION
#define GAMMA_OUT global.GAMMA_OUT
#define SATURATION global.SATURATION
#define LUMINANCE global.LUMINANCE
#define CONTRAST global.CONTRAST
#define BRIGHTNESS global.BRIGHTNESS
#define TEMPERATURE global.TEMPERATURE
#define DO_ALT_BLANK global.DO_ALT_BLANK
#define ALT_BLANK_STRENGTH global.ALT_BLANK_STRENGTH
#define ALT_BLANK_PERIOD global.ALT_BLANK_PERIOD
#define DO_CURVATURE global.DO_CURVATURE
#define GEOM_WARP_X global.GEOM_WARP_X
#define GEOM_WARP_Y global.GEOM_WARP_Y
#define GEOM_CORNER_SIZE global.GEOM_CORNER_SIZE
#define GEOM_CORNER_SMOOTH global.GEOM_CORNER_SMOOTH
#define DO_BEZEL global.DO_BEZEL
#define BEZEL_R global.BEZEL_R
#define BEZEL_G global.BEZEL_G
#define BEZEL_B global.BEZEL_B
#define BEZEL_CON global.BEZEL_CON
#define BEZEL_INNER_ZOOM global.BEZEL_INNER_ZOOM
#define BEZEL_FRAME_ZOOM global.BEZEL_FRAME_ZOOM
#define BEZEL_IMAGE_BORDER global.BEZEL_IMAGE_BORDER
#define DO_SPOT global.DO_SPOT
#define S_BYPASS global.S_BYPASS
#define S_POSITION global.S_POSITION
#define S_SIZE global.S_SIZE
#define S_POWER global.S_POWER
#define DO_DYNZOOM global.DO_DYNZOOM
#define DYNZOOM_FACTOR global.DYNZOOM_FACTOR
#define DO_VIGNETTE global.DO_VIGNETTE
#define V_BYPASS global.V_BYPASS
#define V_SIZE global.V_SIZE
#define V_POWER global.V_POWER
#define DO_AMBILIGHT global.DO_AMBILIGHT
#define AMBI_STEPS global.AMBI_STEPS
#define AMBI_FALLOFF global.AMBI_FALLOFF
#define AMBI_POWER global.AMBI_POWER
#define ASPECT_X global.ASPECT_X
#define ASPECT_Y global.ASPECT_Y
#define DO_BG_IMAGE global.DO_BG_IMAGE
#define BG_IMAGE_OVER global.BG_IMAGE_OVER
#define BG_IMAGE_OFFY global.BG_IMAGE_OFFY
#define BG_IMAGE_OFFX global.BG_IMAGE_OFFX
#define BG_IMAGE_ZOOM global.BG_IMAGE_ZOOM
#define DO_SHIFT_RGB global.DO_SHIFT_RGB
#define SHIFT_R global.SHIFT_R
#define SHIFT_G global.SHIFT_G
#define SHIFT_B global.SHIFT_B
#define OFFSET_STRENGTH global.OFFSET_STRENGTH