text: #pragma once
  
  namespace Volund
  {
  	namespace Graphics
  	{
  		namespace Bloom
  		{
  			/// <summary>
  			/// The "threshold" used to define the quadratic curve used to copy the bright areas of a image when rendering bloom, (Can be set anywhere and will apply globaly).
  			/// </summary>
  			extern float Threshold;
  
  			/// <summary>
  			/// The "knee" used to define the quadratic curve used to copy the bright areas of a image when rendering bloom, (Can be set anywhere and will apply globaly).
  			/// </summary>
  			extern float Knee;
  
  			/// <summary>
  			/// The amount of passes used to render bloom, (Can be set anywhere and will apply globaly).
  			/// </summary>
  			extern uint8_t PassAmount;
  
  			/// <summary>
  			/// The gamma of the bloom, (Can be set anywhere and will apply globaly).
  			/// </summary>
  			extern float Gamma;
  
  			/// <summary>
  			/// The brightness of the bloom color, (Can be set anywhere and will apply globaly).
  			/// </summary>
  			extern float Exposure;
  
  			/// <summary>
  			/// Effectively changes the "size" of the bloom (Can be set anywhere and will apply globaly).
  			/// </summary>
  			extern float UpsampleScale;
  
  			/// <summary>
  			/// If bloom should be rendered, (Can be set anywhere and will apply globaly).
  			/// </summary>
  			extern bool Enabled;
  		};
  
  		namespace Shadows
  		{		
  			/// <summary>
  			/// If geometry will be rendered as two sided when drawing the shadow map. Can help make thin geometry cast shadows however it will impact performance, (Must be set within a scene and is scene specific).
  			/// </summary>
  			extern bool TwoSided;
  
  			/// <summary>
  			/// The resolution of shadow maps, (Must be set at initlization and will apply globaly).
  			/// </summary>
  			extern int Detail;
  
  			/// <summary>
  			/// The max render distance for shadows, (Must be set within a scene and is scene specific).
  			/// </summary>
  			extern float MaxDistance;
  
  			/// <summary>
  			/// The amount of iterations used to smooth shadows, (Must be set within a scene and is scene specific).
  			/// </summary>
  			extern int Smoothing;
  
  			/// <summary>
  			/// The size of the penumbra around the edges of shadows, (Must be set within a scene and is scene specific).
  			/// </summary>
  			extern float PenumbraSize;
  		};
  
  		/// <summary>
  		/// If to apply fast aproximate anti ailising to the active cameras buffer, (Can be set anywhere and will apply globaly).
  		/// </summary>
  		extern bool FXAA;
  
  		/// <summary>
  		/// If to apply anti banding to the active cameras buffer, (Can be set anywhere and will apply globaly).
  		/// </summary>
  		extern bool AntiBanding;
  
  		/// <summary>
  		/// If to apply tone mapping to the active cameras buffer, (Can be set anywhere and will apply globaly).
  		/// </summary>
  		extern bool ToneMapping;
  
  		/// <summary>
  		/// The gamma used to render a active cameras buffer, (Can be set anywhere and will apply globaly).
  		/// </summary>
  		extern float Gamma;
  	};
  
  } //namespace Volund