Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "materialsystem/imaterialproxy.h"
#include "materialsystem/imaterial.h"
#include "materialsystem/imaterialvar.h"
// $monitorTextureVar
class CMonitorMaterialProxy : public IMaterialProxy { public: CMonitorMaterialProxy(); virtual ~CMonitorMaterialProxy(); virtual bool Init( IMaterial *pMaterial, KeyValues *pKeyValues ); virtual void OnBind( void *pC_BaseEntity ); virtual void Release( void ) { delete this; } private: IMaterialVar *m_pMonitorTextureVar; };
CMonitorMaterialProxy::CMonitorMaterialProxy() { m_pMonitorTextureVar = NULL; }
CMonitorMaterialProxy::~CMonitorMaterialProxy() { m_pMonitorTextureVar = NULL; }
bool CMonitorMaterialProxy::Init( IMaterial *pMaterial, KeyValues *pKeyValues ) { char const* pMonitorTextureVarName = pKeyValues->getString( "$monitorTextureVar" ); if( !pMonitorTextureVarName ) return false;
bool foundVar; m_pMonitorTextureVar = pMaterial->FindVar( pMonitorTextureVarName, &foundVar, false ); if( !foundVar ) { m_pMonitorTextureVar = NULL; return false; } return true; }
void CMonitorMaterialProxy::OnBind( void *pC_BaseEntity ) { if( !m_pMonitorTextureVar ) { return; } }
EXPOSE_INTERFACE( CMonitorMaterialProxy, IMaterialProxy, "Monitor" IMATERIAL_PROXY_INTERFACE_VERSION );
|