asc-community / MxEngine

C++ open source 3D game engine
BSD 3-Clause "New" or "Revised" License
1.12k stars 59 forks source link

Call to 'Edit' is ambiguous in ComponentEditor.cpp #53

Closed Pikachuxxxx closed 1 year ago

Pikachuxxxx commented 3 years ago

When compiling the engine for the first time using Cmake on MacOS it cannot resolve the proper templated version of Edit.

/Users/phanisrikar/Desktop/MxEngine/src/Utilities/ImGui/Editors/ComponentEditor.cpp:320:16: error: call to 'Edit' is ambiguous
        return Edit(name, v.template get_value<T>(), meta);
               ^~~~
/Users/phanisrikar/Desktop/MxEngine/src/Utilities/ImGui/Editors/ComponentEditor.cpp:333:13: note: in instantiation of function template specialization 'MxEngine::GUI::EditGeneric<unsigned long>' requested here
            VISITOR_EDIT_ENTRY(size_t),
            ^
/Users/phanisrikar/Desktop/MxEngine/src/Utilities/ImGui/Editors/ComponentEditor.cpp:325:69: note: expanded from macro 'VISITOR_EDIT_ENTRY'
        #define VISITOR_EDIT_ENTRY(TYPE) { rttr::type::get<TYPE>(), EditGeneric<TYPE> }
                                                                    ^
/Users/phanisrikar/Desktop/MxEngine/src/Utilities/ImGui/Editors/ComponentEditor.cpp:127:19: note: candidate function
    rttr::variant Edit(const char* name, bool val, const ReflectionMeta& meta)
                  ^
/Users/phanisrikar/Desktop/MxEngine/src/Utilities/ImGui/Editors/ComponentEditor.cpp:140:19: note: candidate function
    rttr::variant Edit(const char* name, float val, const ReflectionMeta& meta)
                  ^
/Users/phanisrikar/Desktop/MxEngine/src/Utilities/ImGui/Editors/ComponentEditor.cpp:146:19: note: candidate function
    rttr::variant Edit(const char* name, int val, const ReflectionMeta& meta)
                  ^
/Users/phanisrikar/Desktop/MxEngine/src/Utilities/ImGui/Editors/ComponentEditor.cpp:152:19: note: candidate function
    rttr::variant Edit(const char* name, uint64_t val, const ReflectionMeta& meta)
                  ^
/Users/phanisrikar/Desktop/MxEngine/src/Utilities/ImGui/Editors/ComponentEditor.cpp:159:19: note: candidate function
    rttr::variant Edit(const char* name, uint32_t val, const ReflectionMeta& meta)

Still need to test on Windows, but with this error it is not possible to build the engine for MacOS

MomoDeve commented 3 years ago

Hi, The engine uses opengl 4.5, which is not supported on macOS. As a result, macOS build may fail. I can fix this bug, but it would be still impossible to launch the engine on macOS

guileen commented 2 years ago

Hi, The engine uses opengl 4.5, which is not supported on macOS. As a result, macOS build may fail. I can fix this bug, but it would be still impossible to launch the engine on macOS

This project looks amazing, I am trying to run the samples, but it can not run on macOS. Please please make it works on mac. A lot of developers using mac, It will benifit more people. Thanks a lot.

MomoDeve commented 2 years ago

MacOS will probably be supported when I move the engine to Vulkan API. It may take quite a lot of time as now I am mostly focused on my main work

MomoDeve commented 1 year ago

add 'unsigned long' overload for GUI Editor - https://github.com/asc-community/MxEngine/commit/46da9f3c7437264910f849a04204d72c059912cc. Original issue with ambiguity should be fixed. Still have no plans to add Apple support