globjects  2.0.0.630135941c42
Strict OpenGL objects wrapper.
Loading...
Searching...
No Matches
TransformFeedback.h
Go to the documentation of this file.
1
2#pragma once
3
4
5#include <vector>
6#include <array>
7
8#include <glbinding/gl/types.h>
9
10#include <globjects/globjects_api.h>
11#include <globjects/Object.h>
13
14
15namespace globjects
16{
17
18
19class Program;
20
21
61class GLOBJECTS_API TransformFeedback : public Object, public Instantiator<TransformFeedback>
62{
63public:
65
67
68 void bind() const;
69 static void unbind();
70
71 void begin(gl::GLenum primitiveMode);
72 void pause();
73 void resume();
74 void end();
75
76 void draw(gl::GLenum primitiveMode) const;
77
78 void setVaryings(const Program * program, gl::GLsizei count, const char ** varyingNames, gl::GLenum bufferMode);
79
80 void setVaryings(const Program * program, const std::vector<std::string> & varyingNames, gl::GLenum bufferMode);
81
82 template <std::size_t Count>
83 void setVaryings(const Program * program, const std::array<std::string, Count> & varyingNames, gl::GLenum bufferMode);
84
85 static bool isTransformFeedback(gl::GLuint id);
86
87 virtual gl::GLenum objectType() const override;
88
89
90protected:
91 void bind(gl::GLenum target) const;
92 static void unbind(gl::GLenum target);
93};
94
95
96} // namespace globjects
97
98
99#include <globjects/TransformFeedback.inl>
CRTP for creating objects similar to std::make_unique.
Definition Instantiator.h:22
Superclass of all wrapped OpenGL objects.
Definition Object.h:28
Wraps an OpenGL program.
Definition Program.h:82
Interface to use transform feedback.
Definition TransformFeedback.h:62
static void unbind(gl::GLenum target)
static bool isTransformFeedback(gl::GLuint id)
void setVaryings(const Program *program, const std::array< std::string, Count > &varyingNames, gl::GLenum bufferMode)
virtual gl::GLenum objectType() const override
void setVaryings(const Program *program, gl::GLsizei count, const char **varyingNames, gl::GLenum bufferMode)
void draw(gl::GLenum primitiveMode) const
void begin(gl::GLenum primitiveMode)
void bind(gl::GLenum target) const
void setVaryings(const Program *program, const std::vector< std::string > &varyingNames, gl::GLenum bufferMode)
Contains all the classes that wrap OpenGL functionality.