mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-15 13:39:01 +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 "patcher.h"
|
||||||
#include "Timecycle.h"
|
#include "Timecycle.h"
|
||||||
#include "skeleton.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 *
|
void *
|
||||||
RwMallocAlign(RwUInt32 size, RwUInt32 align)
|
RwMallocAlign(RwUInt32 size, RwUInt32 align)
|
||||||
|
@ -347,21 +385,6 @@ CameraCreate(RwInt32 width, RwInt32 height, RwBool zBuffer)
|
||||||
return (nil);
|
return (nil);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateDebugFont()
|
|
||||||
{
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DestroyDebugFont()
|
|
||||||
{
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FlushObrsPrintfs()
|
|
||||||
{
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
WRAPPER void _TexturePoolsInitialise() { EAXJMP(0x598B10); }
|
WRAPPER void _TexturePoolsInitialise() { EAXJMP(0x598B10); }
|
||||||
WRAPPER void _TexturePoolsShutdown() { EAXJMP(0x598B30); }
|
WRAPPER void _TexturePoolsShutdown() { EAXJMP(0x598B30); }
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ void RwFreeAlign(void *mem);
|
||||||
|
|
||||||
void CreateDebugFont();
|
void CreateDebugFont();
|
||||||
void DestroyDebugFont();
|
void DestroyDebugFont();
|
||||||
|
void ObrsPrintfString(const char *str, short x, short y);
|
||||||
void FlushObrsPrintfs();
|
void FlushObrsPrintfs();
|
||||||
void DefinedState(void);
|
void DefinedState(void);
|
||||||
RwFrame *GetFirstChild(RwFrame *frame);
|
RwFrame *GetFirstChild(RwFrame *frame);
|
||||||
|
|
Loading…
Reference in a new issue