Graphics/Model: add ModelLibrary, ModelManager, ModelSaver

This commit is contained in:
Lynix 2018-05-27 14:15:29 +02:00
parent 3e82413604
commit b782fd8431
3 changed files with 17 additions and 0 deletions

View File

@ -103,6 +103,7 @@ Nazara Engine:
- Added operator&/|/^ taking an enumeration value and a Flags object using the same enumeration type. - Added operator&/|/^ taking an enumeration value and a Flags object using the same enumeration type.
- Added LuaState::CallWithHandler methods, allowing to setup a error handler function - Added LuaState::CallWithHandler methods, allowing to setup a error handler function
- Added LuaState::Traceback method - Added LuaState::Traceback method
- Added ModelLibrary, ModelManager and ModelSaver
Nazara Development Kit: Nazara Development Kit:
- Added ImageWidget (#139) - Added ImageWidget (#139)

View File

@ -8,9 +8,11 @@
#define NAZARA_MODEL_HPP #define NAZARA_MODEL_HPP
#include <Nazara/Prerequisites.hpp> #include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/ObjectLibrary.hpp>
#include <Nazara/Core/Resource.hpp> #include <Nazara/Core/Resource.hpp>
#include <Nazara/Core/ResourceLoader.hpp> #include <Nazara/Core/ResourceLoader.hpp>
#include <Nazara/Core/ResourceParameters.hpp> #include <Nazara/Core/ResourceParameters.hpp>
#include <Nazara/Core/ResourceSaver.hpp>
#include <Nazara/Math/Rect.hpp> #include <Nazara/Math/Rect.hpp>
#include <Nazara/Graphics/InstancedRenderable.hpp> #include <Nazara/Graphics/InstancedRenderable.hpp>
#include <Nazara/Graphics/Material.hpp> #include <Nazara/Graphics/Material.hpp>
@ -32,12 +34,18 @@ namespace Nz
class Model; class Model;
using ModelConstRef = ObjectRef<const Model>; using ModelConstRef = ObjectRef<const Model>;
using ModelLibrary = ObjectLibrary<Model>;
using ModelLoader = ResourceLoader<Model, ModelParameters>; using ModelLoader = ResourceLoader<Model, ModelParameters>;
using ModelManager = ResourceManager<Model, ModelParameters>;
using ModelRef = ObjectRef<Model>; using ModelRef = ObjectRef<Model>;
using ModelSaver = ResourceSaver<Model, ModelParameters>;
class NAZARA_GRAPHICS_API Model : public InstancedRenderable, public Resource class NAZARA_GRAPHICS_API Model : public InstancedRenderable, public Resource
{ {
friend ModelLibrary;
friend ModelLoader; friend ModelLoader;
friend ModelManager;
friend ModelSaver;
public: public:
inline Model(); inline Model();
@ -77,7 +85,11 @@ namespace Nz
NazaraSlot(Mesh, OnMeshInvalidateAABB, m_meshAABBInvalidationSlot); NazaraSlot(Mesh, OnMeshInvalidateAABB, m_meshAABBInvalidationSlot);
static ModelLibrary::LibraryMap s_library;
static ModelLoader::LoaderList s_loaders; static ModelLoader::LoaderList s_loaders;
static ModelManager::ManagerMap s_managerMap;
static ModelManager::ManagerParams s_managerParameters;
static ModelSaver::SaverList s_savers;
}; };
} }

View File

@ -277,5 +277,9 @@ namespace Nz
m_boundingVolume.MakeNull(); m_boundingVolume.MakeNull();
} }
ModelLibrary::LibraryMap Model::s_library;
ModelLoader::LoaderList Model::s_loaders; ModelLoader::LoaderList Model::s_loaders;
ModelManager::ManagerMap Model::s_managerMap;
ModelManager::ManagerParams Model::s_managerParameters;
ModelSaver::SaverList Model::s_savers;
} }