globjects  2.0.0.630135941c42
Strict OpenGL objects wrapper.
Loading...
Searching...
No Matches
ProgramBinary.h
Go to the documentation of this file.
1
2#pragma once
3
4
5#include <vector>
6#include <set>
7
8#include <glbinding/gl/types.h>
9
10#include <globjects/globjects_api.h>
11
13
14
15namespace globjects
16{
17
18
19class Program;
20
21
28class GLOBJECTS_API ProgramBinary : public Instantiator<ProgramBinary>
29{
30public:
31 ProgramBinary(gl::GLenum binaryFormat, const std::vector<unsigned char> & data);
32 virtual ~ProgramBinary();
33
34 gl::GLenum format() const;
35 const void * data() const;
36 gl::GLsizei length() const;
37
38 void changed() const;
39
40 void registerListener(Program * listener);
41 void deregisterListener(Program * listener);
42
43protected:
44 std::set<Program *> m_programListeners;
45 gl::GLenum m_binaryFormat;
46 std::vector<unsigned char> m_binaryData;
47};
48
49
50} // namespace globjects
CRTP for creating objects similar to std::make_unique.
Definition Instantiator.h:22
The ProgramBinary class is used for directly setting binary sources for a Program.
Definition ProgramBinary.h:29
gl::GLenum m_binaryFormat
Definition ProgramBinary.h:45
const void * data() const
void registerListener(Program *listener)
std::set< Program * > m_programListeners
Definition ProgramBinary.h:44
void deregisterListener(Program *listener)
std::vector< unsigned char > m_binaryData
Definition ProgramBinary.h:46
gl::GLsizei length() const
gl::GLenum format() const
ProgramBinary(gl::GLenum binaryFormat, const std::vector< unsigned char > &data)
Wraps an OpenGL program.
Definition Program.h:82
Contains all the classes that wrap OpenGL functionality.