summaryrefslogtreecommitdiff
path: root/common/vgui/vgui_budgetpanelshared.h
blob: 5713604954a43856e04bb11f7e40479bdcbeb08b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
//===========================================================================//

#ifndef VGUI_BUDGETPANELSHARED_H
#define VGUI_BUDGETPANELSHARED_H

#ifdef _WIN32
#pragma once
#endif


#include "vgui_basebudgetpanel.h"


class IConVar;


// Shared between the engine and dedicated server.
class CBudgetPanelShared : public CBaseBudgetPanel
{
	typedef CBaseBudgetPanel BaseClass;

public:

	// budgetFlagsFilter is a combination of BUDGETFLAG_ defines that filters out which budget groups we are interested in.
	CBudgetPanelShared( vgui::Panel *pParent, const char *pElementName, int budgetFlagsFilter );
	~CBudgetPanelShared();

	// Override this to set the window position.
	virtual void SetupCustomConfigData( CBudgetPanelConfigData &data );

	virtual void SetTimeLabelText();
	virtual void SetHistoryLabelText();

	virtual void PaintBackground();
	virtual void Paint( void );
	virtual void PostChildPaint();

	virtual void SnapshotVProfHistory( float filteredtime  );

	// Command handlers
	void OnNumBudgetGroupsChanged( void );

	void SendConfigDataToBase();


public:

	static double g_fFrameTimeLessBudget;
	static double g_fFrameRate;


private:

	void DrawColoredText( 
		vgui::HFont font, 
		int x, int y, 
		int r, int g, int b, int a,
		PRINTF_FORMAT_STRING const char *pText,
		... ) FMTFUNCTION( 9, 10 );
};


// CVars that change the layout can hook this.
void PanelGeometryChangedCallBack( IConVar *var, const char *pOldString, float flOldValue );


#endif // VGUI_BUDGETPANELSHARED_H