diff --git a/openVulkanoCpp/Base/Event.hpp b/openVulkanoCpp/Base/Event.hpp index 6fb12ba..071f5ee 100644 --- a/openVulkanoCpp/Base/Event.hpp +++ b/openVulkanoCpp/Base/Event.hpp @@ -6,6 +6,7 @@ #pragma once +#include "Base/UUID.hpp" #include #include #include @@ -29,7 +30,7 @@ namespace OpenVulkano public: // Keep this in sync with all implementations! synctag: NamedEventProcessor_Parameters_SYNC_TAG - typedef std::variant Parameters; + typedef std::variant Parameters; static bool HasProcessor() { return !processors.empty(); } diff --git a/openVulkanoCpp/Host/iOS/NamedEventProcessor.mm b/openVulkanoCpp/Host/iOS/NamedEventProcessor.mm index e4d3fa3..1b12f3a 100644 --- a/openVulkanoCpp/Host/iOS/NamedEventProcessor.mm +++ b/openVulkanoCpp/Host/iOS/NamedEventProcessor.mm @@ -25,7 +25,8 @@ namespace OpenVulkano { std::type_index(typeid(bool)), @encode(BOOL) }, { std::type_index(typeid(int)), @encode(int) }, { std::type_index(typeid(float)), @encode(float) }, - { std::type_index(typeid(double)), @encode(double) } + { std::type_index(typeid(double)), @encode(double) }, + { std::type_index(typeid(UUID)), @encode(NSUUID*) } }; // Keep this in sync with INamedEventProcessor! synctag: NamedEventProcessor_Parameters_SYNC_TAG @@ -36,6 +37,7 @@ namespace OpenVulkano int integer; float fp32; double fp64; + NSUUID* uuid; }; std::string BuildTypeName(const std::vector& parameters) @@ -65,6 +67,14 @@ namespace OpenVulkano value.string = [NSString stringWithUTF8String:parameter.c_str()]; return value; } + + ParameterValue CreateValue(const UUID& parameter) + { + ParameterValue value; + auto uuidData = parameter.binary(); + value.uuid = [[NSUUID alloc] initWithUUIDBytes:uuidData.data()]; + return value; + } std::string SelectorType(Method m) {