 |
Gorgon Game Engine
|
Go to the documentation of this file.
9 #include "../Graphics/Color.h"
17 unsigned int SetupUBO(
int size,
int binding_point);
18 void UpdateUBO(
unsigned int ubo,
int size,
void const *
const data);
25 Shader(
const std::string &
name) :
name(
name), program(0), vertexshader(0), geometryshader(0), fragmentshader(0) {}
44 std::string geometrysrc =
"", std::map<std::string, std::string> defines={});
47 std::map<std::string, std::string> defines) {
52 const std::string& geometryfile =
"", std::map<std::string, std::string> defines={});
55 std::map<std::string, std::string> defines) {
63 unsigned int vertexshader;
64 unsigned int geometryshader;
65 unsigned int fragmentshader;
void InitializeWithSource(std::string vertexsrc, std::string fragmentsrc, std::string geometrysrc="", std::map< std::string, std::string > defines={})
Definition: Shader.cpp:225
T_ Vector[3]
Definition: Point3D.h:71
PFNGLDELETESHADERPROC glDeleteShader
Definition: OpenGL.cpp:38
PFNGLBINDBUFFERPROC glBindBuffer
Definition: OpenGL.cpp:27
std::string name
Definition: Shader.h:59
void UpdateUniform(int name, float value)
Definition: Shader.cpp:120
void InitializeWithSource(std::string vertexsrc, std::string fragmentsrc, std::map< std::string, std::string > defines)
Definition: Shader.h:46
float Data[8]
Definition: Simple.h:72
PFNGLCREATEPROGRAMPROC glCreateProgram
Definition: OpenGL.cpp:33
void InitializeFromFiles(const std::string &vertexfile, const std::string &fragmentfile, std::map< std::string, std::string > defines)
Definition: Shader.h:54
Shader(const Shader &)=delete
PFNGLATTACHSHADERPROC glAttachShader
Definition: OpenGL.cpp:26
unsigned int SetupUBO(int size, int binding_point)
Definition: Shader.cpp:94
@ Resolution
Definition: Shader.h:14
PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding
Definition: OpenGL.cpp:59
PFNGLBUFFERSUBDATAPROC glBufferSubData
Definition: OpenGL.cpp:31
GLuint activeprogram
Definition: Shader.cpp:18
float Vector[4]
Representation of this class as a float vector.
Definition: Color.h:601
PFNGLDETACHSHADERPROC glDetachShader
Definition: OpenGL.cpp:39
Represents a four channel 32 bit float per channel color information.
Definition: Color.h:373
int LocateUniform(const std::string &name)
Definition: Shader.cpp:108
PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex
Definition: OpenGL.cpp:48
@ Specular
Definition: Shader.h:15
void UpdateUBO(unsigned int ubo, int size, void const *const data)
Definition: Shader.cpp:103
PFNGLUNIFORM1FPROC glUniform1f
Definition: OpenGL.cpp:54
PFNGLSHADERSOURCEPROC glShaderSource
Definition: OpenGL.cpp:53
PFNGLGENBUFFERSPROC glGenBuffers
Definition: OpenGL.cpp:41
Root namespace for Gorgon Game Engine.
Definition: Any.h:19
@ Diffuse
Definition: Shader.h:15
@ Depth
Definition: Shader.h:15
GLuint CreateShader(GLenum type, const std::string &code, const std::string &name)
Definition: Shader.cpp:22
PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog
Definition: OpenGL.cpp:44
PFNGLGETPROGRAMIVPROC glGetProgramiv
Definition: OpenGL.cpp:45
PFNGLCOMPILESHADERPROC glCompileShader
Definition: OpenGL.cpp:32
float Data[12]
Definition: Simple.h:31
Eases logging procedure by appending necessary information to the given data and streams to a standar...
Definition: Logging.h:19
int BindTexture(const std::string &name, int location)
Definition: Shader.cpp:113
Shader(const std::string &name)
Definition: Shader.h:25
void Use()
Definition: Shader.cpp:87
PFNGLUNIFORM1IPROC glUniform1i
Definition: OpenGL.cpp:55
PFNGLUNIFORM4FVPROC glUniform4fv
Definition: OpenGL.cpp:58
PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog
Definition: OpenGL.cpp:46
PFNGLLINKPROGRAMPROC glLinkProgram
Definition: OpenGL.cpp:50
PFNGLBINDBUFFERBASEPROC glBindBufferBase
Definition: OpenGL.cpp:28
Type
Definition: Shader.h:14
PFNGLUNIFORM2FVPROC glUniform2fv
Definition: OpenGL.cpp:56
PFNGLUSEPROGRAMPROC glUseProgram
Definition: OpenGL.cpp:66
@ AlphaMask
Definition: Shader.h:15
Shader & operator=(const Shader &)=delete
PFNGLBUFFERDATAPROC glBufferData
Definition: OpenGL.cpp:30
void BindUBO(const std::string &name, UBOBindingPoint::Type bindingPoint)
Definition: Shader.cpp:174
PFNGLCREATESHADERPROC glCreateShader
Definition: OpenGL.cpp:34
PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation
Definition: OpenGL.cpp:49
~Shader()
Definition: Shader.cpp:66
Type
Definition: Shader.h:15
PFNGLDELETEPROGRAMPROC glDeleteProgram
Definition: OpenGL.cpp:37
PFNGLUNIFORM3FVPROC glUniform3fv
Definition: OpenGL.cpp:57
Gorgon::Utils::Logger log
The logger that is used for GL operations. Default is unset and will not log anything....
Definition: Shader.cpp:19
PFNGLGETSHADERIVPROC glGetShaderiv
Definition: OpenGL.cpp:47
void InsertDefines(std::string &code, const std::string &shader_defines)
Definition: Shader.cpp:43
void InitializeFromFiles(const std::string &vertexfile, const std::string &fragmentfile, const std::string &geometryfile="", std::map< std::string, std::string > defines={})
Definition: Shader.cpp:184
@ Normal
Definition: Shader.h:15