mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-10 07:12:07 +00:00
Add a cvar cl_async, off by default.
Most (all?) clients implement the synchronous and the asynchronous client by seperate code pathes. Instead of doing that we force the asynchronous path to process one network frame for each render frame.
This commit is contained in:
parent
a6f4a3b309
commit
070d94ec77
1 changed files with 31 additions and 16 deletions
|
@ -51,6 +51,7 @@ cvar_t *cl_add_particles;
|
||||||
cvar_t *cl_add_lights;
|
cvar_t *cl_add_lights;
|
||||||
cvar_t *cl_add_entities;
|
cvar_t *cl_add_entities;
|
||||||
cvar_t *cl_add_blend;
|
cvar_t *cl_add_blend;
|
||||||
|
cvar_t *cl_async;
|
||||||
|
|
||||||
cvar_t *cl_shownet;
|
cvar_t *cl_shownet;
|
||||||
cvar_t *cl_showmiss;
|
cvar_t *cl_showmiss;
|
||||||
|
@ -485,6 +486,7 @@ CL_InitLocal(void)
|
||||||
cl_predict = Cvar_Get("cl_predict", "1", 0);
|
cl_predict = Cvar_Get("cl_predict", "1", 0);
|
||||||
cl_maxfps = Cvar_Get("cl_maxfps", "30", CVAR_ARCHIVE);
|
cl_maxfps = Cvar_Get("cl_maxfps", "30", CVAR_ARCHIVE);
|
||||||
cl_drawfps = Cvar_Get("cl_drawfps", "0", CVAR_ARCHIVE);
|
cl_drawfps = Cvar_Get("cl_drawfps", "0", CVAR_ARCHIVE);
|
||||||
|
cl_async = Cvar_Get("cl_async", "0", CVAR_ARCHIVE);
|
||||||
|
|
||||||
cl_upspeed = Cvar_Get("cl_upspeed", "200", 0);
|
cl_upspeed = Cvar_Get("cl_upspeed", "200", 0);
|
||||||
cl_forwardspeed = Cvar_Get("cl_forwardspeed", "200", 0);
|
cl_forwardspeed = Cvar_Get("cl_forwardspeed", "200", 0);
|
||||||
|
@ -759,26 +761,39 @@ CL_Frame(int msec)
|
||||||
packetframe = false;
|
packetframe = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Network frames
|
if (cl_async->value)
|
||||||
if (packetdelta < (1000.0f / cl_maxfps->value))
|
|
||||||
{
|
{
|
||||||
packetframe = false;
|
// Network frames
|
||||||
}
|
if (packetdelta < (1000.0f / cl_maxfps->value))
|
||||||
else if (cls.nframetime == cls.rframetime)
|
{
|
||||||
{
|
packetframe = false;
|
||||||
packetframe = false;
|
}
|
||||||
}
|
else if (cls.nframetime == cls.rframetime)
|
||||||
|
{
|
||||||
|
packetframe = false;
|
||||||
|
}
|
||||||
|
|
||||||
// Render frames
|
// Render frames
|
||||||
if (renderdelta < (1000.0f / gl_maxfps->value))
|
if (renderdelta < (1000.0f / gl_maxfps->value))
|
||||||
{
|
{
|
||||||
renderframe = false;
|
renderframe = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Misc. stuff at 10 FPS
|
// Misc. stuff at 10 FPS
|
||||||
if (miscdelta < 100.0f)
|
if (miscdelta < 100.0f)
|
||||||
|
{
|
||||||
|
miscframe = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
miscframe = false;
|
// Cap frames at gl_maxfps
|
||||||
|
if (renderdelta < (1000.0f / gl_maxfps->value))
|
||||||
|
{
|
||||||
|
renderframe = false;
|
||||||
|
packetframe = false;
|
||||||
|
miscframe = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Throttle the game a little bit. 1000 FPS are enough.
|
// Throttle the game a little bit. 1000 FPS are enough.
|
||||||
|
|
Loading…
Reference in a new issue