//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #include "cbase.h" #include "materialsystem/IMaterialProxy.h" #include "materialsystem/IMaterial.h" #include "materialsystem/IMaterialVar.h" // NOTE: This has to be the last file included! #include "tier0/memdbgon.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_MATERIAL_PROXY( CMonitorMaterialProxy, Monitor );