I'm trying to make native calls on Linux 64bit work, as I thought they were implemented but maybe it's somewhat limited or there's something I missed because I get the following error:
Info : Mask Chunk::neighborMask()
Error : Don't support returning type ‘Mask’ by value from application in native calling convention on this platform
Error: Invalid configurartion. Verify the register application interface.
This works fine on Windows 64bit, Mask is registered as
registerType("Mask", sizeof(DirectionMask), asOBJ_VALUE | asOBJ_POD | asGetTypeTraits<DirectionMask>(), "Represents a directional mask, used for neighbors conditions calculator.");
registerMethod("Mask", "bool any()", CALL_METHOD(DirectionMask, any), "Returns true if any of the directions are set for the mask.");
and it's basically a wrapped 32 bit integer:
class DirectionMask {
{
private:
uint_fast32_t mask;
public:
// a lot of constexpr constructors
};