/// <summary>
 /// Initializes a new instance of the <see cref="DeferredRenderTechnicInitDescription"/> struct.
 /// </summary>
 /// <param name="DeferredGBuffer">The deferred G buffer.</param>
 /// <param name="DeferredLightMap">The deferred light map.</param>
 /// <param name="DeferredFinalCombination">The deferred final combination.</param>
 /// <param name="ForwardPass">The forward pass.</param>
 /// <param name="BackGroundColor">Color of the back ground.</param>
 /// <param name="LightDebug">if set to <c>true</c> [light debug].</param>
 /// <param name="DefferedDebug">if set to <c>true</c> [deffered debug].</param>
 /// <param name="UseFloatingBufferForLightMap">if set to <c>true</c> [use floating buffer for light map].</param>
 /// <param name="CullPointLight">if set to <c>true</c> [cull point light].</param>
 /// <param name="ExtraForwardPass">if set to <c>true</c> [extra forward pass].</param>
 /// <param name="RenderTargetsNameToDefferedDebug">The render targets name to deffered debug.</param>
 /// <param name="RestoreDepthOption">The restore depth option.</param>
 public DeferredRenderTechnicInitDescription(IDeferredGBuffer DeferredGBuffer, IDeferredLightMap DeferredLightMap, IDeferredFinalCombination DeferredFinalCombination,
                                             ForwardPass ForwardPass, Color BackGroundColor, bool LightDebug, bool DefferedDebug, bool UseFloatingBufferForLightMap,
                                             bool CullPointLight, bool ExtraForwardPass, String[] RenderTargetsNameToDefferedDebug, RestoreDepthOption RestoreDepthOption)
 {
     this.DefferedDebug = DefferedDebug;
     this.UseFloatingBufferForLightMap = UseFloatingBufferForLightMap;
     this.LightDebug                       = LightDebug;
     this.CullPointLight                   = CullPointLight;
     this.ExtraForwardPass                 = ExtraForwardPass;
     this.DeferredGBuffer                  = DeferredGBuffer;
     this.DeferredLightMap                 = DeferredLightMap;
     this.DeferredFinalCombination         = DeferredFinalCombination;
     this.RestoreDepthOption               = RestoreDepthOption;
     this.ForwardPass                      = ForwardPass;
     this.RenderTargetsNameToDefferedDebug = RenderTargetsNameToDefferedDebug;
     this.BackGroundColor                  = BackGroundColor;
     OrderAllObjectsBeforeDraw             = null;
     OrderDeferredObjectsBeforeDraw        = null;
     OrderForwardObjectsBeforeDraw         = null;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DeferredRenderTechnicInitDescription"/> struct.
 /// </summary>
 /// <param name="DeferredGBuffer">The deferred G buffer.</param>
 /// <param name="DeferredLightMap">The deferred light map.</param>
 /// <param name="DeferredFinalCombination">The deferred final combination.</param>
 /// <param name="ForwardPass">The forward pass.</param>
 /// <param name="BackGroundColor">Color of the back ground.</param>        
 /// <param name="LightDebug">if set to <c>true</c> [light debug].</param>
 /// <param name="DefferedDebug">if set to <c>true</c> [deffered debug].</param>
 /// <param name="UseFloatingBufferForLightMap">if set to <c>true</c> [use floating buffer for light map].</param>
 /// <param name="CullPointLight">if set to <c>true</c> [cull point light].</param>
 /// <param name="ExtraForwardPass">if set to <c>true</c> [extra forward pass].</param>
 /// <param name="RenderTargetsNameToDefferedDebug">The render targets name to deffered debug.</param>
 /// <param name="RestoreDepthOption">The restore depth option.</param>
 public DeferredRenderTechnicInitDescription(IDeferredGBuffer DeferredGBuffer, IDeferredLightMap DeferredLightMap, IDeferredFinalCombination DeferredFinalCombination,
     ForwardPass ForwardPass, Color BackGroundColor, bool LightDebug, bool DefferedDebug, bool UseFloatingBufferForLightMap,
     bool CullPointLight, bool ExtraForwardPass, String[] RenderTargetsNameToDefferedDebug, RestoreDepthOption RestoreDepthOption)
 {            
     this.DefferedDebug = DefferedDebug;
     this.UseFloatingBufferForLightMap = UseFloatingBufferForLightMap;
     this.LightDebug = LightDebug;
     this.CullPointLight = CullPointLight;
     this.ExtraForwardPass = ExtraForwardPass;
     this.DeferredGBuffer = DeferredGBuffer;
     this.DeferredLightMap = DeferredLightMap;
     this.DeferredFinalCombination = DeferredFinalCombination;        
     this.RestoreDepthOption = RestoreDepthOption;        
     this.ForwardPass = ForwardPass;
     this.RenderTargetsNameToDefferedDebug = RenderTargetsNameToDefferedDebug;
     this.BackGroundColor = BackGroundColor;
     OrderAllObjectsBeforeDraw = null;
     OrderDeferredObjectsBeforeDraw = null;
     OrderForwardObjectsBeforeDraw = null;
 }