csgo-2018-source/public/vjobs_interface.h

62 lines
1.3 KiB
C
Raw Permalink Normal View History

2021-07-25 12:11:47 +08:00
//========== Copyright <20> Valve Corporation, All rights reserved. ========
#ifndef VJOBSINTERFACE_HDR
#define VJOBSINTERFACE_HDR
#include "appframework/iappsystem.h"
#define VJOBS_INTERFACE_VERSION "VJobs01"
#ifdef _PS3
#define VJOBS_ON_SPURS 1
#endif
enum RunTargetEnum
{
RUN_TARGET_MAIN_CPU,
RUN_TARGET_SATELLITE_CPU,
RUN_TARGET_GPU
};
class VjobChain3;
class VjobChain4;
namespace job_fpcpatch
{
struct FpcPatchState_t;
}
namespace job_fpcpatch2
{
struct FpHeader_t;
}
struct VJobsRoot;
struct VJobInstance
{
VJobInstance(): m_pRoot( NULL ){}
VJobsRoot* m_pRoot;
int m_nIncrementalVectorIndex; // this instance will be part of incremental vector
virtual void OnVjobsInit() {} // gets called after m_pRoot was created and assigned
virtual void OnVjobsShutdown() {} // gets called before m_pRoot is about to be destructed and NULL'ed
};
struct IVJobs: public IAppSystem
{
// this must be called right before unloading PRX for the purpose of immediately reloading it
virtual void BeforeReload() = 0;
virtual void AfterReload() = 0;
virtual void SetRunTarget( RunTargetEnum nRunTarget ) = 0;
// virtual void StartTest() = 0;
virtual void Register( VJobInstance * pInstance ) = 0;
virtual void Unregister( VJobInstance * pInstance ) = 0;
virtual void DoNothing() = 0;
};
#endif