cl_dll/view_scene.cpp
46474849505152535455
#include "ienginevgui.h"
#include "datacache/imdlcache.h"
#include "ScreenSpaceEffects.h"
#if defined( HL2_CLIENT_DLL ) || defined( CSTRIKE_DLL )
#define USE_MONITORS
#endif
// GR
#include "rendertexture.h"
464748495051525354555657585960
#include "ienginevgui.h"
#include "datacache/imdlcache.h"
#include "ScreenSpaceEffects.h"
#include "ff_vieweffects.h"
static ConVar ffdev_showrenderbounds("ffdev_showrenderbounds", "0", FCVAR_FF_FFDEV_CLIENT);
// Bug #0000385: point_camera & func_monitor in-titties
// Allways USE_MONITORS
//#if defined( HL2_CLIENT_DLL ) || defined( CSTRIKE_DLL )
#define USE_MONITORS
//#endif
// GR
#include "rendertexture.h"
100101102103104105106
//-----------------------------------------------------------------------------
static ConVar cl_maxrenderable_dist("cl_maxrenderable_dist", "3000", FCVAR_CHEAT, "Max distance from the camera at which things will be rendered" );
ConVar r_updaterefracttexture( "r_updaterefracttexture", "1" );
ConVar r_entityclips( "r_entityclips", "1" ); //FIXME: Nvidia drivers before 81.94 on cards that support user clip planes will have problems with this, require driver update? Detect and disable?
105106107108109110111
//-----------------------------------------------------------------------------
static ConVar cl_maxrenderable_dist("cl_maxrenderable_dist", "3000", FCVAR_CHEAT, "Max distance from the camera at which things will be rendered" );
ConVar r_updaterefracttexture( "r_updaterefracttexture", "1", FCVAR_CHEAT ); // Jiggles: Made this a cheat so players can't disable the Spy cloak
ConVar r_entityclips( "r_entityclips", "1" ); //FIXME: Nvidia drivers before 81.94 on cards that support user clip planes will have problems with this, require driver update? Detect and disable?
107108109110111112113114115
// Matches the version in the engine
static ConVar r_drawopaqueworld( "r_drawopaqueworld", "1", FCVAR_CHEAT );
static ConVar r_drawtranslucentworld( "r_drawtranslucentworld", "1", FCVAR_CHEAT );
static ConVar r_3dsky( "r_3dsky","1", 0, "Enable the rendering of 3d sky boxes" );
static ConVar r_skybox( "r_skybox","1", FCVAR_CHEAT, "Enable the rendering of sky boxes" );
ConVar r_drawviewmodel( "r_drawviewmodel","1", FCVAR_CHEAT );
static ConVar r_drawtranslucentrenderables( "r_drawtranslucentrenderables", "1", FCVAR_CHEAT );
static ConVar r_drawopaquerenderables( "r_drawopaquerenderables", "1", FCVAR_CHEAT );
112113114115116117118119120
// Matches the version in the engine
static ConVar r_drawopaqueworld( "r_drawopaqueworld", "1", FCVAR_CHEAT );
static ConVar r_drawtranslucentworld( "r_drawtranslucentworld", "1", FCVAR_CHEAT );
static ConVar r_3dsky( "r_3dsky","1", FCVAR_ARCHIVE, "Enable the rendering of 3d sky boxes" );
static ConVar r_skybox( "r_skybox","1", FCVAR_CHEAT, "Enable the rendering of sky boxes" );
ConVar r_drawviewmodel( "r_drawviewmodel","1", FCVAR_ARCHIVE );
static ConVar r_drawtranslucentrenderables( "r_drawtranslucentrenderables", "1", FCVAR_CHEAT );
static ConVar r_drawopaquerenderables( "r_drawopaquerenderables", "1", FCVAR_CHEAT );
140141142143144145146147
static ConVar r_debugcheapwater( "r_debugcheapwater", "0", FCVAR_CHEAT );
static ConVar r_waterforceexpensive( "r_waterforceexpensive", "0" );
static ConVar r_waterforcereflectentities( "r_waterforcereflectentities", "0" );
static ConVar r_WaterDrawRefraction( "r_WaterDrawRefraction", "1", 0, "Enable water refraction" );
static ConVar r_WaterDrawReflection( "r_WaterDrawReflection", "1", 0, "Enable water reflection" );
static ConVar r_ForceWaterLeaf( "r_ForceWaterLeaf", "1", 0, "Enable for optimization to water - considers view in leaf under water for purposes of culling" );
static ConVar mat_drawwater( "mat_drawwater", "1", FCVAR_CHEAT );
static ConVar mat_clipz( "mat_clipz", "1" );
145146147148149150151152
static ConVar r_debugcheapwater( "r_debugcheapwater", "0", FCVAR_CHEAT );
static ConVar r_waterforceexpensive( "r_waterforceexpensive", "0" );
static ConVar r_waterforcereflectentities( "r_waterforcereflectentities", "0" );
static ConVar r_WaterDrawRefraction( "r_WaterDrawRefraction", "1", FCVAR_ARCHIVE, "Enable water refraction" );
static ConVar r_WaterDrawReflection( "r_WaterDrawReflection", "1", FCVAR_ARCHIVE, "Enable water reflection" );
static ConVar r_ForceWaterLeaf( "r_ForceWaterLeaf", "1", 0, "Enable for optimization to water - considers view in leaf under water for purposes of culling" );
static ConVar mat_drawwater( "mat_drawwater", "1", FCVAR_CHEAT );
static ConVar mat_clipz( "mat_clipz", "1" );
1020102110221023102410251026102710281029103010311032103310341035
if (twoPass)
flags |= STUDIO_TWOPASS;
#if 0
Vector mins, maxs;
pEnt->GetRenderBounds( mins, maxs );
debugoverlay->AddBoxOverlay( pEnt->GetRenderOrigin(), mins, maxs, pEnt->GetRenderAngles(), 255, 255, 255, 64, 0.01 );
if ( pEnt->GetModel() )
{
const char *pName = modelinfo->GetModelName( pEnt->GetModel() );
if ( Q_stricmp( pName, "models/props_c17/tv_monitor01_screen.mdl" ) )
{
debugoverlay->AddTextOverlay( pEnt->GetRenderOrigin(), 0.01, pName );
}
}
#endif
1025102610271028102910301031103210331034103510361037103810391040104110421043
if (twoPass)
flags |= STUDIO_TWOPASS;
#if _DEBUG
if (ffdev_showrenderbounds.GetBool())
{
Vector mins, maxs;
pEnt->GetRenderBounds( mins, maxs );
debugoverlay->AddBoxOverlay( pEnt->GetRenderOrigin(), mins, maxs, pEnt->GetRenderAngles(), 255, 255, 255, 64, 0.01 );
if ( pEnt->GetModel() )
{
const char *pName = modelinfo->GetModelName( pEnt->GetModel() );
if ( Q_stricmp( pName, "models/props_c17/tv_monitor01_screen.mdl" ) )
{
debugoverlay->AddTextOverlay( pEnt->GetRenderOrigin(), 0.01, pName );
}
}
}
#endif
345834593460346134623463
// Draw the 2D graphics
render->Push2DView( view, 0, false, NULL, m_Frustum );
Render2DEffectsPreHUD( view );
if ( whatToDraw & RENDERVIEW_DRAWHUD )
34663467346834693470347134723473
// Draw the 2D graphics
render->Push2DView( view, 0, false, NULL, m_Frustum );
ffvieweffects->Render(VIEWEFFECT_BEFOREHUD, view.width, view.height); // |-- Mirv
Render2DEffectsPreHUD( view );
if ( whatToDraw & RENDERVIEW_DRAWHUD )
346634673468346934703471
// paint the vgui screen
VGui_PreRender();
// Make sure the client .dll root panel is at the proper point before doing the "SolveTraverse" calls
vgui::VPANEL root = enginevgui->GetPanel( PANEL_CLIENTDLL );
if ( root != 0 )
347634773478347934803481348234833484348534863487
// paint the vgui screen
VGui_PreRender();
// --> Mirv:
// Reduce the depth range so that our hud stuff isn't affected
// by the world/viewmodel.
materials->DepthRange( 0.0f, 0.1f );
// <--
// Make sure the client .dll root panel is at the proper point before doing the "SolveTraverse" calls
vgui::VPANEL root = enginevgui->GetPanel( PANEL_CLIENTDLL );
if ( root != 0 )
349734983499350035013502
Draw2DDebuggingInfo( view );
m_AnglesHistory[m_AnglesHistoryCounter] = view.angles;
m_AnglesHistoryCounter = (m_AnglesHistoryCounter+1) & ANGLESHISTORY_MASK;
35133514351535163517351835193520
Draw2DDebuggingInfo( view );
ffvieweffects->Render(VIEWEFFECT_AFTERHUD, view.width, view.height); // |-- Mirv
m_AnglesHistory[m_AnglesHistoryCounter] = view.angles;
m_AnglesHistoryCounter = (m_AnglesHistoryCounter+1) & ANGLESHISTORY_MASK;