Added a Library to most reference-counted classes
Former-commit-id: 3ed409a71dcd5ce4eec7672ac26f8fff00e3b136
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/Color.hpp>
|
||||
#include <Nazara/Core/ObjectLibrary.hpp>
|
||||
#include <Nazara/Core/ObjectListenerWrapper.hpp>
|
||||
#include <Nazara/Core/ObjectRef.hpp>
|
||||
#include <Nazara/Core/RefCounted.hpp>
|
||||
@@ -38,12 +39,14 @@ class NzMaterial;
|
||||
|
||||
using NzMaterialConstListener = NzObjectListenerWrapper<const NzMaterial>;
|
||||
using NzMaterialConstRef = NzObjectRef<const NzMaterial>;
|
||||
using NzMaterialLibrary = NzObjectLibrary<NzMaterial>;
|
||||
using NzMaterialListener = NzObjectListenerWrapper<NzMaterial>;
|
||||
using NzMaterialLoader = NzResourceLoader<NzMaterial, NzMaterialParams>;
|
||||
using NzMaterialRef = NzObjectRef<NzMaterial>;
|
||||
|
||||
class NAZARA_API NzMaterial : public NzRefCounted, public NzResource
|
||||
{
|
||||
friend NzMaterialLibrary;
|
||||
friend NzMaterialLoader;
|
||||
friend class NzGraphics;
|
||||
|
||||
@@ -172,8 +175,9 @@ class NAZARA_API NzMaterial : public NzRefCounted, public NzResource
|
||||
float m_alphaThreshold;
|
||||
float m_shininess;
|
||||
|
||||
static NzMaterialRef s_defaultMaterial;
|
||||
static NzMaterialLibrary::LibraryMap s_library;
|
||||
static NzMaterialLoader::LoaderList s_loaders;
|
||||
static NzMaterialRef s_defaultMaterial;
|
||||
};
|
||||
|
||||
#include <Nazara/Graphics/Material.inl>
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#define NAZARA_PARTICLECONTROLLER_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/ObjectLibrary.hpp>
|
||||
#include <Nazara/Core/ObjectListenerWrapper.hpp>
|
||||
#include <Nazara/Core/ObjectRef.hpp>
|
||||
#include <Nazara/Core/RefCounted.hpp>
|
||||
@@ -18,17 +19,27 @@ class NzParticleSystem;
|
||||
|
||||
using NzParticleControllerConstListener = NzObjectListenerWrapper<const NzParticleController>;
|
||||
using NzParticleControllerConstRef = NzObjectRef<const NzParticleController>;
|
||||
using NzParticleControllerLibrary = NzObjectLibrary<NzParticleController>;
|
||||
using NzParticleControllerListener = NzObjectListenerWrapper<NzParticleController>;
|
||||
using NzParticleControllerRef = NzObjectRef<NzParticleController>;
|
||||
|
||||
class NAZARA_API NzParticleController : public NzRefCounted
|
||||
{
|
||||
friend NzParticleControllerLibrary;
|
||||
friend class NzGraphics;
|
||||
|
||||
public:
|
||||
NzParticleController() = default;
|
||||
NzParticleController(const NzParticleController& controller);
|
||||
virtual ~NzParticleController();
|
||||
|
||||
virtual void Apply(NzParticleSystem& system, NzParticleMapper& mapper, unsigned int startId, unsigned int endId, float elapsedTime) = 0;
|
||||
|
||||
private:
|
||||
static bool Initialize();
|
||||
static void Uninitialize();
|
||||
|
||||
static NzParticleControllerLibrary::LibraryMap s_library;
|
||||
};
|
||||
|
||||
#endif // NAZARA_PARTICLECONTROLLER_HPP
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#define NAZARA_PARTICLEDECLARATION_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/ObjectLibrary.hpp>
|
||||
#include <Nazara/Core/ObjectListenerWrapper.hpp>
|
||||
#include <Nazara/Core/ObjectRef.hpp>
|
||||
#include <Nazara/Core/RefCounted.hpp>
|
||||
@@ -18,11 +19,13 @@ class NzParticleDeclaration;
|
||||
|
||||
using NzParticleDeclarationConstListener = NzObjectListenerWrapper<const NzParticleDeclaration>;
|
||||
using NzParticleDeclarationConstRef = NzObjectRef<const NzParticleDeclaration>;
|
||||
using NzParticleDeclarationLibrary = NzObjectLibrary<NzParticleDeclaration>;
|
||||
using NzParticleDeclarationListener = NzObjectListenerWrapper<NzParticleDeclaration>;
|
||||
using NzParticleDeclarationRef = NzObjectRef<NzParticleDeclaration>;
|
||||
|
||||
class NAZARA_API NzParticleDeclaration : public NzRefCounted
|
||||
{
|
||||
friend NzParticleDeclarationLibrary;
|
||||
friend class NzGraphics;
|
||||
|
||||
public:
|
||||
@@ -65,6 +68,7 @@ class NAZARA_API NzParticleDeclaration : public NzRefCounted
|
||||
unsigned int m_stride;
|
||||
|
||||
static NzParticleDeclaration s_declarations[nzParticleLayout_Max+1];
|
||||
static NzParticleDeclarationLibrary::LibraryMap s_library;
|
||||
};
|
||||
|
||||
#endif // NAZARA_PARTICLEDECLARATION_HPP
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#define NAZARA_PARTICLEGENERATOR_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/ObjectLibrary.hpp>
|
||||
#include <Nazara/Core/ObjectListenerWrapper.hpp>
|
||||
#include <Nazara/Core/ObjectRef.hpp>
|
||||
#include <Nazara/Core/RefCounted.hpp>
|
||||
@@ -18,17 +19,27 @@ class NzParticleSystem;
|
||||
|
||||
using NzParticleGeneratorConstListener = NzObjectListenerWrapper<const NzParticleGenerator>;
|
||||
using NzParticleGeneratorConstRef = NzObjectRef<const NzParticleGenerator>;
|
||||
using NzParticleGeneratorLibrary = NzObjectLibrary<NzParticleGenerator>;
|
||||
using NzParticleGeneratorListener = NzObjectListenerWrapper<NzParticleGenerator>;
|
||||
using NzParticleGeneratorRef = NzObjectRef<NzParticleGenerator>;
|
||||
|
||||
class NAZARA_API NzParticleGenerator : public NzRefCounted
|
||||
{
|
||||
friend NzParticleGeneratorLibrary;
|
||||
friend class NzGraphics;
|
||||
|
||||
public:
|
||||
NzParticleGenerator() = default;
|
||||
NzParticleGenerator(const NzParticleGenerator& generator);
|
||||
virtual ~NzParticleGenerator();
|
||||
|
||||
virtual void Generate(NzParticleSystem& system, NzParticleMapper& mapper, unsigned int startId, unsigned int endId) = 0;
|
||||
|
||||
private:
|
||||
static bool Initialize();
|
||||
static void Uninitialize();
|
||||
|
||||
static NzParticleGeneratorLibrary::LibraryMap s_library;
|
||||
};
|
||||
|
||||
#endif // NAZARA_PARTICLEGENERATOR_HPP
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#define NAZARA_PARTICLERENDERER_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/ObjectLibrary.hpp>
|
||||
#include <Nazara/Core/ObjectListenerWrapper.hpp>
|
||||
#include <Nazara/Core/ObjectRef.hpp>
|
||||
#include <Nazara/Core/RefCounted.hpp>
|
||||
@@ -19,17 +20,27 @@ class NzParticleSystem;
|
||||
|
||||
using NzParticleRendererConstListener = NzObjectListenerWrapper<const NzParticleRenderer>;
|
||||
using NzParticleRendererConstRef = NzObjectRef<const NzParticleRenderer>;
|
||||
using NzParticleRendererLibrary = NzObjectLibrary<NzParticleRenderer>;
|
||||
using NzParticleRendererListener = NzObjectListenerWrapper<NzParticleRenderer>;
|
||||
using NzParticleRendererRef = NzObjectRef<NzParticleRenderer>;
|
||||
|
||||
class NAZARA_API NzParticleRenderer : public NzRefCounted
|
||||
{
|
||||
friend NzParticleRendererLibrary;
|
||||
friend class NzGraphics;
|
||||
|
||||
public:
|
||||
NzParticleRenderer() = default;
|
||||
NzParticleRenderer(const NzParticleRenderer& renderer);
|
||||
virtual ~NzParticleRenderer();
|
||||
|
||||
virtual void Render(const NzParticleSystem& system, const NzParticleMapper& mapper, unsigned int startId, unsigned int endId, NzAbstractRenderQueue* renderQueue) = 0;
|
||||
|
||||
private:
|
||||
static bool Initialize();
|
||||
static void Uninitialize();
|
||||
|
||||
static NzParticleRendererLibrary::LibraryMap s_library;
|
||||
};
|
||||
|
||||
#endif // NAZARA_PARTICLERENDERER_HPP
|
||||
|
||||
Reference in New Issue
Block a user