@ -37,9 +37,19 @@ convar_t *r_lockfrustum;
@@ -37,9 +37,19 @@ convar_t *r_lockfrustum;
convar_t * r_traceglow ;
convar_t * r_dynamic ;
convar_t * r_lightmap ;
convar_t * r_showhull ;
convar_t * gl_round_down ;
convar_t * r_vbo ;
convar_t * r_vbo_dlightmode ;
convar_t * gl_showtextures ;
convar_t * vid_brightness ;
convar_t * vid_gamma ;
convar_t * cl_draw_particles ;
convar_t * tracerred ;
convar_t * tracergreen ;
convar_t * tracerblue ;
convar_t * traceralpha ;
byte * r_temppool ;
@ -321,7 +331,7 @@ void GL_CheckExtension( const char *name, const dllfunc_t *funcs, const char *cv
@@ -321,7 +331,7 @@ void GL_CheckExtension( const char *name, const dllfunc_t *funcs, const char *cv
if ( cvarname )
{
// system config disable extensions
parm = Cvar_Get ( cvarname , " 1 " , FCVAR_GLCONFIG , va ( CVAR_GLCONFIG_DESCRIPTION , name ) ) ;
parm = gEngfuncs . Cvar_Get ( cvarname , " 1 " , FCVAR_GLCONFIG , va ( CVAR_GLCONFIG_DESCRIPTION , name ) ) ;
}
if ( ( parm & & ! CVAR_TO_BOOL ( parm ) ) | | ( ! CVAR_TO_BOOL ( gl_extensions ) & & r_ext ! = GL_OPENGL_110 ) )
@ -473,7 +483,7 @@ void R_RenderInfo_f( void )
@@ -473,7 +483,7 @@ void R_RenderInfo_f( void )
}
gEngfuncs . Con_Printf ( " \n " ) ;
gEngfuncs . Con_Printf ( " MODE: %ix%i \n " , vidState . width , vidState . height ) ;
gEngfuncs . Con_Printf ( " MODE: %ix%i \n " , gpGlobals - > width , gpGlobals - > height ) ;
gEngfuncs . Con_Printf ( " \n " ) ;
gEngfuncs . Con_Printf ( " VERTICAL SYNC: %s \n " , gl_vsync - > value ? " enabled " : " disabled " ) ;
gEngfuncs . Con_Printf ( " Color %d bits, Alpha %d bits, Depth %d bits, Stencil %d bits \n " , glConfig . color_bits ,
@ -719,7 +729,7 @@ void GL_InitExtensions( void )
@@ -719,7 +729,7 @@ void GL_InitExtensions( void )
// MCD has buffering issues
# ifdef _WIN32
if ( Q_strstr ( glConfig . renderer_string , " gdi " ) )
Cvar_SetValue ( " gl_finish " , 1 ) ;
gEngfuncs . Cvar_SetValue ( " gl_finish " , 1 ) ;
# endif
tr . framecount = tr . visframecount = 1 ;
@ -742,46 +752,47 @@ GL_InitCommands
@@ -742,46 +752,47 @@ GL_InitCommands
*/
void GL_InitCommands ( void )
{
r_speeds = Cvar_Get ( " r_speeds " , " 0 " , FCVAR_ARCHIVE , " shows renderer speeds " ) ;
r_fullbright = Cvar_Get ( " r_fullbright " , " 0 " , FCVAR_CHEAT , " disable lightmaps, get fullbright for entities " ) ;
r_norefresh = Cvar_Get ( " r_norefresh " , " 0 " , 0 , " disable 3D rendering (use with caution) " ) ;
r_showtree = Cvar_Get ( " r_showtree " , " 0 " , FCVAR_ARCHIVE , " build the graph of visible BSP tree " ) ;
r_lighting_extended = Cvar_Get ( " r_lighting_extended " , " 1 " , FCVAR_ARCHIVE , " allow to get lighting from world and bmodels " ) ;
r_lighting_modulate = Cvar_Get ( " r_lighting_modulate " , " 0.6 " , FCVAR_ARCHIVE , " lightstyles modulate scale " ) ;
r_lighting_ambient = Cvar_Get ( " r_lighting_ambient " , " 0.3 " , FCVAR_ARCHIVE , " map ambient lighting scale " ) ;
r_novis = Cvar_Get ( " r_novis " , " 0 " , 0 , " ignore vis information (perfomance test) " ) ;
r_nocull = Cvar_Get ( " r_nocull " , " 0 " , 0 , " ignore frustrum culling (perfomance test) " ) ;
r_detailtextures = Cvar_Get ( " r_detailtextures " , " 1 " , FCVAR_ARCHIVE , " enable detail textures support, use '2' for autogenerate detail.txt " ) ;
r_lockpvs = Cvar_Get ( " r_lockpvs " , " 0 " , FCVAR_CHEAT , " lockpvs area at current point (pvs test) " ) ;
r_lockfrustum = Cvar_Get ( " r_lockfrustum " , " 0 " , FCVAR_CHEAT , " lock frustrum area at current point (cull test) " ) ;
r_dynamic = Cvar_Get ( " r_dynamic " , " 1 " , FCVAR_ARCHIVE , " allow dynamic lighting (dlights, lightstyles) " ) ;
r_traceglow = Cvar_Get ( " r_traceglow " , " 1 " , FCVAR_ARCHIVE , " cull flares behind models " ) ;
r_lightmap = Cvar_Get ( " r_lightmap " , " 0 " , FCVAR_CHEAT , " lightmap debugging tool " ) ;
r_drawentities = Cvar_Get ( " r_drawentities " , " 1 " , FCVAR_CHEAT , " render entities " ) ;
r_speeds = gEngfuncs . Cvar_Get ( " r_speeds " , " 0 " , FCVAR_ARCHIVE , " shows renderer speeds " ) ;
r_fullbright = gEngfuncs . Cvar_Get ( " r_fullbright " , " 0 " , FCVAR_CHEAT , " disable lightmaps, get fullbright for entities " ) ;
r_norefresh = gEngfuncs . Cvar_Get ( " r_norefresh " , " 0 " , 0 , " disable 3D rendering (use with caution) " ) ;
r_showtree = gEngfuncs . Cvar_Get ( " r_showtree " , " 0 " , FCVAR_ARCHIVE , " build the graph of visible BSP tree " ) ;
r_lighting_extended = gEngfuncs . Cvar_Get ( " r_lighting_extended " , " 1 " , FCVAR_ARCHIVE , " allow to get lighting from world and bmodels " ) ;
r_lighting_modulate = gEngfuncs . Cvar_Get ( " r_lighting_modulate " , " 0.6 " , FCVAR_ARCHIVE , " lightstyles modulate scale " ) ;
r_lighting_ambient = gEngfuncs . Cvar_Get ( " r_lighting_ambient " , " 0.3 " , FCVAR_ARCHIVE , " map ambient lighting scale " ) ;
r_novis = gEngfuncs . Cvar_Get ( " r_novis " , " 0 " , 0 , " ignore vis information (perfomance test) " ) ;
r_nocull = gEngfuncs . Cvar_Get ( " r_nocull " , " 0 " , 0 , " ignore frustrum culling (perfomance test) " ) ;
r_detailtextures = gEngfuncs . Cvar_Get ( " r_detailtextures " , " 1 " , FCVAR_ARCHIVE , " enable detail textures support, use '2' for autogenerate detail.txt " ) ;
r_lockpvs = gEngfuncs . Cvar_Get ( " r_lockpvs " , " 0 " , FCVAR_CHEAT , " lockpvs area at current point (pvs test) " ) ;
r_lockfrustum = gEngfuncs . Cvar_Get ( " r_lockfrustum " , " 0 " , FCVAR_CHEAT , " lock frustrum area at current point (cull test) " ) ;
r_dynamic = gEngfuncs . Cvar_Get ( " r_dynamic " , " 1 " , FCVAR_ARCHIVE , " allow dynamic lighting (dlights, lightstyles) " ) ;
r_traceglow = gEngfuncs . Cvar_Get ( " r_traceglow " , " 1 " , FCVAR_ARCHIVE , " cull flares behind models " ) ;
r_lightmap = gEngfuncs . Cvar_Get ( " r_lightmap " , " 0 " , FCVAR_CHEAT , " lightmap debugging tool " ) ;
r_drawentities = gEngfuncs . Cvar_Get ( " r_drawentities " , " 1 " , FCVAR_CHEAT , " render entities " ) ;
r_decals = gEngfuncs . pfnGetCvarPointer ( " r_decals " ) ;
r_showhull = gEngfuncs . pfnGetCvarPointer ( " r_showhull " ) ;
gl_extensions = Cvar_Get ( " gl_allow_extensions " , " 1 " , FCVAR_GLCONFIG , " allow gl_extensions " ) ;
gl_texture_nearest = Cvar_Get ( " gl_texture_nearest " , " 0 " , FCVAR_ARCHIVE , " disable texture filter " ) ;
gl_lightmap_nearest = Cvar_Get ( " gl_lightmap_nearest " , " 0 " , FCVAR_ARCHIVE , " disable lightmap filter " ) ;
gl_check_errors = Cvar_Get ( " gl_check_errors " , " 1 " , FCVAR_ARCHIVE , " ignore video engine errors " ) ;
gl_extensions = gEngfuncs . Cvar_Get ( " gl_allow_extensions " , " 1 " , FCVAR_GLCONFIG , " allow gl_extensions " ) ;
gl_texture_nearest = gEngfuncs . Cvar_Get ( " gl_texture_nearest " , " 0 " , FCVAR_ARCHIVE , " disable texture filter " ) ;
gl_lightmap_nearest = gEngfuncs . Cvar_Get ( " gl_lightmap_nearest " , " 0 " , FCVAR_ARCHIVE , " disable lightmap filter " ) ;
gl_check_errors = gEngfuncs . Cvar_Get ( " gl_check_errors " , " 1 " , FCVAR_ARCHIVE , " ignore video engine errors " ) ;
gl_vsync = gEngfuncs . pfnGetCvarPointer ( " gl_vsync " ) ;
gl_detailscale = Cvar_Get ( " gl_detailscale " , " 4.0 " , FCVAR_ARCHIVE , " default scale applies while auto-generate list of detail textures " ) ;
gl_texture_anisotropy = Cvar_Get ( " gl_anisotropy " , " 8 " , FCVAR_ARCHIVE , " textures anisotropic filter " ) ;
gl_texture_lodbias = Cvar_Get ( " gl_texture_lodbias " , " 0.0 " , FCVAR_ARCHIVE , " LOD bias for mipmapped textures (perfomance|quality) " ) ;
gl_keeptjunctions = Cvar_Get ( " gl_keeptjunctions " , " 1 " , FCVAR_ARCHIVE , " removing tjuncs causes blinking pixels " ) ;
gl_emboss_scale = Cvar_Get ( " gl_emboss_scale " , " 0 " , FCVAR_ARCHIVE | FCVAR_LATCH , " fake bumpmapping scale " ) ;
gl_detailscale = gEngfuncs . Cvar_Get ( " gl_detailscale " , " 4.0 " , FCVAR_ARCHIVE , " default scale applies while auto-generate list of detail textures " ) ;
gl_texture_anisotropy = gEngfuncs . Cvar_Get ( " gl_anisotropy " , " 8 " , FCVAR_ARCHIVE , " textures anisotropic filter " ) ;
gl_texture_lodbias = gEngfuncs . Cvar_Get ( " gl_texture_lodbias " , " 0.0 " , FCVAR_ARCHIVE , " LOD bias for mipmapped textures (perfomance|quality) " ) ;
gl_keeptjunctions = gEngfuncs . Cvar_Get ( " gl_keeptjunctions " , " 1 " , FCVAR_ARCHIVE , " removing tjuncs causes blinking pixels " ) ;
gl_emboss_scale = gEngfuncs . Cvar_Get ( " gl_emboss_scale " , " 0 " , FCVAR_ARCHIVE | FCVAR_LATCH , " fake bumpmapping scale " ) ;
gl_showtextures = gEngfuncs . pfnGetCvarPointer ( " r_showtextures " ) ;
gl_finish = Cvar_Get ( " gl_finish " , " 0 " , FCVAR_ARCHIVE , " use glFinish instead of glFlush " ) ;
gl_nosort = Cvar_Get ( " gl_nosort " , " 0 " , FCVAR_ARCHIVE , " disable sorting of translucent surfaces " ) ;
gl_clear = Cvar_Get ( " gl_clear " , " 0 " , FCVAR_ARCHIVE , " clearing screen after each frame " ) ;
gl_test = Cvar_Get ( " gl_test " , " 0 " , 0 , " engine developer cvar for quick testing new features " ) ;
gl_wireframe = Cvar_Get ( " gl_wireframe " , " 0 " , FCVAR_ARCHIVE | FCVAR_SPONLY , " show wireframe overlay " ) ;
gl_wgl_msaa_samples = Cvar_Get ( " gl_wgl_msaa_samples " , " 0 " , FCVAR_GLCONFIG , " samples number for multisample anti-aliasing " ) ;
gl_msaa = Cvar_Get ( " gl_msaa " , " 1 " , FCVAR_ARCHIVE , " enable or disable multisample anti-aliasing " ) ;
gl_stencilbits = Cvar_Get ( " gl_stencilbits " , " 8 " , FCVAR_GLCONFIG , " pixelformat stencil bits (0 - auto) " ) ;
gl_round_down = Cvar_Get ( " gl_round_down " , " 2 " , FCVAR_RENDERINFO , " round texture sizes to nearest POT value " ) ;
gl_finish = gEngfuncs . Cvar_Get ( " gl_finish " , " 0 " , FCVAR_ARCHIVE , " use glFinish instead of glFlush " ) ;
gl_nosort = gEngfuncs . Cvar_Get ( " gl_nosort " , " 0 " , FCVAR_ARCHIVE , " disable sorting of translucent surfaces " ) ;
gl_clear = gEngfuncs . Cvar_Get ( " gl_clear " , " 0 " , FCVAR_ARCHIVE , " clearing screen after each frame " ) ;
gl_test = gEngfuncs . Cvar_Get ( " gl_test " , " 0 " , 0 , " engine developer cvar for quick testing new features " ) ;
gl_wireframe = gEngfuncs . Cvar_Get ( " gl_wireframe " , " 0 " , FCVAR_ARCHIVE | FCVAR_SPONLY , " show wireframe overlay " ) ;
gl_wgl_msaa_samples = gEngfuncs . Cvar_Get ( " gl_wgl_msaa_samples " , " 0 " , FCVAR_GLCONFIG , " samples number for multisample anti-aliasing " ) ;
gl_msaa = gEngfuncs . Cvar_Get ( " gl_msaa " , " 1 " , FCVAR_ARCHIVE , " enable or disable multisample anti-aliasing " ) ;
gl_stencilbits = gEngfuncs . Cvar_Get ( " gl_stencilbits " , " 8 " , FCVAR_GLCONFIG , " pixelformat stencil bits (0 - auto) " ) ;
gl_round_down = gEngfuncs . Cvar_Get ( " gl_round_down " , " 2 " , FCVAR_RENDERINFO , " round texture sizes to nearest POT value " ) ;
// these cvar not used by engine but some mods requires this
gl_polyoffset = Cvar_Get ( " gl_polyoffset " , " 2.0 " , FCVAR_ARCHIVE , " polygon offset for decals " ) ;
gl_polyoffset = gEngfuncs . Cvar_Get ( " gl_polyoffset " , " 2.0 " , FCVAR_ARCHIVE , " polygon offset for decals " ) ;
// make sure gl_vsync is checked after vid_restart
SetBits ( gl_vsync - > flags , FCVAR_CHANGED ) ;
@ -789,6 +800,11 @@ void GL_InitCommands( void )
@@ -789,6 +800,11 @@ void GL_InitCommands( void )
vid_gamma = gEngfuncs . pfnGetCvarPointer ( " gamma " ) ;
vid_brightness = gEngfuncs . pfnGetCvarPointer ( " brightness " ) ;
tracerred = gEngfuncs . pfnGetCvarPointer ( " tracerred " ) ;
tracergreen = gEngfuncs . pfnGetCvarPointer ( " tracergreen " ) ;
tracerblue = gEngfuncs . pfnGetCvarPointer ( " tracerblue " ) ;
traceralpha = gEngfuncs . pfnGetCvarPointer ( " traceralpha " ) ;
gEngfuncs . Cmd_AddCommand ( " r_info " , R_RenderInfo_f , " display renderer info " ) ;
gEngfuncs . Cmd_AddCommand ( " timerefresh " , SCR_TimeRefresh_f , " turn quickly and print rendering statistcs " ) ;
@ -839,8 +855,8 @@ static void R_CheckVBO( void )
@@ -839,8 +855,8 @@ static void R_CheckVBO( void )
def = " 0 " ;
}
r_vbo = Cvar_Get ( " r_vbo " , def , flags , " draw world using VBO " ) ;
r_vbo_dlightmode = Cvar_Get ( " r_vbo_dlightmode " , dlightmode , FCVAR_ARCHIVE , " vbo dlight rendering mode(0-1) " ) ;
r_vbo = gEngfuncs . Cvar_Get ( " r_vbo " , def , flags , " draw world using VBO " ) ;
r_vbo_dlightmode = gEngfuncs . Cvar_Get ( " r_vbo_dlightmode " , dlightmode , FCVAR_ARCHIVE , " vbo dlight rendering mode(0-1) " ) ;
// check if enabled manually
if ( CVAR_TO_BOOL ( r_vbo ) )