void Application_Idle( object sender, EventArgs e )
{
if ( m_Device == null )
return;
// Update camera
m_CB_Global.m.m_ScreenWidth = (uint) Width;
m_CB_Global.m.m_ScreenHeight = (uint) Height;
m_CB_Global.m.m_Time = (float) (DateTime.Now - m_startTime).TotalSeconds;
m_CB_Global.m.m_MipLevel = (float) integerTrackbarControlMipLevel.Value;
m_CB_Global.m.m_Exposure = (float) Math.Pow( 2.0, floatTrackbarControlEV.Visible ? (float) floatTrackbarControlEV.Value : 0.0f );
m_CB_Global.UpdateData();
// Clear
m_Device.ClearDepthStencil( m_Device.DefaultDepthStencil, 1.0f, 0, true, false );
m_Device.Clear( float4.Zero );
// Render
m_Device.SetRenderTarget( m_Device.DefaultTarget, m_Device.DefaultDepthStencil );
m_Device.SetRenderStates( RASTERIZER_STATE.CULL_NONE, DEPTHSTENCIL_STATE.DISABLED, BLEND_STATE.DISABLED );
if ( m_Shader_Render2D.Use() ) {
if ( m_Tex2D != null )
m_Tex2D.SetPS( 0 );
if ( m_TexCube != null )
m_TexCube.SetPS( 1 );
if ( m_Tex3D != null )
m_Tex3D.SetPS( 2 );
m_Device.RenderFullscreenQuad( m_Shader_Render2D );
}
m_Device.Present( false );
}