#include "Platform.h" #include namespace Platform { static uintptr_t FrameThreadProc = 0; static std::function ThreadEntryFunc = nullptr; static void (*ThreadStartCallback)() = nullptr; ECL_EXPORT uintptr_t GetFrameThreadProc() { return FrameThreadProc; } ECL_EXPORT void SetThreadStartCallback(void (*callback)()) { ThreadStartCallback = callback; } static void ThreadEntry() { ThreadEntryFunc(); } Thread* Thread_Create(std::function func) { ThreadEntryFunc = func; FrameThreadProc = reinterpret_cast(ThreadEntry); return nullptr; } void Thread_Free(Thread* thread) { } // hijacked to act as a thread start, consider this "wait for start of thread" void Thread_Wait(Thread* thread) { ThreadStartCallback(); } }