r5sdk/r5dev/vgui/vgui_debugpanel.h
Kawe Mazidjatari e2f06a8a68 Massive performance improvements
Inline every signature defined in the SDK (previously each translation unit had its own copy of the signature and function prototype). DLL init is near instant now (85% speed improvements).
2022-04-09 02:18:57 +02:00

62 lines
1.2 KiB
C++

#pragma once
#include "core/stdafx.h"
#include "mathlib/color.h"
enum class LogType_t : int
{
SCRIPT_SERVER,
SCRIPT_CLIENT,
SCRIPT_UI,
NATIVE_SERVER,
NATIVE_CLIENT,
NATIVE_UI,
NATIVE_ENGINE,
NATIVE_FS,
NATIVE_RTECH,
NATIVE_MS,
NETCON_S,
WARNING_C,
ERROR_C,
NONE
};
struct LogMsg_t
{
LogMsg_t(const std::string svMessage, const int nTicks, const LogType_t type)
{
this->m_svMessage = svMessage;
this->m_nTicks = nTicks;
this->m_type = type;
}
std::string m_svMessage = "";
int m_nTicks = 1024;
LogType_t m_type = LogType_t::NONE;
};
class CLogSystem
{
public:
void Update(void);
void AddLog(LogType_t type, std::string svText);
void DrawLog(void);
void DrawHostStats(void) const;
void DrawSimStats(void) const;
void DrawGPUStats(void) const;
private:
Color GetLogColorForType(LogType_t type) const;
vector<LogMsg_t> m_vLogs{};
int m_nFontHeight = 16;
public:
char* m_pszCon_NPrintf_Buf[4096]{};
};
///////////////////////////////////////////////////////////////////////////////
int HCEngineVGui_Paint(void* thisptr, int nMode);
void CEngineVGui_Attach();
void CEngineVGui_Detach();
///////////////////////////////////////////////////////////////////////////////
extern CLogSystem g_pLogSystem;