#ifndef PKE_PLUGIN_TYPES_HPP #define PKE_PLUGIN_TYPES_HPP #include struct PKEPluginInterface { // for internal use only void *pluginHandle = nullptr; void (*OnInit)() = nullptr; void (*OnTick)(double delta) = nullptr; void (*OnTeardown)() = nullptr; void (*OnImGuiRender)() = nullptr; }; constexpr int64_t CallbackSignatureLength = 16; using CallbackSignature = char[CallbackSignatureLength]; struct PkeCallback { // the 16 char signature(name) of a function CallbackSignature name = {'\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0'}; // the address of the function to call - populated on startup void *func = nullptr; }; #endif /* PKE_PLUGIN_TYPES_HPP */