aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/client/c_env_projectedtexture.cpp
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/client/c_env_projectedtexture.cpp
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/client/c_env_projectedtexture.cpp')
-rw-r--r--mp/src/game/client/c_env_projectedtexture.cpp472
1 files changed, 236 insertions, 236 deletions
diff --git a/mp/src/game/client/c_env_projectedtexture.cpp b/mp/src/game/client/c_env_projectedtexture.cpp
index 75da220f..310c3a27 100644
--- a/mp/src/game/client/c_env_projectedtexture.cpp
+++ b/mp/src/game/client/c_env_projectedtexture.cpp
@@ -1,236 +1,236 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-//=============================================================================
-
-#include "cbase.h"
-#include "shareddefs.h"
-#include "materialsystem/imesh.h"
-#include "materialsystem/imaterial.h"
-#include "view.h"
-#include "iviewrender.h"
-#include "view_shared.h"
-#include "texture_group_names.h"
-#include "tier0/icommandline.h"
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-static ConVar mat_slopescaledepthbias_shadowmap( "mat_slopescaledepthbias_shadowmap", "16", FCVAR_CHEAT );
-static ConVar mat_depthbias_shadowmap( "mat_depthbias_shadowmap", "0.0005", FCVAR_CHEAT );
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-class C_EnvProjectedTexture : public C_BaseEntity
-{
- DECLARE_CLASS( C_EnvProjectedTexture, C_BaseEntity );
-public:
- DECLARE_CLIENTCLASS();
-
- virtual void OnDataChanged( DataUpdateType_t updateType );
- void ShutDownLightHandle( void );
-
- virtual void Simulate();
-
- void UpdateLight( bool bForceUpdate );
-
- C_EnvProjectedTexture();
- ~C_EnvProjectedTexture();
-
-private:
-
- ClientShadowHandle_t m_LightHandle;
-
- EHANDLE m_hTargetEntity;
-
- bool m_bState;
- float m_flLightFOV;
- bool m_bEnableShadows;
- bool m_bLightOnlyTarget;
- bool m_bLightWorld;
- bool m_bCameraSpace;
- Vector m_LinearFloatLightColor;
- float m_flAmbient;
- float m_flNearZ;
- float m_flFarZ;
- char m_SpotlightTextureName[ MAX_PATH ];
- int m_nSpotlightTextureFrame;
- int m_nShadowQuality;
-};
-
-IMPLEMENT_CLIENTCLASS_DT( C_EnvProjectedTexture, DT_EnvProjectedTexture, CEnvProjectedTexture )
- RecvPropEHandle( RECVINFO( m_hTargetEntity ) ),
- RecvPropBool( RECVINFO( m_bState ) ),
- RecvPropFloat( RECVINFO( m_flLightFOV ) ),
- RecvPropBool( RECVINFO( m_bEnableShadows ) ),
- RecvPropBool( RECVINFO( m_bLightOnlyTarget ) ),
- RecvPropBool( RECVINFO( m_bLightWorld ) ),
- RecvPropBool( RECVINFO( m_bCameraSpace ) ),
- RecvPropVector( RECVINFO( m_LinearFloatLightColor ) ),
- RecvPropFloat( RECVINFO( m_flAmbient ) ),
- RecvPropString( RECVINFO( m_SpotlightTextureName ) ),
- RecvPropInt( RECVINFO( m_nSpotlightTextureFrame ) ),
- RecvPropFloat( RECVINFO( m_flNearZ ) ),
- RecvPropFloat( RECVINFO( m_flFarZ ) ),
- RecvPropInt( RECVINFO( m_nShadowQuality ) ),
-END_RECV_TABLE()
-
-C_EnvProjectedTexture::C_EnvProjectedTexture( void )
-{
- m_LightHandle = CLIENTSHADOW_INVALID_HANDLE;
-}
-
-C_EnvProjectedTexture::~C_EnvProjectedTexture( void )
-{
- ShutDownLightHandle();
-}
-
-void C_EnvProjectedTexture::ShutDownLightHandle( void )
-{
- // Clear out the light
- if( m_LightHandle != CLIENTSHADOW_INVALID_HANDLE )
- {
- g_pClientShadowMgr->DestroyFlashlight( m_LightHandle );
- m_LightHandle = CLIENTSHADOW_INVALID_HANDLE;
- }
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-// Input : updateType -
-//-----------------------------------------------------------------------------
-void C_EnvProjectedTexture::OnDataChanged( DataUpdateType_t updateType )
-{
- UpdateLight( true );
- BaseClass::OnDataChanged( updateType );
-}
-
-void C_EnvProjectedTexture::UpdateLight( bool bForceUpdate )
-{
- if ( m_bState == false )
- {
- if ( m_LightHandle != CLIENTSHADOW_INVALID_HANDLE )
- {
- ShutDownLightHandle();
- }
-
- return;
- }
-
- Vector vForward, vRight, vUp, vPos = GetAbsOrigin();
- FlashlightState_t state;
-
- if ( m_hTargetEntity != NULL )
- {
- if ( m_bCameraSpace )
- {
- const QAngle &angles = GetLocalAngles();
-
- C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();
- if( pPlayer )
- {
- const QAngle playerAngles = pPlayer->GetAbsAngles();
-
- Vector vPlayerForward, vPlayerRight, vPlayerUp;
- AngleVectors( playerAngles, &vPlayerForward, &vPlayerRight, &vPlayerUp );
-
- matrix3x4_t mRotMatrix;
- AngleMatrix( angles, mRotMatrix );
-
- VectorITransform( vPlayerForward, mRotMatrix, vForward );
- VectorITransform( vPlayerRight, mRotMatrix, vRight );
- VectorITransform( vPlayerUp, mRotMatrix, vUp );
-
- float dist = (m_hTargetEntity->GetAbsOrigin() - GetAbsOrigin()).Length();
- vPos = m_hTargetEntity->GetAbsOrigin() - vForward*dist;
-
- VectorNormalize( vForward );
- VectorNormalize( vRight );
- VectorNormalize( vUp );
- }
- }
- else
- {
- vForward = m_hTargetEntity->GetAbsOrigin() - GetAbsOrigin();
- VectorNormalize( vForward );
-
- // JasonM - unimplemented
- Assert (0);
-
- //Quaternion q = DirectionToOrientation( dir );
-
-
- //
- // JasonM - set up vRight, vUp
- //
-
-// VectorNormalize( vRight );
-// VectorNormalize( vUp );
- }
- }
- else
- {
- AngleVectors( GetAbsAngles(), &vForward, &vRight, &vUp );
- }
-
- state.m_fHorizontalFOVDegrees = m_flLightFOV;
- state.m_fVerticalFOVDegrees = m_flLightFOV;
-
- state.m_vecLightOrigin = vPos;
- BasisToQuaternion( vForward, vRight, vUp, state.m_quatOrientation );
-
- state.m_fQuadraticAtten = 0.0;
- state.m_fLinearAtten = 100;
- state.m_fConstantAtten = 0.0f;
- state.m_Color[0] = m_LinearFloatLightColor.x;
- state.m_Color[1] = m_LinearFloatLightColor.y;
- state.m_Color[2] = m_LinearFloatLightColor.z;
- state.m_Color[3] = 0.0f; // fixme: need to make ambient work m_flAmbient;
- state.m_NearZ = m_flNearZ;
- state.m_FarZ = m_flFarZ;
- state.m_flShadowSlopeScaleDepthBias = mat_slopescaledepthbias_shadowmap.GetFloat();
- state.m_flShadowDepthBias = mat_depthbias_shadowmap.GetFloat();
- state.m_bEnableShadows = m_bEnableShadows;
- state.m_pSpotlightTexture = materials->FindTexture( m_SpotlightTextureName, TEXTURE_GROUP_OTHER, false );
- state.m_nSpotlightTextureFrame = m_nSpotlightTextureFrame;
-
- state.m_nShadowQuality = m_nShadowQuality; // Allow entity to affect shadow quality
-
- if( m_LightHandle == CLIENTSHADOW_INVALID_HANDLE )
- {
- m_LightHandle = g_pClientShadowMgr->CreateFlashlight( state );
- }
- else
- {
- if ( m_hTargetEntity != NULL || bForceUpdate == true )
- {
- g_pClientShadowMgr->UpdateFlashlightState( m_LightHandle, state );
- }
- }
-
- if( m_bLightOnlyTarget )
- {
- g_pClientShadowMgr->SetFlashlightTarget( m_LightHandle, m_hTargetEntity );
- }
- else
- {
- g_pClientShadowMgr->SetFlashlightTarget( m_LightHandle, NULL );
- }
-
- g_pClientShadowMgr->SetFlashlightLightWorld( m_LightHandle, m_bLightWorld );
-
- if ( bForceUpdate == false )
- {
- g_pClientShadowMgr->UpdateProjectedTexture( m_LightHandle, true );
- }
-}
-
-void C_EnvProjectedTexture::Simulate( void )
-{
- UpdateLight( false );
-
- BaseClass::Simulate();
-}
-
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+#include "cbase.h"
+#include "shareddefs.h"
+#include "materialsystem/imesh.h"
+#include "materialsystem/imaterial.h"
+#include "view.h"
+#include "iviewrender.h"
+#include "view_shared.h"
+#include "texture_group_names.h"
+#include "tier0/icommandline.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+static ConVar mat_slopescaledepthbias_shadowmap( "mat_slopescaledepthbias_shadowmap", "16", FCVAR_CHEAT );
+static ConVar mat_depthbias_shadowmap( "mat_depthbias_shadowmap", "0.0005", FCVAR_CHEAT );
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class C_EnvProjectedTexture : public C_BaseEntity
+{
+ DECLARE_CLASS( C_EnvProjectedTexture, C_BaseEntity );
+public:
+ DECLARE_CLIENTCLASS();
+
+ virtual void OnDataChanged( DataUpdateType_t updateType );
+ void ShutDownLightHandle( void );
+
+ virtual void Simulate();
+
+ void UpdateLight( bool bForceUpdate );
+
+ C_EnvProjectedTexture();
+ ~C_EnvProjectedTexture();
+
+private:
+
+ ClientShadowHandle_t m_LightHandle;
+
+ EHANDLE m_hTargetEntity;
+
+ bool m_bState;
+ float m_flLightFOV;
+ bool m_bEnableShadows;
+ bool m_bLightOnlyTarget;
+ bool m_bLightWorld;
+ bool m_bCameraSpace;
+ Vector m_LinearFloatLightColor;
+ float m_flAmbient;
+ float m_flNearZ;
+ float m_flFarZ;
+ char m_SpotlightTextureName[ MAX_PATH ];
+ int m_nSpotlightTextureFrame;
+ int m_nShadowQuality;
+};
+
+IMPLEMENT_CLIENTCLASS_DT( C_EnvProjectedTexture, DT_EnvProjectedTexture, CEnvProjectedTexture )
+ RecvPropEHandle( RECVINFO( m_hTargetEntity ) ),
+ RecvPropBool( RECVINFO( m_bState ) ),
+ RecvPropFloat( RECVINFO( m_flLightFOV ) ),
+ RecvPropBool( RECVINFO( m_bEnableShadows ) ),
+ RecvPropBool( RECVINFO( m_bLightOnlyTarget ) ),
+ RecvPropBool( RECVINFO( m_bLightWorld ) ),
+ RecvPropBool( RECVINFO( m_bCameraSpace ) ),
+ RecvPropVector( RECVINFO( m_LinearFloatLightColor ) ),
+ RecvPropFloat( RECVINFO( m_flAmbient ) ),
+ RecvPropString( RECVINFO( m_SpotlightTextureName ) ),
+ RecvPropInt( RECVINFO( m_nSpotlightTextureFrame ) ),
+ RecvPropFloat( RECVINFO( m_flNearZ ) ),
+ RecvPropFloat( RECVINFO( m_flFarZ ) ),
+ RecvPropInt( RECVINFO( m_nShadowQuality ) ),
+END_RECV_TABLE()
+
+C_EnvProjectedTexture::C_EnvProjectedTexture( void )
+{
+ m_LightHandle = CLIENTSHADOW_INVALID_HANDLE;
+}
+
+C_EnvProjectedTexture::~C_EnvProjectedTexture( void )
+{
+ ShutDownLightHandle();
+}
+
+void C_EnvProjectedTexture::ShutDownLightHandle( void )
+{
+ // Clear out the light
+ if( m_LightHandle != CLIENTSHADOW_INVALID_HANDLE )
+ {
+ g_pClientShadowMgr->DestroyFlashlight( m_LightHandle );
+ m_LightHandle = CLIENTSHADOW_INVALID_HANDLE;
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Purpose:
+// Input : updateType -
+//-----------------------------------------------------------------------------
+void C_EnvProjectedTexture::OnDataChanged( DataUpdateType_t updateType )
+{
+ UpdateLight( true );
+ BaseClass::OnDataChanged( updateType );
+}
+
+void C_EnvProjectedTexture::UpdateLight( bool bForceUpdate )
+{
+ if ( m_bState == false )
+ {
+ if ( m_LightHandle != CLIENTSHADOW_INVALID_HANDLE )
+ {
+ ShutDownLightHandle();
+ }
+
+ return;
+ }
+
+ Vector vForward, vRight, vUp, vPos = GetAbsOrigin();
+ FlashlightState_t state;
+
+ if ( m_hTargetEntity != NULL )
+ {
+ if ( m_bCameraSpace )
+ {
+ const QAngle &angles = GetLocalAngles();
+
+ C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();
+ if( pPlayer )
+ {
+ const QAngle playerAngles = pPlayer->GetAbsAngles();
+
+ Vector vPlayerForward, vPlayerRight, vPlayerUp;
+ AngleVectors( playerAngles, &vPlayerForward, &vPlayerRight, &vPlayerUp );
+
+ matrix3x4_t mRotMatrix;
+ AngleMatrix( angles, mRotMatrix );
+
+ VectorITransform( vPlayerForward, mRotMatrix, vForward );
+ VectorITransform( vPlayerRight, mRotMatrix, vRight );
+ VectorITransform( vPlayerUp, mRotMatrix, vUp );
+
+ float dist = (m_hTargetEntity->GetAbsOrigin() - GetAbsOrigin()).Length();
+ vPos = m_hTargetEntity->GetAbsOrigin() - vForward*dist;
+
+ VectorNormalize( vForward );
+ VectorNormalize( vRight );
+ VectorNormalize( vUp );
+ }
+ }
+ else
+ {
+ vForward = m_hTargetEntity->GetAbsOrigin() - GetAbsOrigin();
+ VectorNormalize( vForward );
+
+ // JasonM - unimplemented
+ Assert (0);
+
+ //Quaternion q = DirectionToOrientation( dir );
+
+
+ //
+ // JasonM - set up vRight, vUp
+ //
+
+// VectorNormalize( vRight );
+// VectorNormalize( vUp );
+ }
+ }
+ else
+ {
+ AngleVectors( GetAbsAngles(), &vForward, &vRight, &vUp );
+ }
+
+ state.m_fHorizontalFOVDegrees = m_flLightFOV;
+ state.m_fVerticalFOVDegrees = m_flLightFOV;
+
+ state.m_vecLightOrigin = vPos;
+ BasisToQuaternion( vForward, vRight, vUp, state.m_quatOrientation );
+
+ state.m_fQuadraticAtten = 0.0;
+ state.m_fLinearAtten = 100;
+ state.m_fConstantAtten = 0.0f;
+ state.m_Color[0] = m_LinearFloatLightColor.x;
+ state.m_Color[1] = m_LinearFloatLightColor.y;
+ state.m_Color[2] = m_LinearFloatLightColor.z;
+ state.m_Color[3] = 0.0f; // fixme: need to make ambient work m_flAmbient;
+ state.m_NearZ = m_flNearZ;
+ state.m_FarZ = m_flFarZ;
+ state.m_flShadowSlopeScaleDepthBias = mat_slopescaledepthbias_shadowmap.GetFloat();
+ state.m_flShadowDepthBias = mat_depthbias_shadowmap.GetFloat();
+ state.m_bEnableShadows = m_bEnableShadows;
+ state.m_pSpotlightTexture = materials->FindTexture( m_SpotlightTextureName, TEXTURE_GROUP_OTHER, false );
+ state.m_nSpotlightTextureFrame = m_nSpotlightTextureFrame;
+
+ state.m_nShadowQuality = m_nShadowQuality; // Allow entity to affect shadow quality
+
+ if( m_LightHandle == CLIENTSHADOW_INVALID_HANDLE )
+ {
+ m_LightHandle = g_pClientShadowMgr->CreateFlashlight( state );
+ }
+ else
+ {
+ if ( m_hTargetEntity != NULL || bForceUpdate == true )
+ {
+ g_pClientShadowMgr->UpdateFlashlightState( m_LightHandle, state );
+ }
+ }
+
+ if( m_bLightOnlyTarget )
+ {
+ g_pClientShadowMgr->SetFlashlightTarget( m_LightHandle, m_hTargetEntity );
+ }
+ else
+ {
+ g_pClientShadowMgr->SetFlashlightTarget( m_LightHandle, NULL );
+ }
+
+ g_pClientShadowMgr->SetFlashlightLightWorld( m_LightHandle, m_bLightWorld );
+
+ if ( bForceUpdate == false )
+ {
+ g_pClientShadowMgr->UpdateProjectedTexture( m_LightHandle, true );
+ }
+}
+
+void C_EnvProjectedTexture::Simulate( void )
+{
+ UpdateLight( false );
+
+ BaseClass::Simulate();
+}
+