//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
//=============================================================================//

#ifndef VGUI_TEXTUREBUDGETPANEL_H
#define VGUI_TEXTUREBUDGETPANEL_H

#ifdef _WIN32
#pragma once
#endif

#include "vgui/vgui_basebudgetpanel.h"
#include "tier0/vprof.h"

#ifdef VPROF_ENABLED

class CTextureBudgetPanel : public CBaseBudgetPanel
{
public:
	typedef CBaseBudgetPanel BaseClass;

	CTextureBudgetPanel( vgui::Panel *pParent, const char *pElementName );
	~CTextureBudgetPanel();

	void OnCVarStateChanged();


// CBaseBudgetPanel overrides.
public:
	virtual void SetTimeLabelText();
	virtual void SetHistoryLabelText();
	virtual void ResetAll();


// VGUI overrides.
public:
	virtual void OnTick( void );
	virtual void Paint();
	virtual void PerformLayout();


// Internal.
private:
	
	void SnapshotTextureHistory();
	void SendConfigDataToBase();
	CounterGroup_t GetCurrentCounterGroup() const;
	CON_COMMAND_MEMBER_F( CTextureBudgetPanel, "showbudget_texture_global_dumpstats", DumpGlobalTextureStats, "Dump all items in +showbudget_texture_global in a text form", 0 );

private:

	vgui::Label *m_pModeLabel;	
	int m_LastCounterGroup;
	int m_MaxValue;
	int m_SumOfValues;
};

#endif // VPROF_ENABLED

#endif // VGUI_TEXTUREBUDGETPANEL_H