| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #pragma once
- #define CM_SCRIPT_GETSET_VALUE(ParentType, Type, Name, Field) \
- static void internal_Get##Name##(##ParentType##* nativeInstance, Type##* value) \
- { \
- *value = nativeInstance->##Field; \
- } \
- \
- static void internal_Set##Name##(##ParentType##* nativeInstance, Type value) \
- { \
- nativeInstance->##Field = value; \
- } \
- #define CM_SCRIPT_GETSET_VALUE_REF(ParentType, Type, Name, Field) \
- static void internal_Get##Name##(##ParentType##* nativeInstance, Type##* value) \
- { \
- *value = nativeInstance->##Field; \
- } \
- \
- static void internal_Set##Name##(##ParentType##* nativeInstance, Type##* value) \
- { \
- nativeInstance->##Field = *value; \
- } \
- #define CM_SCRIPT_GETSET_OBJECT(ParentType, Type, Name, FieldNative, FieldManaged) \
- static void internal_Get##Name##(##ParentType##* nativeInstance, MonoObject** value) \
- { \
- throwIfInstancesDontMatch(nativeInstance->##FieldManaged##, &nativeInstance->##FieldNative##); \
- \
- if(nativeInstance->##FieldManaged != nullptr) \
- { \
- *value = nativeInstance->##FieldManaged##->getManagedInstance(); \
- return; \
- } \
- \
- *value = nullptr; \
- } \
- \
- static void internal_Set##Name##(##ParentType##* nativeInstance, MonoObject* value) \
- { \
- Type##* nativeValue = Type##::toNative(value); \
- nativeInstance->##FieldNative = nativeValue->getInternalValue(); \
- nativeInstance->##FieldManaged = nativeValue; \
- }
- #define CM_SCRIPT_GETSET_OBJECT_SHRDPTR(ParentType, Type, Name, FieldNative, FieldManaged) \
- static void internal_Get##Name##(##ParentType##* nativeInstance, MonoObject** value) \
- { \
- throwIfInstancesDontMatch(nativeInstance->##FieldManaged##, nativeInstance->##FieldNative##.get()); \
- \
- if(nativeInstance->##FieldManaged != nullptr) \
- { \
- *value = nativeInstance->##FieldManaged##->getManagedInstance(); \
- return; \
- } \
- \
- *value = nullptr; \
- } \
- \
- static void internal_Set##Name##(##ParentType##* nativeInstance, MonoObject* value) \
- { \
- Type##* nativeValue = Type##::toNative(value); \
- nativeInstance->##FieldNative = nativeValue->getInternalValue(); \
- nativeInstance->##FieldManaged = nativeValue; \
- }
- #define CM_SCRIPT_SETGET_META(Type, Name) \
- metaData.scriptClass->addInternalCall("Internal_Get" #Name, &##Type##::internal_Get##Name##); \
- metaData.scriptClass->addInternalCall("Internal_Set" #Name, &##Type##::internal_Set##Name##);
|