|
|
@ -37,9 +37,19 @@ convar_t *r_lockfrustum; |
|
|
|
convar_t *r_traceglow; |
|
|
|
convar_t *r_traceglow; |
|
|
|
convar_t *r_dynamic; |
|
|
|
convar_t *r_dynamic; |
|
|
|
convar_t *r_lightmap; |
|
|
|
convar_t *r_lightmap; |
|
|
|
|
|
|
|
convar_t *r_showhull; |
|
|
|
convar_t *gl_round_down; |
|
|
|
convar_t *gl_round_down; |
|
|
|
convar_t *r_vbo; |
|
|
|
convar_t *r_vbo; |
|
|
|
convar_t *r_vbo_dlightmode; |
|
|
|
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; |
|
|
|
byte *r_temppool; |
|
|
|
|
|
|
|
|
|
|
@ -321,7 +331,7 @@ void GL_CheckExtension( const char *name, const dllfunc_t *funcs, const char *cv |
|
|
|
if( cvarname ) |
|
|
|
if( cvarname ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
// system config disable extensions
|
|
|
|
// 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 )) |
|
|
|
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 ) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
gEngfuncs.Con_Printf( "\n" ); |
|
|
|
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( "\n" ); |
|
|
|
gEngfuncs.Con_Printf( "VERTICAL SYNC: %s\n", gl_vsync->value ? "enabled" : "disabled" ); |
|
|
|
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, |
|
|
|
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 ) |
|
|
|
// MCD has buffering issues
|
|
|
|
// MCD has buffering issues
|
|
|
|
#ifdef _WIN32 |
|
|
|
#ifdef _WIN32 |
|
|
|
if( Q_strstr( glConfig.renderer_string, "gdi" )) |
|
|
|
if( Q_strstr( glConfig.renderer_string, "gdi" )) |
|
|
|
Cvar_SetValue( "gl_finish", 1 ); |
|
|
|
gEngfuncs.Cvar_SetValue( "gl_finish", 1 ); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
tr.framecount = tr.visframecount = 1; |
|
|
|
tr.framecount = tr.visframecount = 1; |
|
|
@ -742,46 +752,47 @@ GL_InitCommands |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
void GL_InitCommands( void ) |
|
|
|
void GL_InitCommands( void ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
r_speeds = Cvar_Get( "r_speeds", "0", FCVAR_ARCHIVE, "shows renderer speeds" ); |
|
|
|
r_speeds = gEngfuncs.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_fullbright = gEngfuncs.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_norefresh = gEngfuncs.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_showtree = gEngfuncs.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_extended = gEngfuncs.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_modulate = gEngfuncs.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_lighting_ambient = gEngfuncs.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_novis = gEngfuncs.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_nocull = gEngfuncs.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_detailtextures = gEngfuncs.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_lockpvs = gEngfuncs.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_lockfrustum = gEngfuncs.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_dynamic = gEngfuncs.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_traceglow = gEngfuncs.Cvar_Get( "r_traceglow", "1", FCVAR_ARCHIVE, "cull flares behind models" ); |
|
|
|
r_lightmap = Cvar_Get( "r_lightmap", "0", FCVAR_CHEAT, "lightmap debugging tool" ); |
|
|
|
r_lightmap = gEngfuncs.Cvar_Get( "r_lightmap", "0", FCVAR_CHEAT, "lightmap debugging tool" ); |
|
|
|
r_drawentities = Cvar_Get( "r_drawentities", "1", FCVAR_CHEAT, "render entities" ); |
|
|
|
r_drawentities = gEngfuncs.Cvar_Get( "r_drawentities", "1", FCVAR_CHEAT, "render entities" ); |
|
|
|
r_decals = gEngfuncs.pfnGetCvarPointer( "r_decals" ); |
|
|
|
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_extensions = gEngfuncs.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_texture_nearest = gEngfuncs.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_lightmap_nearest = gEngfuncs.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_check_errors = gEngfuncs.Cvar_Get( "gl_check_errors", "1", FCVAR_ARCHIVE, "ignore video engine errors" ); |
|
|
|
gl_vsync = gEngfuncs.pfnGetCvarPointer( "gl_vsync" ); |
|
|
|
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_detailscale = gEngfuncs.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_anisotropy = gEngfuncs.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_texture_lodbias = gEngfuncs.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_keeptjunctions = gEngfuncs.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_emboss_scale = gEngfuncs.Cvar_Get( "gl_emboss_scale", "0", FCVAR_ARCHIVE|FCVAR_LATCH, "fake bumpmapping scale" ); |
|
|
|
gl_showtextures = gEngfuncs.pfnGetCvarPointer( "r_showtextures" ); |
|
|
|
gl_showtextures = gEngfuncs.pfnGetCvarPointer( "r_showtextures" ); |
|
|
|
gl_finish = Cvar_Get( "gl_finish", "0", FCVAR_ARCHIVE, "use glFinish instead of glFlush" ); |
|
|
|
gl_finish = gEngfuncs.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_nosort = gEngfuncs.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_clear = gEngfuncs.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_test = gEngfuncs.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_wireframe = gEngfuncs.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_wgl_msaa_samples = gEngfuncs.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_msaa = gEngfuncs.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_stencilbits = gEngfuncs.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_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
|
|
|
|
// 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
|
|
|
|
// make sure gl_vsync is checked after vid_restart
|
|
|
|
SetBits( gl_vsync->flags, FCVAR_CHANGED ); |
|
|
|
SetBits( gl_vsync->flags, FCVAR_CHANGED ); |
|
|
@ -789,6 +800,11 @@ void GL_InitCommands( void ) |
|
|
|
vid_gamma = gEngfuncs.pfnGetCvarPointer( "gamma" ); |
|
|
|
vid_gamma = gEngfuncs.pfnGetCvarPointer( "gamma" ); |
|
|
|
vid_brightness = gEngfuncs.pfnGetCvarPointer( "brightness" ); |
|
|
|
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( "r_info", R_RenderInfo_f, "display renderer info" ); |
|
|
|
gEngfuncs.Cmd_AddCommand( "timerefresh", SCR_TimeRefresh_f, "turn quickly and print rendering statistcs" ); |
|
|
|
gEngfuncs.Cmd_AddCommand( "timerefresh", SCR_TimeRefresh_f, "turn quickly and print rendering statistcs" ); |
|
|
|
|
|
|
|
|
|
|
@ -839,8 +855,8 @@ static void R_CheckVBO( void ) |
|
|
|
def = "0"; |
|
|
|
def = "0"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
r_vbo = Cvar_Get( "r_vbo", def, flags, "draw world using VBO" ); |
|
|
|
r_vbo = gEngfuncs.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_dlightmode = gEngfuncs.Cvar_Get( "r_vbo_dlightmode", dlightmode, FCVAR_ARCHIVE, "vbo dlight rendering mode(0-1)" ); |
|
|
|
|
|
|
|
|
|
|
|
// check if enabled manually
|
|
|
|
// check if enabled manually
|
|
|
|
if( CVAR_TO_BOOL(r_vbo) ) |
|
|
|
if( CVAR_TO_BOOL(r_vbo) ) |
|
|
|