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 LuaState::CallWithHandler methods, allowing to setup a error handler function
- Added LuaState::Traceback method
- Added ModelLibrary, ModelManager and ModelSaver
Nazara Development Kit:
- Added ImageWidget (#139)

View File

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