From b782fd8431a75924fd365d0a83c13ecde9239525 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sun, 27 May 2018 14:15:29 +0200 Subject: [PATCH] Graphics/Model: add ModelLibrary, ModelManager, ModelSaver --- ChangeLog.md | 1 + include/Nazara/Graphics/Model.hpp | 12 ++++++++++++ src/Nazara/Graphics/Model.cpp | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index 7cd448e12..75e1a5ced 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -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) diff --git a/include/Nazara/Graphics/Model.hpp b/include/Nazara/Graphics/Model.hpp index dfdcc8ee2..072494edf 100644 --- a/include/Nazara/Graphics/Model.hpp +++ b/include/Nazara/Graphics/Model.hpp @@ -8,9 +8,11 @@ #define NAZARA_MODEL_HPP #include +#include #include #include #include +#include #include #include #include @@ -32,12 +34,18 @@ namespace Nz class Model; using ModelConstRef = ObjectRef; + using ModelLibrary = ObjectLibrary; using ModelLoader = ResourceLoader; + using ModelManager = ResourceManager; using ModelRef = ObjectRef; + using ModelSaver = ResourceSaver; 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; }; } diff --git a/src/Nazara/Graphics/Model.cpp b/src/Nazara/Graphics/Model.cpp index a01199d32..00c347b8a 100644 --- a/src/Nazara/Graphics/Model.cpp +++ b/src/Nazara/Graphics/Model.cpp @@ -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; }