Add C3D_FrameEndHook()
This commit is contained in:
parent
8764804dd5
commit
4ed5536bcc
@ -35,6 +35,8 @@ bool C3D_FrameDrawOn(C3D_RenderTarget* target);
|
||||
void C3D_FrameSplit(u8 flags);
|
||||
void C3D_FrameEnd(u8 flags);
|
||||
|
||||
void C3D_FrameEndHook(void (* hook)(void*), void* param);
|
||||
|
||||
float C3D_GetDrawingTime(void);
|
||||
float C3D_GetProcessingTime(void);
|
||||
|
||||
|
@ -21,6 +21,8 @@ static u8 frameStage;
|
||||
static float framerate = 60.0f;
|
||||
static float framerateCounter[2] = { 60.0f, 60.0f };
|
||||
static u32 frameCounter[2];
|
||||
static void (* frameEndCb)(void*);
|
||||
static void* frameEndCbData;
|
||||
|
||||
static bool framerateLimit(int id)
|
||||
{
|
||||
@ -242,6 +244,9 @@ void C3D_FrameEnd(u8 flags)
|
||||
{
|
||||
C3D_Context* ctx = C3Di_GetContext();
|
||||
|
||||
if (frameEndCb)
|
||||
frameEndCb(frameEndCbData);
|
||||
|
||||
C3D_FrameSplit(flags);
|
||||
inFrame = false;
|
||||
osTickCounterUpdate(&cpuTime);
|
||||
@ -279,6 +284,12 @@ void C3D_FrameEnd(u8 flags)
|
||||
gxCmdQueueRun(&ctx->gxQueue);
|
||||
}
|
||||
|
||||
void C3D_FrameEndHook(void (* hook)(void*), void* param)
|
||||
{
|
||||
frameEndCb = hook;
|
||||
frameEndCbData = param;
|
||||
}
|
||||
|
||||
float C3D_GetDrawingTime(void)
|
||||
{
|
||||
return osTickCounterRead(&gpuTime);
|
||||
|
Loading…
Reference in New Issue
Block a user