[General]

	EnableSplashScreen = true			; Enables or Disables the splashscreen. Usefull to know if the wrapper is being loaded or not.
	EnableShaderDump = false			; Enable Shader Dump. Shaders will be written to disk as soon as they are created. ONLY IN DEV MODE!
	EnableDevMode = false				; Enable developer MODE. (Shader hunting/dumping/selecting, etc).
	FlipUIVertically = false			; Some applications like CEMU, use an "inversed" coordinates system (0,0 is Bottom-Left instead of Top-Left which is OpenGL 0,0).

[Global_Settings_3D_Vision]

	Enable3DStereo = true				; Enable or Disable STEREO 3D SUPPORT. If disabled the game will render normally (2D).
	AlternativeView_Mode = 0			; 0-3D Vision Hardware; 1-SBS(Left 1st); 2-SBS(Right 1st); 3-TB(Left-Top); 4-TB(Right-Top);
	SyncToMonitorRefreshRate = true			; Should we sync to monitor Refresh rate? Or leave it run "Wild"? Try this setting to see if you get "less eye-sync" problems.
	ForceFullScreen = true				; Forces the DX Device to be created in FullScreen Mode. The game must be set to fullscreen as well (even if is fake-fullscreen).
	ForceWindowModeSupport = false			; Force Window Mode context creation. This setting will not force the render engine to work in window mode. It is a flag used for DX device/context creation. Some applications require it.
	FullScreenDetection = true			; Enable of Disable Fullscreen detection. Some games will enter an endless loop if this is enabled.
	ForceNVProfileLoad = true			; This will force the Nvidia Profile to be loaded each time the wrapper is started!!! Your saved convergence value will be overwriten with the one above !!! Requires at least one game restart to take effect!
	Stereo3DVisionRating = 0.0			; Possible values: 0.0 - 3D Vision Ready; 1.0 - Excelent; 2.0 - Good; 3.0 - Fair; 4.0 - Not Recommended
	DepthMultiplicationFactor = 1.0			; Depth Hack. The Current depth Value will be multiplied with this factor. Ex: Current depth (NVpanel) is 50%. Factor is 2. Actual Depth will be 100%. A value of -1.0 means is ignored!
	;==========================================================================
	; ONLY USED when Alternative View Mode is set to non 3D Vision Hardware !!!
	;==========================================================================
	;
	AlternativeView_Separation = 100	; Separation as percentage 0-100%
	AlternativeView_Interaxial = 65		; Distance between eyes in millimeters. Nvidia calculates this automatically based on the screen size!
	AlternativeView_Convergence = 0.06	; Convergence value
	; Use CTRL+F1, CTRL+F2 to decrease/increase AlternativeView_Separation
	; Use CTRL+F3, CTRL+F4 to decrease/increase AlternativeView_Convergence
	; You can see the values in DevMode in the Rendering Stats window

	;==========================================================
	; Single Stereo Pass 3D - Depth3D
	;==========================================================
[Depth_3D]

	Enable3DPostEffect = false 			; Enable Depth 3D Post Process using Crytek version !?
	OverrideDepthBufferSize = false		; Override the size of the detected depth map?
	DepthBufferWidth = 1920				
	DepthBufferHeight = 1080			
	; Used to find a matching depth buffer.Possible values: Auto, GL_DEPTH_COMPONENT,GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_DEPTH_COMPONENT32F, GL_DEPTH_STENCIL, GL_DEPTH24_STENCIL8 if set to Auto then the first buffer that matches any of these format will be used. Setting it to Auto will also list all available depth buffers in the log.
	DepthBufferInternalFormat = Auto	
	; Flip the image on the Y axis? Most games require this!
	FlipImageVertically = true			
	; How to convert the Depth Map : Auto, Raw, Linear, Logarithmic,  InverseRaw, InverseLinear, InverseLogarithmic
	DepthMapLiniarisation = Auto					
	; Specify Depth Map target: Auto, Texture, Renderbuffer
	DepthMapType = Auto				
	; Specify the index of the Depth Texture or Renderbuffer, or Auto for automatic selection.
	DepthMapIndex = Auto					
	; The default convergence value that is used for this game when the nVidia Profile is created. 
	; This value will always override any settings you stored in the game profile or saved!
	; A value of 0 will NOT override the convergence for the game!
	DefaultConvergence = 0.060

	;==========================================================
	; Geometry Based 3D Rendering
	;==========================================================
[Geometry_3D]

	; Select the eye based on which the "other" eye is composed. ; Valid Only for Geometry 3D.
	; Values:
	; MONO_EYE		-> This is Default Nvidia 3D Vision Method. Both Left and Right Eyes will be generated. Translation of each eye starts from the MONO_EYE Camera.
	; RIGHT_EYE 	-> The Left Eye will be an offset of Right Eye. Right Eye position is not translated.
	; LEFT_EYE 		-> The Right Eye will be an offset of Left Eye. Left Eye position is not translated.
	StereoDominantEye = MONO_EYE			
	; The default convergence value that is used for this game when the nVidia Profile is created. 
	; This value will always override any settings you stored in the game profile or saved!
	; A value of 0 will NOT override the convergence for the game!
	DefaultConvergence = 1.0


	; This flag controls how the wrapper works internally.
	; LegacyMode is for old applications (OpenGL prior to version v.3.x)
	;=========================================================================================
	; Valid Only for Geometry 3D. If Depth 3D is enabled, everything below will be ignored !!!
	;=========================================================================================
[Legacy_OpenGL_Calls]
	
	LegacyMode = true							; Currently used in older games like: Star Wars: Knights of the Old Republic 1&2
	LegacyHUDSeparation = 0.6 					; 0.0 is no separation; Positive values will "push-in" the UI; Negative values will "pop-out" the UI;

	;=======================================
	; Valid for Geometry 3D and Depth 3D !!!
	;=======================================
[Key_Settings]
	; See https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes for the KEYBOARD VK_ keys!

	; For XBOX Controller use the following keys:
	;   XINPUT_GAMEPAD_DPAD_UP
	;   XINPUT_GAMEPAD_DPAD_DOWN
	;   XINPUT_GAMEPAD_DPAD_LEFT
	;   XINPUT_GAMEPAD_DPAD_RIGHT
	;   XINPUT_GAMEPAD_START
	;   XINPUT_GAMEPAD_BACK
	;   XINPUT_GAMEPAD_LEFT_THUMB
	;   XINPUT_GAMEPAD_RIGHT_THUMB
	;   XINPUT_GAMEPAD_LEFT_SHOULDER
	;   XINPUT_GAMEPAD_RIGHT_SHOULDER
	;   XINPUT_GAMEPAD_A
	;   XINPUT_GAMEPAD_B
	;   XINPUT_GAMEPAD_X
	;   XINPUT_GAMEPAD_Y
	;   XINPUT_GAMEPAD_LEFT_TRIGGER (once & hold ONLY)
	;   XINPUT_GAMEPAD_RIGHT_TRIGGER (once & hold ONLY)

	; Params: (Key Code, separation, convergence, X, Y, Z, W, key Mode)
	; X, Y, Z, W are values that are sent to all shaders.
	; X, Y, Z, W values WORK just in Toggle and One-Time Mode (No Push & Hold support currently).

	; Depth3D Example
	NewDepth3DKey(VK_F1, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, once)
	NewDepth3DKey(XINPUT_GAMEPAD_LEFT_TRIGGER, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, hold)
	NewDepth3DKey(XINPUT_GAMEPAD_DPAD_DOWN, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, toggle)

	; Geo3D Example
	NewGeo3DKey(VK_F1, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, once)
	NewGeo3DKey(XINPUT_GAMEPAD_LEFT_TRIGGER, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, hold)
	NewGeo3DKey(XINPUT_GAMEPAD_DPAD_DOWN, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, toggle)
	
	;l: low convergence.
	NewGeo3DKey(0x4C, -1.0, 3, -1.0, -1.0, -1.0, -1.0, toggle)
	;p: high convergence.
    NewGeo3DKey(0x50, -1.0, 4, -1.0, -1.0, -1.0, -1.0, toggle)
	;o: higher convergence.
	NewGeo3DKey(0x4F, -1.0, 5, -1.0, -1.0, -1.0, -1.0, toggle)
	
[End]

	;=========================================================================================
	; Valid Only for Geometry 3D. If Depth 3D is enabled, everything below will be ignored !!!
	;=========================================================================================
[Shader_Stereo_Injection]

	Enable = true							; Enable StereoScopic 3D Injection. If Disabled the engine will render 2 images from the SAME perspective (2D).
	EnableUnity5 = false						; Unity 5 Game Engine Mode. Legacy Mode must be enabled. Unity 5 Engine uses both Legacy + Shaders and is a hybrid engine.
	GenerateUniqueCRC32 = true					; Generate a Unique CRC32 for each shader?! or target all shaders that are common?!
	VertexAutoStereoInjectionInfo = false				; If enabled will display all the Vertex Shaders in which the Stereoscopy wasn't inserted. ONLY IN DEV MODE!
	
	; Part of a STRING that is FOUND in all the VERTEX and PIXEL shaders. The Uniforms (required by "Stereo String") will be inserted after this line.
	UniformInjection1 = "#version"          	
	UniformInjection2 = "NULL"          		
	UniformInjection3 = "NULL"           		
	UniformInjection4 = "NULL"           		
	
	; Part of a STRING that is FOUND in all the VERTEX SHADERS.
	VertexInjectionPoint1 = "gl_Position ="		 
	VertexInjectionPoint2 = "NULL"
	VertexInjectionPoint3 = "NULL"			
	VertexInjectionPoint4 = "NULL"			
	VertexInjectionPoint5 = "NULL"
	VertexInjectionPoint6 = "NULL"
	VertexInjectionPoint7 = "NULL"
	VertexInjectionPoint8 = "NULL"
	VertexInjectionPoint9 = "NULL"
	VertexInjectionPoint10 = "NULL"
	VertexStereoString1 = "\n gl_Position.x += g_eye * g_eye_separation * (gl_Position.w - g_convergence); \n"		
	VertexStereoString2 = ""
	VertexStereoString3 = ""
	VertexStereoString4 = ""
	VertexStereoString5 = ""
	VertexStereoString6 = ""
	VertexStereoString7 = ""
	VertexStereoString8 = ""
	VertexStereoString9 = ""
	VertexStereoString10 = ""
	
	; insert: Will insert the "VertexStereoString1" after all matches for "VertexInjectionPoint1". "replace": Will replace the string in "VertexInjectionPoint1" with "VertexStereoString1".
	VertexOperation1 = insert			
	VertexOperation2 = insert			
	VertexOperation3 = insert			
	VertexOperation4 = insert
	VertexOperation5 = insert
	VertexOperation6 = insert
	VertexOperation7 = insert
	VertexOperation8 = insert
	VertexOperation9 = insert
	VertexOperation10 = insert
	
	; Part of a STRING that is FOUND in all the PIXEL SHADERS.
	PixelInjectionPoint1 = "NULL"			
	PixelInjectionPoint2 = "NULL"			
	PixelInjectionPoint3 = "NULL"				
	PixelInjectionPoint4 = "NULL"			
	PixelInjectionPoint5 = "NULL"			
	PixelInjectionPoint6 = "NULL"			
	PixelInjectionPoint7 = "NULL"			
	PixelInjectionPoint8 = "NULL"			
	PixelInjectionPoint9 = "NULL"
	PixelInjectionPoint10 = "NULL"			
	PixelStereoString1 = ""
	PixelStereoString2 = ""
	PixelStereoString3 = ""
	PixelStereoString4 = ""
	PixelStereoString5 = ""
	PixelStereoString6 = ""
	PixelStereoString7 = ""
	PixelStereoString8 = ""
	PixelStereoString9 = ""
	PixelStereoString10 = ""
	
	; insert: Will insert the "PixelStereoString1" after all matches for "PixelInjectionPoint1". "replace": Will replace the string in "PixelInjectionPoint1" with "PixelInjectionPoint1".
	PixelOperation1 = insert			
	PixelOperation2 = insert			
	PixelOperation3 = insert			
	PixelOperation4 = insert
	PixelOperation5 = insert
	PixelOperation6 = insert
	PixelOperation7 = insert
	PixelOperation8 = insert
	PixelOperation9 = insert
	PixelOperation10 = insert


	;=========================================================================================
	; Valid Only for Geometry 3D. If Depth 3D is enabled, everything below will be ignored !!!
	;=========================================================================================

	; Custom 3D params sent to shaders: (ProgId, x, y, z, w). 
	; If progId = -1 values are sent to all shaders.
	; For UNITY 5 Engine these params are sent to glMatrix(). x= separation; y = convergence;
[Stereo_Custom_Params]
; Example
ShaderProgram(-1, 1, 1, 1, 1)

[End]
