13 #ifndef OGLPLUS_TRANSFORM_FEEDBACK_1107121519_HPP
14 #define OGLPLUS_TRANSFORM_FEEDBACK_1107121519_HPP
16 #include <oglplus/config/compiler.hpp>
27 #if OGLPLUS_DOCUMENTATION_ONLY || GL_VERSION_4_0 || GL_ARB_transform_feedback2
41 static void Gen(tag::Generate, GLsizei count, GLuint* names)
43 assert(names !=
nullptr);
44 OGLPLUS_GLFUNC(GenTransformFeedbacks)(count, names);
45 OGLPLUS_CHECK_SIMPLE(GenTransformFeedbacks);
47 #if GL_VERSION_4_5 || GL_ARB_direct_state_access
48 static void Gen(tag::Create, GLsizei count, GLuint* names)
50 assert(names !=
nullptr);
51 OGLPLUS_GLFUNC(CreateTransformFeedbacks)(count, names);
52 OGLPLUS_CHECK_SIMPLE(CreateTransformFeedbacks);
56 static void Delete(GLsizei count, GLuint* names)
58 assert(names !=
nullptr);
59 OGLPLUS_GLFUNC(DeleteTransformFeedbacks)(count, names);
60 OGLPLUS_VERIFY_SIMPLE(DeleteTransformFeedbacks);
63 static GLboolean IsA(GLuint name)
66 GLboolean result = OGLPLUS_GLFUNC(IsTransformFeedback)(name);
67 OGLPLUS_VERIFY_SIMPLE(IsTransformFeedback);
104 OGLPLUS_GLFUNC(BindTransformFeedback)(
109 BindTransformFeedback,
117 #endif // GL_VERSION_4_0
119 #if OGLPLUS_DOCUMENTATION_ONLY || GL_VERSION_3_0
128 #if OGLPLUS_DOCUMENTATION_ONLY || GL_VERSION_4_0 || GL_ARB_transform_feedback2
129 ,
public ObjBindingOps<tag::TransformFeedback>
135 #if OGLPLUS_DOCUMENTATION_ONLY || GL_VERSION_4_0 || GL_ARB_transform_feedback2
161 OGLPLUS_GLFUNC(BeginTransformFeedback)(GLenum(mode));
163 BeginTransformFeedback,
199 OGLPLUS_GLFUNC(EndTransformFeedback)();
200 OGLPLUS_VERIFY_SIMPLE(EndTransformFeedback);
215 OGLPLUS_GLFUNC(PauseTransformFeedback)();
216 OGLPLUS_VERIFY_SIMPLE(PauseTransformFeedback);
231 OGLPLUS_GLFUNC(ResumeTransformFeedback)();
232 OGLPLUS_VERIFY_SIMPLE(ResumeTransformFeedback);
260 OGLPLUS_GLFUNC(BeginTransformFeedback)(GLenum(mode));
262 BeginTransformFeedback,
268 #if !OGLPLUS_NO_DELETED_FUNCTIONS
269 Activator(
const Activator&) =
delete;
273 Activator(
const Activator&);
277 Activator(Activator&& tmp)
278 : _active(tmp._active)
287 OGLPLUS_GLFUNC(EndTransformFeedback)();
288 OGLPLUS_VERIFY_SIMPLE(EndTransformFeedback);
330 OGLPLUS_GLFUNC(PauseTransformFeedback)();
331 OGLPLUS_VERIFY_SIMPLE(PauseTransformFeedback);
334 #if !OGLPLUS_NO_DELETED_FUNCTIONS
335 Pauser(
const Pauser&) =
delete;
338 Pauser(
const Pauser&);
343 : _paused(tmp._paused)
357 OGLPLUS_GLFUNC(ResumeTransformFeedback)();
358 OGLPLUS_VERIFY_SIMPLE(ResumeTransformFeedback);
382 typedef ObjectZero<ObjZeroOps<tag::ImplicitSel, tag::TransformFeedback>>
385 #endif // GL_VERSION_3_0
387 #if OGLPLUS_DOCUMENTATION_ONLY || GL_VERSION_4_0 || GL_ARB_transform_feedback2
392 template <
typename OpsTag>
394 :
public ObjZeroOps<OpsTag, tag::TransformFeedback>
410 #endif // GL_VERSION_4_0 || transform feedback 2
414 #if !OGLPLUS_LINK_LIBRARY || defined(OGLPLUS_IMPLEMENTING_LIBRARY)
415 #include <oglplus/transform_feedback.ipp>
416 #endif // OGLPLUS_LINK_LIBRARY
418 #endif // include guard
ObjectOps< tag::ImplicitSel, tag::TransformFeedback > TransformFeedbackOps
TransformFeedback operations with explicit selector.
Definition: transform_feedback.hpp:402
Object< TransformFeedbackOps > TransformFeedback
An oglplus_object encapsulating the OpenGL transform feedback functionality.
Definition: transform_feedback.hpp:408
Declaration of OGLplus object-related error.
Generic OpenGL object wrapper.
TransformFeedbackPrimitiveType
Transform feedback primitive modes.
Definition: transform_feedback_type.hpp:25
TRANSFORM_FEEDBACK_BUFFER.
Implements operations applicable to named (non-zero) objects.
Definition: wrap_tpl.hpp:45
GLuint GetGLName(ObjectName< ObjTag > named)
Returns the GLuint OpenGL name assigned to named object.
Definition: name.hpp:38
TransformFeedbackTarget
Transform feedback bind targets.
Definition: transform_feedback_target.hpp:27
ObjectZero< ObjZeroOps< tag::ImplicitSel, tag::TransformFeedback > > DefaultTransformFeedback
Wrapper for default feedback operations.
Definition: transform_feedback.hpp:383
Helper macro for optional checking of availability of GL function.
Implements operations applicable to any object including object 0 (zero)
Definition: fwd.hpp:157
Exception class for general OpenGL errors.
Definition: basic.hpp:43
Exception class for GL object-related errors.
Definition: object.hpp:24
Implements operations applicable to any object and any operation kind.
Definition: fwd.hpp:151
A common template for "named" objects like textures, buffers, etc.
Definition: fwd.hpp:136