//========= 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 );