mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Sync Frame ID between main thread and render thread, this changes makes the integration PASS the reflex test utility.
103 lines
3.3 KiB
C++
103 lines
3.3 KiB
C++
//=============================================================================
|
|
//
|
|
//
|
|
//=============================================================================
|
|
|
|
#include "core/stdafx.h"
|
|
/*****************************************************************************/
|
|
#include "tier1/cvar.h"
|
|
#include "tier0/commandline.h"
|
|
#include "engine/net_chan.h"
|
|
#include "engine/client/cl_rcon.h"
|
|
#include "networksystem/bansystem.h"
|
|
#include "vpc/keyvalues.h"
|
|
#include "windows/id3dx.h"
|
|
#include "geforce/reflex.h"
|
|
#include "vengineclient_impl.h"
|
|
#include "cdll_engine_int.h"
|
|
#include "materialsystem/cmaterialsystem.h"
|
|
/*****************************************************************************/
|
|
|
|
#ifndef DEDICATED
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: pre frame stage notify hook
|
|
//-----------------------------------------------------------------------------
|
|
void FrameStageNotify_Pre(const ClientFrameStage_t frameStage)
|
|
{
|
|
switch (frameStage)
|
|
{
|
|
case ClientFrameStage_t::FRAME_START:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_START:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_POSTDATAUPDATE_START:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_POSTDATAUPDATE_END:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_END:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_RENDER_START:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_RENDER_END:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_NET_FULL_FRAME_UPDATE_ON_REMOVE:
|
|
break;
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: post frame stage notify hook
|
|
//-----------------------------------------------------------------------------
|
|
void FrameStageNotify_Post(const ClientFrameStage_t frameStage)
|
|
{
|
|
switch (frameStage)
|
|
{
|
|
case ClientFrameStage_t::FRAME_START:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_START:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_POSTDATAUPDATE_START:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_POSTDATAUPDATE_END:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_END:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_RENDER_START:
|
|
break;
|
|
case ClientFrameStage_t::FRAME_RENDER_END:
|
|
GFX_SetLatencyMarker(D3D11Device(), SIMULATION_END, MaterialSystem()->GetCurrentFrameCount());
|
|
break;
|
|
case ClientFrameStage_t::FRAME_NET_FULL_FRAME_UPDATE_ON_REMOVE:
|
|
break;
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose:
|
|
//-----------------------------------------------------------------------------
|
|
void CHLClient::FrameStageNotify(CHLClient* pHLClient, ClientFrameStage_t frameStage)
|
|
{
|
|
FrameStageNotify_Pre(frameStage);
|
|
CHLClient_FrameStageNotify(pHLClient, frameStage);
|
|
FrameStageNotify_Post(frameStage);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Get g_pClientClassHead Pointer for all ClientClasses.
|
|
// Input :
|
|
// Output : ClientClass*
|
|
//-----------------------------------------------------------------------------
|
|
ClientClass* CHLClient::GetAllClasses()
|
|
{
|
|
return CHLClient_GetAllClasses();
|
|
}
|
|
#endif // !DEDICATED
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
void VDll_Engine_Int::Detour(const bool bAttach) const
|
|
{
|
|
#ifndef DEDICATED
|
|
DetourSetup(&CHLClient_FrameStageNotify, &CHLClient::FrameStageNotify, bAttach);
|
|
#endif // !DEDICATED
|
|
}
|