hl2_src-leak-2017/src/common/ivprofexport.h

61 lines
1.5 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef IVPROFEXPORT_H
#define IVPROFEXPORT_H
#ifdef _WIN32
#pragma once
#endif
#include "tier0/vprof.h"
#define VPROF_EXPORT_INTERFACE_VERSION "VProfExport001"
#include <Color.h>
abstract_class IVProfExport
{
public:
enum
{
MAX_BUDGETGROUP_TIMES = 512
};
class CExportedBudgetGroupInfo
{
public:
const char *m_pName;
int m_BudgetFlags; // Combination of BUDGETFLAG_ defines (in vprof.h)
Color m_Color;
};
public:
// Use this to register and unregister for the vprof data (if you don't, GetBudgetGroupTimes may return no data).
virtual void AddListener() = 0;
virtual void RemoveListener() = 0;
// Pause/resume profiling so it doesn't capture data we don't want.
virtual void PauseProfile() = 0;
virtual void ResumeProfile() = 0;
// Set a combination of BUDGETFLAG_ defines to define what data you're get back.
// Note: this defines which budget groups to REJECT (ones that have flags that are in filter won't be returned).
virtual void SetBudgetFlagsFilter( int filter ) = 0;
// Use budgetFlags to filter out which budget groups you're interested in.
virtual int GetNumBudgetGroups() = 0;
// pInfos must have space to hold the return value from GetNumBudgetGroups().
virtual void GetBudgetGroupInfos( CExportedBudgetGroupInfo *pInfos ) = 0;
virtual void GetBudgetGroupTimes( float times[MAX_BUDGETGROUP_TIMES] ) = 0;
};
#endif // IVPROFEXPORT_H