internal void Initialize ( GraphicsParameters parameters )
{
this.GraphicsProfile = parameters.GraphicsProfile;
try {
if (parameters.StereoMode==StereoMode.Disabled) display = new GenericDisplay( Game, this, parameters ); else
if (parameters.StereoMode==StereoMode.NV3DVision) display = new NV3DVisionDisplay( Game, this, parameters ); else
if (parameters.StereoMode==StereoMode.DualHead) display = new StereoDualHeadDisplay( Game, this, parameters ); else
if (parameters.StereoMode==StereoMode.Interlaced) display = new StereoInterlacedDisplay( Game, this, parameters ); else
if (parameters.StereoMode==StereoMode.OculusRift) display = new OculusRiftDisplay( Game, this, parameters ); else
throw new ArgumentException("parameters.StereoMode");
} catch ( GraphicsException e ) {
Log.Warning("Failed to intialize graphics device.");
Log.Warning("{0}", e.Message );
Log.Warning("Attempt to use default parameters...");
parameters.FullScreen = false;
parameters.StereoMode = StereoMode.Disabled;
display = new GenericDisplay( Game, this, parameters );
}
device = display.d3dDevice;
deviceContext = device.ImmediateContext;
display.CreateDisplayResources();
//
// create color buffer :
//
PixelShaderResources = new ShaderResourceCollection( this, DeviceContext.PixelShader );
VertexShaderResources = new ShaderResourceCollection( this, DeviceContext.VertexShader );
GeometryShaderResources = new ShaderResourceCollection( this, DeviceContext.GeometryShader );
ComputeShaderResources = new ShaderResourceCollection( this, DeviceContext.ComputeShader );
DomainShaderResources = new ShaderResourceCollection( this, DeviceContext.DomainShader );
HullShaderResources = new ShaderResourceCollection( this, DeviceContext.HullShader );
PixelShaderSamplers = new SamplerStateCollection ( this, DeviceContext.PixelShader );
VertexShaderSamplers = new SamplerStateCollection ( this, DeviceContext.VertexShader );
GeometryShaderSamplers = new SamplerStateCollection ( this, DeviceContext.GeometryShader );
ComputeShaderSamplers = new SamplerStateCollection ( this, DeviceContext.ComputeShader );
DomainShaderSamplers = new SamplerStateCollection ( this, DeviceContext.DomainShader );
HullShaderSamplers = new SamplerStateCollection ( this, DeviceContext.HullShader );
PixelShaderConstants = new ConstantBufferCollection( this, DeviceContext.PixelShader );
VertexShaderConstants = new ConstantBufferCollection( this, DeviceContext.VertexShader );
GeometryShaderConstants = new ConstantBufferCollection( this, DeviceContext.GeometryShader );
ComputeShaderConstants = new ConstantBufferCollection( this, DeviceContext.ComputeShader );
DomainShaderConstants = new ConstantBufferCollection( this, DeviceContext.DomainShader );
HullShaderConstants = new ConstantBufferCollection( this, DeviceContext.HullShader );
ResetStates();
FullScreen = parameters.FullScreen;
}