1
0
mirror of https://github.com/borgesdan/xn65 synced 2024-12-29 21:54:47 +01:00
xn65/inc/platform-dx/init.hpp
2024-05-30 17:37:40 -03:00

46 lines
1.4 KiB
C++

#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 <typename T>
static void insertRegisteredReader(String const& readerName) {
const auto reader = typeof<T>();
//Type::NameOfRegisteredTypes.insert({ "xna::" + readerName, reader });
Type::NameOfRegisteredTypes.insert({ reader->FullName(), reader });
Type::NameOfRegisteredTypes.insert({ "Microsoft.Xna.Framework.Content." + readerName, reader });
}
template <typename T>
static void insertRegisteredReader(String const& readerName, String const& microsoftNameFullName) {
const auto reader = typeof<T>();
//Type::NameOfRegisteredTypes.insert({ "xna::" + readerName, reader });
Type::NameOfRegisteredTypes.insert({ reader->FullName(), reader });
Type::NameOfRegisteredTypes.insert({ microsoftNameFullName, reader });
}
template <typename T>
static void insertActivadorReader() {
ContentTypeReaderActivador::SetActivador(typeof<T>(), []() -> sptr<ContentTypeReader> {
auto obj = New <T>();
return reinterpret_pointer_cast<ContentTypeReader>(obj);
});
}
};
}
#endif