diff options
author | Andrey Nazarov <skuller@skuller.net> | 2011-05-26 13:25:08 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2011-05-26 13:25:08 +0400 |
commit | d7bcacd9fb01162c70f5f44ed9bea360c1ad4be4 (patch) | |
tree | a6b2de2fccbea7b703281bd5f61521c3cb1077ff /src/cl_main.c | |
parent | f5624d2154c1aabc67a45c1e82cd25550df33a14 (diff) |
Improve client event loop.
Execute command buffers directly inside CL_ProcessEvents. Break sub-msec
spin loop when important event occurs.
Diffstat (limited to 'src/cl_main.c')
-rw-r--r-- | src/cl_main.c | 16 |
1 files changed, 10 insertions, 6 deletions
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; } //============================================================================ |