SGCT master (487fac4)
Simple Graphics Cluster Toolkit
Loading...
Searching...
No Matches
shadermanager.h
Go to the documentation of this file.
1/*****************************************************************************************
2 * SGCT *
3 * Simple Graphics Cluster Toolkit *
4 * *
5 * Copyright (c) 2012-2026 *
6 * For conditions of distribution and use, see copyright notice in LICENSE.md *
7 ****************************************************************************************/
8
9#ifndef __SGCT__SHADERMANAGER__H__
10#define __SGCT__SHADERMANAGER__H__
11
12#include <sgct/sgctexports.h>
13
14#include <sgct/shaderprogram.h>
15#include <string>
16#include <string_view>
17#include <vector>
18
19namespace sgct {
20
24class SGCT_EXPORT ShaderManager {
25public:
27 static void destroy();
28
29 ShaderManager(const ShaderManager&) = delete;
33
38
39
52 void addShaderProgram(std::string name, std::string_view vertexSrc,
53 std::string_view fragmentSrc);
54
62 bool removeShaderProgram(std::string_view name);
63
69 bool shaderProgramExists(std::string_view name) const;
70
79 const ShaderProgram& shaderProgram(std::string_view name) const;
80
81private:
82 ShaderManager() = default;
83 static ShaderManager* _instance;
85 std::vector<ShaderProgram> _shaderPrograms;
86};
87
88} // namespace sgct
89
90#endif // __SGCT__SHADERMANAGER__H__
static ShaderManager & instance()
ShaderManager & operator=(const ShaderManager &)=delete
bool shaderProgramExists(std::string_view name) const
Check if a shader program exists in the manager.
static void destroy()
~ShaderManager()
Destructor deallocates and deletes all shaders.
ShaderManager & operator=(ShaderManager &&)=delete
ShaderManager(const ShaderManager &)=delete
ShaderManager(ShaderManager &&)=delete
bool removeShaderProgram(std::string_view name)
Removes a shader program from the manager.
void addShaderProgram(std::string name, std::string_view vertexSrc, std::string_view fragmentSrc)
Adds shader programs to the manager.
const ShaderProgram & shaderProgram(std::string_view name) const
Get the specified shader program from the shader manager.
Class for handling compiling, linking and using shader programs.
Definition shaderprogram.h:24
Definition actions.h:16