43 #ifndef _orxPLUGIN_CORE_H_ 44 #define _orxPLUGIN_CORE_H_ 62 typedef struct __orxPLUGIN_CORE_FUNCTION_t
71 typedef struct __orxPLUGIN_USER_FUNCTION_INFO_t
99 #ifdef __orxEMBEDDED__ 123 #define orxPLUGIN_CORE_FUNCTION_POINTER_NAME(FUNCTION_NAME) _orxCoreFunctionPointer_##FUNCTION_NAME 126 #define orxPLUGIN_DEFAULT_CORE_FUNCTION_NAME(FUNCTION_NAME) _orxDefaultCoreFunction_##FUNCTION_NAME 129 #define orxPLUGIN_DEFAULT_CORE_FUNCTION_DEFINE(FUNCTION_NAME) \ 130 extern orxDLLAPI void *orxFASTCALL orxPLUGIN_DEFAULT_CORE_FUNCTION_NAME(FUNCTION_NAME)() \ 132 return(orxPlugin_DefaultCoreFunction(#FUNCTION_NAME, __FILE__, __LINE__)); \ 144 #pragma warning(disable : 4113) 147 #define orxPLUGIN_DEFINE_CORE_FUNCTION(FUNCTION_NAME, RETURN, ...) \ 148 orxPLUGIN_DEFAULT_CORE_FUNCTION_DEFINE(FUNCTION_NAME) \ 150 RETURN (orxFASTCALL *orxPLUGIN_CORE_FUNCTION_POINTER_NAME(FUNCTION_NAME))(__VA_ARGS__) = (RETURN(orxFASTCALL *)(__VA_ARGS__)) (&orxPLUGIN_DEFAULT_CORE_FUNCTION_NAME(FUNCTION_NAME)) 160 #define orxPLUGIN_BEGIN_CORE_FUNCTION_ARRAY(PLUGIN_SUFFIX) \ 161 static const orxPLUGIN_CORE_FUNCTION sastPluginFunctionInfo_##PLUGIN_SUFFIX[orxPLUGIN_FUNCTION_BASE_ID_##PLUGIN_SUFFIX##_NUMBER] = \ 165 #define orxPLUGIN_ADD_CORE_FUNCTION_ARRAY(PLUGIN_SUFFIX, FUNCTION_SUFFIX, FUNCTION_NAME) \ 166 {(orxPLUGIN_FUNCTION_ID)orxPLUGIN_FUNCTION_BASE_ID_##PLUGIN_SUFFIX##_##FUNCTION_SUFFIX, (orxPLUGIN_FUNCTION *)&orxPLUGIN_CORE_FUNCTION_POINTER_NAME(FUNCTION_NAME), (orxPLUGIN_FUNCTION)&orxPLUGIN_DEFAULT_CORE_FUNCTION_NAME(FUNCTION_NAME)}, 169 #define orxPLUGIN_END_CORE_FUNCTION_ARRAY(PLUGIN_SUFFIX) \ 171 extern orxIMPORT orxSTATUS orxPLUGIN_K_CORE_INIT_FUNCTION_NAME(PLUGIN_SUFFIX)(orxU32 *, orxPLUGIN_USER_FUNCTION_INFO **); \ 172 extern orxDLLAPI void orxPLUGIN_CORE_REGISTER_FUNCTION_NAME(PLUGIN_SUFFIX)() \ 174 orxPLUGIN_REGISTER_CORE_INFO(PLUGIN_SUFFIX); \ 185 #ifdef __orxEMBEDDED__ 188 #define orxPLUGIN_REGISTER_CORE_INFO(PLUGIN_SUFFIX) \ 189 orxPlugin_AddCoreInfo(orxPLUGIN_CORE_ID_##PLUGIN_SUFFIX, orxMODULE_ID_##PLUGIN_SUFFIX, sastPluginFunctionInfo_##PLUGIN_SUFFIX, sizeof(sastPluginFunctionInfo_##PLUGIN_SUFFIX) / sizeof(orxPLUGIN_CORE_FUNCTION)); \ 190 orxPlugin_BindCoreInfo(orxPLUGIN_CORE_ID_##PLUGIN_SUFFIX, orxPLUGIN_K_CORE_INIT_FUNCTION_NAME(PLUGIN_SUFFIX)) 195 #define orxPLUGIN_REGISTER_CORE_INFO(PLUGIN_SUFFIX) \ 196 orxPlugin_AddCoreInfo(orxPLUGIN_CORE_ID_##PLUGIN_SUFFIX, orxMODULE_ID_##PLUGIN_SUFFIX, sastPluginFunctionInfo_##PLUGIN_SUFFIX, sizeof(sastPluginFunctionInfo_##PLUGIN_SUFFIX) / sizeof(orxPLUGIN_CORE_FUNCTION)); orxPLUGIN_FUNCTION_ID eFunctionID
#define orxPLUGIN_KU32_FUNCTION_ARG_SIZE
orxPLUGIN_FUNCTION * pfnFunction
orxDLLAPI void orxFASTCALL orxPlugin_AddCoreInfo(orxPLUGIN_CORE_ID _ePluginCoreID, orxMODULE_ID _eModuleID, const orxPLUGIN_CORE_FUNCTION *_astCoreFunction, orxU32 _u32CoreFunctionNumber)
orxDLLAPI void *orxFASTCALL orxPlugin_DefaultCoreFunction(const orxSTRING _zFunctionName, const orxSTRING _zFileName, orxU32 _u32Line)
orxSTATUS(* orxPLUGIN_INIT_FUNCTION)(orxU32 *_peUserFunctionNumber, orxPLUGIN_USER_FUNCTION_INFO **_pastUserFunctionInfo)
const orxSTRING zFunctionName
orxSTATUS(orxFASTCALL * orxPLUGIN_FUNCTION)()
orxPLUGIN_FUNCTION pfnFunction
orxPLUGIN_FUNCTION_ID eFunctionID
orxPLUGIN_FUNCTION pfnDefaultFunction