Merge branch '1.5' into dotnet7

# Conflicts:
#	Source/Editor/Managed/ManagedEditor.Internal.cpp
#	Source/Engine/Core/Config/LayersAndTagsSettings.cs
This commit is contained in:
Wojtek Figat
2022-12-28 18:49:14 +01:00
97 changed files with 1945 additions and 421 deletions

View File

@@ -7,6 +7,30 @@
#include "ScriptingType.h"
#include "Types.h"
#if defined(__clang__)
// Helper utility to override vtable entry with automatic restore
// See BindingsGenerator.Cpp.cs that generates virtuall method wrappers for scripting to properly call overriden base method
struct FLAXENGINE_API VTableFunctionInjector
{
void** VTableAddr;
void* OriginalValue;
VTableFunctionInjector(void* object, void* originalFunc, void* func)
{
void** vtable = *(void***)object;
const int32 vtableIndex = GetVTableIndex(vtable, 200, originalFunc);
VTableAddr = vtable + vtableIndex;
OriginalValue = *VTableAddr;
*VTableAddr = func;
}
~VTableFunctionInjector()
{
*VTableAddr = OriginalValue;
}
};
#endif
#if USE_MONO
extern "C" FLAXENGINE_API void mono_add_internal_call(const char* name, const void* method);