#ifndef XNA_DX_INIT_HPP #define XNA_DX_INIT_HPP #include "headers.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 = snew(); return reinterpret_pointer_cast(obj); }); } }; } #endif