globjects  2.0.0.4363356ae2ef
Strict OpenGL objects wrapper.
Loading...
Searching...
No Matches
UniformBlock.h
Go to the documentation of this file.
1
2#pragma once
3
4
5#include <vector>
6
7#include <globjects/globjects_api.h>
10
11
12namespace globjects
13{
14
15
16class Program;
17
18
19class GLOBJECTS_API UniformBlock : public Instantiator<UniformBlock>
20{
21 friend class Program;
22public:
24 UniformBlock(const Program * program, const LocationIdentity & m_identity);
25
26 const LocationIdentity & identity() const;
27
28 void setBinding(gl::GLuint bindingIndex);
29
30 void getActive(gl::GLenum pname, gl::GLint * params) const;
31 gl::GLint getActive(gl::GLenum pname) const;
32 std::vector<gl::GLint> getActive(gl::GLenum pname, gl::GLint paramCount) const;
33
34 std::vector<gl::GLint> getActiveUniformIndices() const;
35
36 std::string getName() const;
37
38
39protected:
42 gl::GLuint m_bindingIndex;
43
44 gl::GLuint blockIndex() const;
45 void updateBinding() const;
46};
47
48
49} // namespace globjects
CRTP for creating objects similar to std::make_unique.
Definition: Instantiator.h:22
Definition: LocationIdentity.h:18
Wraps an OpenGL program.
Definition: Program.h:82
Definition: UniformBlock.h:20
const Program * m_program
Definition: UniformBlock.h:40
LocationIdentity m_identity
Definition: UniformBlock.h:41
std::vector< gl::GLint > getActive(gl::GLenum pname, gl::GLint paramCount) const
void updateBinding() const
void getActive(gl::GLenum pname, gl::GLint *params) const
std::string getName() const
gl::GLuint m_bindingIndex
Definition: UniformBlock.h:42
const LocationIdentity & identity() const
gl::GLuint blockIndex() const
std::vector< gl::GLint > getActiveUniformIndices() const
gl::GLint getActive(gl::GLenum pname) const
void setBinding(gl::GLuint bindingIndex)
UniformBlock(const Program *program, const LocationIdentity &m_identity)
Contains all the classes that wrap OpenGL functionality.