#ifndef XNA_PLATFORM_INIT_HPP #define XNA_PLATFORM_INIT_HPP #include "../default.hpp" #include "../csharp/type.hpp" #include "../content/typereadermanager.hpp" #include "../platforminit.hpp" namespace xna { struct PlatformInit { static void Init() { InitRegisteredTypes(); InitActivadors(); } static void InitRegisteredTypes(); static void InitActivadors(); private: template static void insertRegisteredReader(String const& readerName) { const auto reader = typeof(); //Type::NameOfRegisteredTypes.insert({ "xna::" + readerName, reader }); Type::NameOfRegisteredTypes.insert({ reader->FullName(), reader }); Type::NameOfRegisteredTypes.insert({ "Microsoft.Xna.Framework.Content." + readerName, reader }); } template static void insertRegisteredReader(String const& readerName, String const& microsoftNameFullName) { const auto reader = typeof(); //Type::NameOfRegisteredTypes.insert({ "xna::" + readerName, reader }); Type::NameOfRegisteredTypes.insert({ reader->FullName(), reader }); Type::NameOfRegisteredTypes.insert({ microsoftNameFullName, reader }); } template static void insertActivadorReader() { ContentTypeReaderActivador::SetActivador(typeof(), []() -> sptr { auto obj = New (); return reinterpret_pointer_cast(obj); }); } }; } #endif