Improved binding system (ObjectTypeDB::bind_method) to be friendlier to statically typed languages, should help in the Mono integration.
Disabled by default.
This commit is contained in:
parent
842e7bfc2f
commit
d6225b1e00
22 changed files with 517 additions and 23 deletions
|
|
@ -48,7 +48,13 @@ public:
|
|||
$ifnoret return Variant();$
|
||||
}
|
||||
|
||||
|
||||
#ifdef PTRCAL_ENABLED
|
||||
virtual void ptrcall(Object*p_object,const void** p_args,void *r_ret) {
|
||||
|
||||
T *instance=p_object->cast_to<T>();
|
||||
$ifret PtrToArg<R>::encode( $ (instance->*method)($arg, PtrToArg<P@>::convert(p_args[@-1])$) $ifret ,r_ret)$ ;
|
||||
}
|
||||
#endif
|
||||
MethodBind$argc$$ifret R$$ifconst C$ () {
|
||||
#ifdef DEBUG_METHODS_ENABLED
|
||||
_set_const($ifconst true$$ifnoconst false$);
|
||||
|
|
@ -121,7 +127,12 @@ public:
|
|||
$ifret return Variant(ret);$
|
||||
$ifnoret return Variant();$
|
||||
}
|
||||
|
||||
#ifdef PTRCALL_ENABLED
|
||||
virtual void ptrcall(Object*p_object,const void** p_args,void *r_ret) {
|
||||
__UnexistingClass *instance = (__UnexistingClass*)p_object;
|
||||
$ifret PtrToArg<R>::encode( $ (instance->*method)($arg, PtrToArg<P@>::convert(p_args[@-1])$) $ifret ,r_ret) $ ;
|
||||
}
|
||||
#endif
|
||||
MethodBind$argc$$ifret R$$ifconst C$ () {
|
||||
#ifdef DEBUG_METHODS_ENABLED
|
||||
_set_const($ifconst true$$ifnoconst false$);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue