SGCT
master (487fac4)
Simple Graphics Cluster Toolkit
Toggle main menu visibility
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
19
namespace
sgct
{
20
24
class
SGCT_EXPORT
ShaderManager
{
25
public
:
26
static
ShaderManager
&
instance
();
27
static
void
destroy
();
28
29
ShaderManager
(
const
ShaderManager
&) =
delete
;
30
ShaderManager
(
ShaderManager
&&) =
delete
;
31
ShaderManager
&
operator=
(
const
ShaderManager
&) =
delete
;
32
ShaderManager
&
operator=
(
ShaderManager
&&) =
delete
;
33
37
~ShaderManager
();
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
81
private
:
82
ShaderManager
() =
default
;
83
static
ShaderManager
* _instance;
85
std::vector<ShaderProgram> _shaderPrograms;
86
};
87
88
}
// namespace sgct
89
90
#endif
// __SGCT__SHADERMANAGER__H__
sgct::ShaderManager::instance
static ShaderManager & instance()
sgct::ShaderManager::operator=
ShaderManager & operator=(const ShaderManager &)=delete
sgct::ShaderManager::shaderProgramExists
bool shaderProgramExists(std::string_view name) const
Check if a shader program exists in the manager.
sgct::ShaderManager::destroy
static void destroy()
sgct::ShaderManager::~ShaderManager
~ShaderManager()
Destructor deallocates and deletes all shaders.
sgct::ShaderManager::operator=
ShaderManager & operator=(ShaderManager &&)=delete
sgct::ShaderManager::ShaderManager
ShaderManager(const ShaderManager &)=delete
sgct::ShaderManager::ShaderManager
ShaderManager(ShaderManager &&)=delete
sgct::ShaderManager::removeShaderProgram
bool removeShaderProgram(std::string_view name)
Removes a shader program from the manager.
sgct::ShaderManager::addShaderProgram
void addShaderProgram(std::string name, std::string_view vertexSrc, std::string_view fragmentSrc)
Adds shader programs to the manager.
sgct::ShaderManager::shaderProgram
const ShaderProgram & shaderProgram(std::string_view name) const
Get the specified shader program from the shader manager.
sgct::ShaderProgram
Class for handling compiling, linking and using shader programs.
Definition
shaderprogram.h:24
sgct
Definition
actions.h:16
shaderprogram.h
sgct
shadermanager.h
Generated by
1.18.0