mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-15 09:28:59 +00:00
Debug font and CProfiles
This commit is contained in:
parent
313f547860
commit
7f8a4b4867
4 changed files with 138 additions and 15 deletions
71
src/core/Profile.cpp
Normal file
71
src/core/Profile.cpp
Normal file
|
@ -0,0 +1,71 @@
|
|||
#include "common.h"
|
||||
#include "Profile.h"
|
||||
|
||||
#ifndef MASTER
|
||||
float CProfile::ms_afStartTime[NUM_PROFILES];
|
||||
float CProfile::ms_afCumulativeTime[NUM_PROFILES];
|
||||
float CProfile::ms_afEndTime[NUM_PROFILES];
|
||||
float CProfile::ms_afMaxEndTime[NUM_PROFILES];
|
||||
float CProfile::ms_afMaxCumulativeTime[NUM_PROFILES];
|
||||
char *CProfile::ms_pProfileString[NUM_PROFILES];
|
||||
RwRGBA CProfile::ms_aBarColours[NUM_PROFILES];
|
||||
|
||||
void CProfile::Initialise()
|
||||
{
|
||||
ms_afMaxEndTime[PROFILE_FRAME_RATE] = 0.0f;
|
||||
ms_afMaxEndTime[PROFILE_PHYSICS] = 0.0f;
|
||||
ms_afMaxEndTime[PROFILE_COLLISION] = 0.0f;
|
||||
ms_afMaxEndTime[PROFILE_PED_AI] = 0.0f;
|
||||
ms_afMaxEndTime[PROFILE_PROCESSING_TIME] = 0.0f;
|
||||
ms_afMaxEndTime[PROFILE_RENDERING_TIME] = 0.0f;
|
||||
ms_afMaxEndTime[PROFILE_TOTAL] = 0.0f;
|
||||
|
||||
ms_pProfileString[PROFILE_FRAME_RATE] = "Frame rate";
|
||||
ms_pProfileString[PROFILE_PHYSICS] = "Physics";
|
||||
ms_pProfileString[PROFILE_COLLISION] = "Collision";
|
||||
ms_pProfileString[PROFILE_PED_AI] = "Ped AI";
|
||||
ms_pProfileString[PROFILE_PROCESSING_TIME] = "Processing time";
|
||||
ms_pProfileString[PROFILE_RENDERING_TIME] = "Rendering time";
|
||||
ms_pProfileString[PROFILE_TOTAL] = "Total";
|
||||
|
||||
ms_afMaxCumulativeTime[PROFILE_FRAME_RATE] = 0.0f;
|
||||
ms_afMaxCumulativeTime[PROFILE_PHYSICS] = 0.0f;
|
||||
ms_afMaxCumulativeTime[PROFILE_COLLISION] = 0.0f;
|
||||
ms_afMaxCumulativeTime[PROFILE_PED_AI] = 0.0f;
|
||||
ms_afMaxCumulativeTime[PROFILE_PROCESSING_TIME] = 0.0f;
|
||||
ms_afMaxCumulativeTime[PROFILE_RENDERING_TIME] = 0.0f;
|
||||
ms_afMaxCumulativeTime[PROFILE_TOTAL] = 0.0f;
|
||||
|
||||
ms_aBarColours[PROFILE_PHYSICS] = { 0, 127, 255, 255 };
|
||||
ms_aBarColours[PROFILE_COLLISION] = { 0, 255, 255, 255 };
|
||||
ms_aBarColours[PROFILE_PED_AI] = { 255, 0, 0, 255 };
|
||||
ms_aBarColours[PROFILE_PROCESSING_TIME] = { 0, 255, 0, 255 };
|
||||
ms_aBarColours[PROFILE_RENDERING_TIME] = { 0, 0, 255, 255 };
|
||||
ms_aBarColours[PROFILE_TOTAL] = { 255, 255, 255, 255 };
|
||||
}
|
||||
|
||||
void CProfile::SuspendProfile(eProfile profile)
|
||||
{
|
||||
ms_afEndTime[profile] = -ms_afStartTime[profile];
|
||||
ms_afCumulativeTime[profile] -= ms_afStartTime[profile];
|
||||
}
|
||||
|
||||
void CProfile::ShowResults()
|
||||
{
|
||||
ms_afMaxEndTime[PROFILE_FRAME_RATE] = max(ms_afMaxEndTime[PROFILE_FRAME_RATE], ms_afEndTime[PROFILE_FRAME_RATE]);
|
||||
ms_afMaxEndTime[PROFILE_PHYSICS] = max(ms_afMaxEndTime[PROFILE_PHYSICS], ms_afEndTime[PROFILE_PHYSICS]);
|
||||
ms_afMaxEndTime[PROFILE_COLLISION] = max(ms_afMaxEndTime[PROFILE_COLLISION], ms_afEndTime[PROFILE_COLLISION]);
|
||||
ms_afMaxEndTime[PROFILE_PED_AI] = max(ms_afMaxEndTime[PROFILE_PED_AI], ms_afEndTime[PROFILE_PED_AI]);
|
||||
ms_afMaxEndTime[PROFILE_PROCESSING_TIME] = max(ms_afMaxEndTime[PROFILE_PROCESSING_TIME], ms_afEndTime[PROFILE_PROCESSING_TIME]);
|
||||
ms_afMaxEndTime[PROFILE_RENDERING_TIME] = max(ms_afMaxEndTime[PROFILE_RENDERING_TIME], ms_afEndTime[PROFILE_RENDERING_TIME]);
|
||||
ms_afMaxEndTime[PROFILE_TOTAL] = max(ms_afMaxEndTime[PROFILE_TOTAL], ms_afEndTime[PROFILE_TOTAL]);
|
||||
|
||||
ms_afMaxCumulativeTime[PROFILE_FRAME_RATE] = max(ms_afMaxCumulativeTime[PROFILE_FRAME_RATE], ms_afCumulativeTime[PROFILE_FRAME_RATE]);
|
||||
ms_afMaxCumulativeTime[PROFILE_PHYSICS] = max(ms_afMaxCumulativeTime[PROFILE_PHYSICS], ms_afCumulativeTime[PROFILE_PHYSICS]);
|
||||
ms_afMaxCumulativeTime[PROFILE_COLLISION] = max(ms_afMaxCumulativeTime[PROFILE_COLLISION], ms_afCumulativeTime[PROFILE_COLLISION]);
|
||||
ms_afMaxCumulativeTime[PROFILE_PED_AI] = max(ms_afMaxCumulativeTime[PROFILE_PED_AI], ms_afCumulativeTime[PROFILE_PED_AI]);
|
||||
ms_afMaxCumulativeTime[PROFILE_PROCESSING_TIME] = max(ms_afMaxCumulativeTime[PROFILE_PROCESSING_TIME], ms_afCumulativeTime[PROFILE_PROCESSING_TIME]);
|
||||
ms_afMaxCumulativeTime[PROFILE_RENDERING_TIME] = max(ms_afMaxCumulativeTime[PROFILE_RENDERING_TIME], ms_afCumulativeTime[PROFILE_RENDERING_TIME]);
|
||||
ms_afMaxCumulativeTime[PROFILE_TOTAL] = max(ms_afMaxCumulativeTime[PROFILE_TOTAL], ms_afCumulativeTime[PROFILE_TOTAL]);
|
||||
}
|
||||
#endif
|
28
src/core/Profile.h
Normal file
28
src/core/Profile.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
#pragma once
|
||||
|
||||
enum eProfile
|
||||
{
|
||||
PROFILE_FRAME_RATE,
|
||||
PROFILE_PHYSICS,
|
||||
PROFILE_COLLISION,
|
||||
PROFILE_PED_AI,
|
||||
PROFILE_PROCESSING_TIME,
|
||||
PROFILE_RENDERING_TIME,
|
||||
PROFILE_TOTAL,
|
||||
NUM_PROFILES,
|
||||
};
|
||||
|
||||
class CProfile
|
||||
{
|
||||
static float ms_afStartTime[NUM_PROFILES];
|
||||
static float ms_afCumulativeTime[NUM_PROFILES];
|
||||
static float ms_afEndTime[NUM_PROFILES];
|
||||
static float ms_afMaxEndTime[NUM_PROFILES];
|
||||
static float ms_afMaxCumulativeTime[NUM_PROFILES];
|
||||
static char *ms_pProfileString[NUM_PROFILES];
|
||||
static RwRGBA ms_aBarColours[NUM_PROFILES];
|
||||
public:
|
||||
static void Initialise();
|
||||
static void SuspendProfile(eProfile profile);
|
||||
static void ShowResults();
|
||||
};
|
|
@ -3,6 +3,44 @@
|
|||
#include "patcher.h"
|
||||
#include "Timecycle.h"
|
||||
#include "skeleton.h"
|
||||
#if defined(RWLIBS) && !defined(FINAL)
|
||||
#include "rtcharse.h"
|
||||
#pragma comment( lib, "rtcharse.lib" )
|
||||
|
||||
RtCharset *debugCharset;
|
||||
#endif
|
||||
|
||||
void CreateDebugFont()
|
||||
{
|
||||
#if defined(RWLIBS) && !defined(FINAL)
|
||||
RwRGBA color = { 255, 255, 128, 255 };
|
||||
RwRGBA colorbg = { 0, 0, 0, 0 };
|
||||
RtCharsetOpen();
|
||||
debugCharset = RtCharsetCreate(&color, &colorbg);
|
||||
#endif
|
||||
}
|
||||
|
||||
void DestroyDebugFont()
|
||||
{
|
||||
#if defined(RWLIBS) && !defined(FINAL)
|
||||
RtCharsetDestroy(debugCharset);
|
||||
RtCharsetClose();
|
||||
#endif
|
||||
}
|
||||
|
||||
void ObrsPrintfString(const char *str, short x, short y)
|
||||
{
|
||||
#if defined(RWLIBS) && !defined(FINAL)
|
||||
RtCharsetPrintBuffered(debugCharset, str, x, y, true);
|
||||
#endif
|
||||
}
|
||||
|
||||
void FlushObrsPrintfs()
|
||||
{
|
||||
#if defined(RWLIBS) && !defined(FINAL)
|
||||
RtCharsetBufferFlush();
|
||||
#endif
|
||||
}
|
||||
|
||||
void *
|
||||
RwMallocAlign(RwUInt32 size, RwUInt32 align)
|
||||
|
@ -347,21 +385,6 @@ CameraCreate(RwInt32 width, RwInt32 height, RwBool zBuffer)
|
|||
return (nil);
|
||||
}
|
||||
|
||||
void CreateDebugFont()
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
void DestroyDebugFont()
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
void FlushObrsPrintfs()
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
WRAPPER void _TexturePoolsInitialise() { EAXJMP(0x598B10); }
|
||||
WRAPPER void _TexturePoolsShutdown() { EAXJMP(0x598B30); }
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ void RwFreeAlign(void *mem);
|
|||
|
||||
void CreateDebugFont();
|
||||
void DestroyDebugFont();
|
||||
void ObrsPrintfString(const char *str, short x, short y);
|
||||
void FlushObrsPrintfs();
|
||||
void DefinedState(void);
|
||||
RwFrame *GetFirstChild(RwFrame *frame);
|
||||
|
|
Loading…
Reference in a new issue