52 lines
1.6 KiB
C++
52 lines
1.6 KiB
C++
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
||
|
|
|
||
|
|
#include "FbxLibs.h"
|
||
|
|
#include "FbxExporter.h"
|
||
|
|
|
||
|
|
//-------------------------------------------------------------------------
|
||
|
|
// Memory management callback functions used by the FBX SDK
|
||
|
|
//-------------------------------------------------------------------------
|
||
|
|
void* MyMalloc(size_t pSize)
|
||
|
|
{
|
||
|
|
return FMemory::Malloc(pSize);
|
||
|
|
}
|
||
|
|
|
||
|
|
void* MyCalloc(size_t pCount, size_t pSize)
|
||
|
|
{
|
||
|
|
void* Alloc = FMemory::Malloc(pCount * pSize);
|
||
|
|
return FMemory::Memzero(Alloc, pCount * pSize);
|
||
|
|
}
|
||
|
|
|
||
|
|
void* MyRealloc(void* pData, size_t pSize)
|
||
|
|
{
|
||
|
|
return FMemory::Realloc(pData, pSize);
|
||
|
|
}
|
||
|
|
|
||
|
|
void MyFree(void* pData)
|
||
|
|
{
|
||
|
|
FMemory::Free(pData);
|
||
|
|
}
|
||
|
|
|
||
|
|
void LoadFBxLibraries()
|
||
|
|
{
|
||
|
|
// Specify global memory handler callbacks to be used by the FBX SDK
|
||
|
|
FbxSetMallocHandler(&MyMalloc);
|
||
|
|
FbxSetCallocHandler(&MyCalloc);
|
||
|
|
FbxSetReallocHandler(&MyRealloc);
|
||
|
|
FbxSetFreeHandler(&MyFree);
|
||
|
|
}
|
||
|
|
|
||
|
|
void UnloadFBxLibraries()
|
||
|
|
{
|
||
|
|
UnFbx::FFbxImporter::DeleteInstance();
|
||
|
|
UnFbx::FFbxExporter::DeleteInstance();
|
||
|
|
|
||
|
|
// Hack: After we have freed our fbx sdk instance we need to set back to the default fbx memory handlers.
|
||
|
|
// This is required because there are some allocations made in the FBX dllmain before it is possible to set up our custom allocators
|
||
|
|
// If this is not done, memory created by one allocator will be freed by another
|
||
|
|
FbxSetMallocHandler(FbxGetDefaultMallocHandler());
|
||
|
|
FbxSetCallocHandler(FbxGetDefaultCallocHandler());
|
||
|
|
FbxSetReallocHandler(FbxGetDefaultReallocHandler());
|
||
|
|
FbxSetFreeHandler(FbxGetDefaultFreeHandler());
|
||
|
|
}
|