Implemented guest-to-host function pointers (#7)

* Implemented guest-to-host function pointers (WIP)

Co-Authored-By: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>

* function: support more types for function pointers

* api: ported BlueBlur headers and misc. research

* Move over function-pointers changes from options-menu branch.

---------

Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
This commit is contained in:
Hyper
2024-11-25 10:50:10 +00:00
committed by GitHub
parent a908780de8
commit 8f525b571b
93 changed files with 2957 additions and 62 deletions
@@ -0,0 +1,14 @@
#pragma once
#include "SWA.inl"
#include "Hedgehog/Universe/Engine/hhMessageProcess.h"
#include "Hedgehog/Universe/Thread/hhParallelJob.h"
namespace Hedgehog::Universe
{
class CMessageActor : public IMessageProcess, public IParallelJob
{
public:
SWA_INSERT_PADDING(0x88);
};
}
@@ -0,0 +1,14 @@
#pragma once
#include "SWA.inl"
#include "Hedgehog/Base/hhObject.h"
namespace Hedgehog::Universe
{
class IMessageProcess : public Base::CObject
{
public:
IMessageProcess() {}
IMessageProcess(const swa_null_ctor& nil) : CObject(nil) {}
};
}
@@ -0,0 +1,13 @@
#pragma once
#include "SWA.inl"
namespace Hedgehog::Universe
{
struct SUpdateInfo
{
be<float> DeltaTime;
be<uint32_t> Frame;
Base::CSharedString Category;
};
}
@@ -0,0 +1,25 @@
#pragma once
#include "SWA.inl"
#include "Hedgehog/Universe/Thread/hhParallelJob.h"
namespace Hedgehog::Universe
{
class CUpdateUnit : public Base::CObject, public IParallelJob
{
public:
xpointer<void> m_pVftable;
SWA_INSERT_PADDING(0x20);
CUpdateUnit(const swa_null_ctor& nil) : CObject(nil), IParallelJob(nil) {}
CUpdateUnit();
// TODO: implement virtual functions.
// virtual ~CUpdateUnit();
//
// virtual void ExecuteParallelJob(const SUpdateInfo& in_rUpdateInfo) override;
//
// virtual void UpdateParallel(const SUpdateInfo& in_rUpdateInfo) {}
// virtual void UpdateSerial(const SUpdateInfo& in_rUpdateInfo) {}
};
}