From d7bcacd9fb01162c70f5f44ed9bea360c1ad4be4 Mon Sep 17 00:00:00 2001 From: Andrey Nazarov Date: Thu, 26 May 2011 13:25:08 +0400 Subject: Improve client event loop. Execute command buffers directly inside CL_ProcessEvents. Break sub-msec spin loop when important event occurs. --- src/cl_main.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/cl_main.c') diff --git a/src/cl_main.c b/src/cl_main.c index 3406d1b..726d177 100644 --- a/src/cl_main.c +++ b/src/cl_main.c @@ -2973,13 +2973,11 @@ unsigned CL_Frame( unsigned msec ) { return UINT_MAX; } - CL_ProcessEvents(); - - Cbuf_Execute( &cl_cmdbuf ); - main_extra += msec; cls.realtime += msec; + CL_ProcessEvents(); + ref_frame = phys_frame = qtrue; switch( sync_mode ) { case SYNC_FULL: @@ -3142,9 +3140,9 @@ run_fx: CL_ProcessEvents ============ */ -void CL_ProcessEvents( void ) { +qboolean CL_ProcessEvents( void ) { if( !cl_running->integer ) { - return; + return qfalse; } CL_RunRefresh(); @@ -3164,9 +3162,15 @@ void CL_ProcessEvents( void ) { CL_PacketEvent(); } + // process console and stuffed commands + Cbuf_Execute( &cmd_buffer ); + Cbuf_Execute( &cl_cmdbuf ); + #if USE_CURL HTTP_RunDownloads(); #endif + + return cl.sendPacketNow; } //============================================================================ -- cgit v1.2.3