Replaced (Uber)ShaderLibrary by template class ObjectLibrary

Former-commit-id: d488cfd4e5e3ff31112fffebce2b7cdb86cc2e55
This commit is contained in:
Lynix
2015-01-28 15:49:04 +01:00
parent c2d1773b41
commit e18e490c59
23 changed files with 152 additions and 195 deletions

View File

@@ -9,6 +9,7 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/ParameterList.hpp>
#include <Nazara/Core/ObjectLibrary.hpp>
#include <Nazara/Core/ObjectListenerWrapper.hpp>
#include <Nazara/Core/ObjectRef.hpp>
#include <Nazara/Core/RefCounted.hpp>
@@ -19,16 +20,26 @@ class NzUberShader;
using NzUberShaderConstListener = NzObjectListenerWrapper<const NzUberShader>;
using NzUberShaderConstRef = NzObjectRef<const NzUberShader>;
using NzUberShaderLibrary = NzObjectLibrary<NzUberShader>;
using NzUberShaderListener = NzObjectListenerWrapper<NzUberShader>;
using NzUberShaderRef = NzObjectRef<NzUberShader>;
class NAZARA_API NzUberShader : public NzRefCounted
{
friend NzUberShaderLibrary;
friend class NzRenderer;
public:
NzUberShader() = default;
virtual ~NzUberShader();
virtual NzUberShaderInstance* Get(const NzParameterList& parameters) const = 0;
private:
static bool Initialize();
static void Uninitialize();
static NzUberShaderLibrary::LibraryMap s_library;
};
#endif // NAZARA_UBERSHADER_HPP