mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-13 11:43:49 +00:00
Update the CInterface
This commit is contained in:
parent
13eb392c98
commit
ae1f5a3c89
10 changed files with 576 additions and 985 deletions
|
|
@ -21,10 +21,41 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
#include "platform/platformDlibrary.h"
|
||||
#include "console/engineAPI.h"
|
||||
#include "console/simBase.h"
|
||||
|
||||
// cinterface can override this (useful for plugins, etc)
|
||||
extern "C" {
|
||||
#define CALL_CINTERFACE_FUNCTION(name, ...){const char *v[] = { __VA_ARGS__ }; CInterface::CallFunction(name, v, sizeof(v) / sizeof(*v));}
|
||||
|
||||
const char* torque_getexecutablepath();
|
||||
class CInterface {
|
||||
typedef bool(*IsMethodCallback)(const char* className, const char* methodName);
|
||||
typedef void(*CallMainCallback)();
|
||||
typedef const char* (*CallFunctionCallback)(const char* nameSpace, const char* name, const char **argv, int argc, bool *result);
|
||||
typedef const char* (*CallMethodCallback)(const char* className, const char* classNamespace, U32 object, const char* name, const char **argv, int argc, bool *result);
|
||||
IsMethodCallback mIsMethodCallback;
|
||||
CallFunctionCallback mFunctionCallback;
|
||||
CallMethodCallback mMethodCallback;
|
||||
CallMainCallback mMainCallback;
|
||||
const char* _CallFunction(const char* nameSpace, const char* name, const char **argv, int argc, bool *result) const;
|
||||
const char* _CallMethod(const char* className, const char* classNamespace, U32 object, const char* name, const char **argv, int argc, bool *res) const;
|
||||
void _CallMain(bool *res) const;
|
||||
bool _isMethod(const char* className, const char* methodName) const;
|
||||
public:
|
||||
CInterface()
|
||||
{
|
||||
mFunctionCallback = NULL;
|
||||
mMethodCallback = NULL;
|
||||
mIsMethodCallback = NULL;
|
||||
mMainCallback = NULL;
|
||||
}
|
||||
|
||||
}
|
||||
static const char* CallFunction(const char* nameSpace, const char* name, const char **argv, int argc, bool *result);
|
||||
static const char* CallMethod(SimObject* obj, const char* name, const char **argv, int argc, bool *res);
|
||||
static void CallMain(bool *res);
|
||||
static bool isMethod(const char* className, const char* methodName);
|
||||
static CInterface& GetCInterface();
|
||||
void SetCallFunctionCallback(void* ptr) { mFunctionCallback = (CallFunctionCallback)ptr; };
|
||||
void SetCallMethodCallback(void* ptr) { mMethodCallback = (CallMethodCallback)ptr; };
|
||||
void SetCallIsMethodCallback(void* ptr) { mIsMethodCallback = (IsMethodCallback)ptr; };
|
||||
void SetMainCallback(void* ptr) { mMainCallback = (CallMainCallback)ptr; };
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue