/*======================================================================================
                             "USER" ADJUSTABLE SETTINGS
======================================================================================*/

// TODO: Normalize values to be on a human range scale, whole numbers prefered, decimals usable for micro adjustments
// These values should have min/max limit checks included in their functions, so that the end user doesn't get crazy results

/*------------------------------------------------------------------------------
						FILTER SELECTION
------------------------------------------------------------------------------*/
// Comment to deactivate an effect. 
// Example: To disable the tonemap effect, use // in front of #define USE_TONEMAP
#define USE_PRE_SHARPEN
//#define USE_TECHNICOLOR
//#define USE_TONEMAP
//#define USE_SEPIA
//#define USE_VIGNETTE
//#define USE_BLOOM
//#define USE_POST_SHARPEN
//#define USE_FINAL_LIMITER


/*------------------------------------------------------------------------------
						FXAA SHADER
------------------------------------------------------------------------------*/
// Set values to calculate the amount of Anti Aliasing applied
//float fxaaQualitySubpix = 0.75;  // Default: 0.75 Raise to increase amount of blur
//float fxaaQualityEdgeThreshold = 0.133; // Lower the value for more smoothing
//float fxaaQualityEdgeThresholdMin = 0.06; // Lower the value for more smoothing
float fxaaQualitySubpix = 0.6993; //by yug74
float fxaaQualityEdgeThreshold = 0.0709; //by yug74
float fxaaQualityEdgeThresholdMin = 0.0289; //by yug74


/*------------------------------------------------------------------------------
						PRE_SHARPEN
------------------------------------------------------------------------------*/
//For higher precision in the calculation of contour, requires slightly more processing power
bool highQualitySharpen = 1; //0 = Disable  | 1 = Enable

// Set values to calculate the amount of  AA produced blur to consider for the sharpening pass
#define Average 1
#define CoefBlur 2
#define CoefOri (1+ CoefFlou)

// Set values of the sharpening amount
#define SharpenEdge 0.25
#define Sharpen_val0 1.5
#define Sharpen_val1 ((Sharpen_val0-1) / 8.0)

/*------------------------------------------------------------------------------
						TECHNICOLOR
------------------------------------------------------------------------------*/
#define TechniAmount 0.05 // 1.00 = Max
#define TechniPower 3.5 // lower values = whitening

// lower values = stronger channel
#define redNegativeAmount 1 // 1.00 = Max
#define greenNegativeAmount 1 // 1.00 = Max
#define blueNegativeAmount 1 // 1.00 = Max


/*------------------------------------------------------------------------------
						TONEMAP
------------------------------------------------------------------------------*/
#define Gamma 1
#define Exposure 0.0
#define Saturation 0.15 // use negative values for less saturation. 
#define BlueShift 0.0 // Higher = more blue in image.
#define Bleach 0.0 // Bleach bypass, higher = stronger effect
#define Defog -0.0 // Strength of Lens Colors.
#define FogColor float4(0.25, 0.25, 0.25, 0) //Lens-style color filters for Blue, Red, Yellow, White.


/*------------------------------------------------------------------------------
						SEPIA
------------------------------------------------------------------------------*/
// Sepia Tones - float3(1.00, 1.00, 1.00) values are for R G B
#define SepiaTone float3(1.0, 1.0, 1.0) //open injFX_Shaders/SepiaTones_examples.txt for color schemes 
#define SepiaPower 1.0 // 1.00 = Max


/*------------------------------------------------------------------------------
						VIGNETTE
------------------------------------------------------------------------------*/
// Vignette effect, process by which there is loss in clarity towards the corners and sides of the image, like a picture frame
#define VignetteCenter float2(0.5, 0.5) // Center of screen for effect.
#define VignetteRadius 1.5 // lower values = stronger radial effect from center
#define VignetteAmount -0.5 // Strength of black. -2.00 = Max Black, 1.00 = Max White.


/*------------------------------------------------------------------------------
						BLOOM
------------------------------------------------------------------------------*/
// Number of samples per pixel taken for the Bloom effect. Don't set it to high!  4 = 25spp, 8 = 81spp, 16 = 289spp
#define NUM_SAMPLES2 2 // Must be set with a value dividable by 2
float BloomThreshold = 2.5; // The min. level at which the effect starts (Valid Values = 1 to 9, use decimals for finetuning)
float BloomWidth = 2;	// Sets the width of the effect (Valid Values = 1 to 5, use decimals for finetuning)
float BloomScale = 0.025; // The power of the effect


/*------------------------------------------------------------------------------
						POST_SHARPEN
------------------------------------------------------------------------------*/
// Controls additional sharpening applied after previous processing. Strength should be max 0.25!
float Sharpen = 0.1;


/*------------------------------------------------------------------------------
						FINAL_LIMITER
------------------------------------------------------------------------------*/
// Controls the strenght of the limiter. 1.000 for default setting
int LimiterStrenght = 1.000; 