// Copyright (C) 2014 Jérôme Leclercq // This file is part of the "Nazara Engine - Renderer module" // For conditions of distribution and use, see copyright notice in Config.hpp #pragma once #ifndef NAZARA_UBERSHADERLIBRARY_HPP #define NAZARA_UBERSHADERLIBRARY_HPP #include #include #include #include class NAZARA_API NzUberShaderLibrary { friend class NzRenderer; public: NzUberShaderLibrary() = delete; ~NzUberShaderLibrary() = delete; static NzUberShader* Get(const NzString& name); static bool Has(const NzString& name); static void Register(const NzString& name, NzUberShader* uberShader); static void Unregister(const NzString& name); private: static bool Initialize(); static void Uninitialize(); static std::unordered_map s_library; }; #endif // NAZARA_UBERSHADERLIBRARY_HPP