Hello,
I am writing you because of this change in the ue5-main branch for UE 5.6:
https://github.com/EpicGames/UnrealEngine/commit/bc38a4972aba9211732cb2c48b6e5cb9c0254d89
This moved the LooseParametersUniformBuffer member from FLocalVertexFactory to the subclass FGPUSkinPassthroughVertexFactory.
Our code (= Havok Cloth integration) relies on this. It dynamically changes vertex positions and normals at runtime for the cloth simulation. Now, the issue is that we have our custom vertex factory that inherits from FLocalVertexFactory.
That worked fine so far. But with the change above, we cannot access LooseParametersUniformBuffer anymore.
The new class FGPUSkinPassthroughVertexFactory unfortunately isn’t exported (using e.g., ENGINE_API) at all. And most of the members and functions are private.
We have tried these two approaches:
1. Add our own LooseParametersUniformBuffer member of type FGPUSkinPassThroughFactoryLooseParameters to our custom vertex factory. However, that does not work, because FGPUSkinPassThroughFactoryLooseParameters is not exported. It will end up with linker errors when you try to call something like:
LooseParametersUniformBuffer = TUniformBufferRef<FGPUSkinPassThroughFactoryLooseParameters>::CreateUniformBufferImmediate(LooseParameters, UniformBuffer_MultiFrame);
It seems like this function implicitly calls GetStructMetadata() - and that is not exported.
2. Our other approach was to inherit our custom vertex factory from FGPUSkinPassthroughVertexFactory. However, most functions are private for FGPUSkinPassthroughVertexFactory. And even InitRHI() or the constructor cannot be called, because they are private or are also not exported (thus leading to linker errors).
Could you please give hints how a custom factory should look like after this change? How to make use of the LooseParametersUniformBuffer member?
Note: Our plugin must be compatible with stock UE - because of that we cannot make any modifications to the UE source code.
Thanks a lot,
Pascal