logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

glBeginTransformFeedback - start transform feedback operation

C Specification

voidglBeginTransformFeedback(GLenumprimitiveMode);voidglEndTransformFeedback(void);

Description

       Transform feedback mode captures the values of varying variables written by the vertex shader (or, if
       active, the geometry shader). Transform feedback is said to be active after a call to
       glBeginTransformFeedback until a subsequent call to

       glEndTransformFeedback. Transform feedback commands must be paired.

       If no geometry shader is present, while transform feedback is active the mode parameter to glDrawArrays()
       must match those specified in the following table:
       ┌───────────────────────────────────────────┬─────────────────────────────────────────────────────────┐
       │                                           │                                                         │
       │                                 TransformAllowed                 │
       │ FeedbackprimitiveModeRenderPrimitivemodes                                  │
       │                                           │                                                         │
       ├───────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
       │ GL_POINTSGL_POINTS                                               │
       ├───────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
       │ GL_LINESGL_LINES,                                               │
       │                                           │                             GL_LINE_LOOP,               │
       │                                           │                             GL_LINE_STRIP,              │
       │                                           │                             GL_LINES_ADJACENCY,         │
       │                                           │                             GL_LINE_STRIP_ADJACENCY     │
       ├───────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
       │ GL_TRIANGLESGL_TRIANGLES,                                           │
       │                                           │                             GL_TRIANGLE_STRIP,          │
       │                                           │                             GL_TRIANGLE_FAN,            │
       │                                           │                             GL_TRIANGLES_ADJACENCY,     │
       │                                           │                             GL_TRIANGLE_STRIP_ADJACENCY │
       └───────────────────────────────────────────┴─────────────────────────────────────────────────────────┘

       If a geometry shader is present, the output primitive type from the geometry shader must match those
       provided in the following table:
       ┌───────────────────────────────────────────┬─────────────────────────────────────────┐
       │                                           │                                         │
       │                                 TransformAllowed │
       │ FeedbackprimitiveModeGeometryShaderOutputPrimitiveType   │
       │                                           │                                         │
       ├───────────────────────────────────────────┼─────────────────────────────────────────┤
       │ GL_POINTSpoints                                  │
       ├───────────────────────────────────────────┼─────────────────────────────────────────┤
       │ GL_LINESline_strip                              │
       ├───────────────────────────────────────────┼─────────────────────────────────────────┤
       │ GL_TRIANGLEStriangle_strip                          │
       └───────────────────────────────────────────┴─────────────────────────────────────────┘

Errors

GL_INVALID_OPERATION is generated if glBeginTransformFeedback is executed while transform feedback is
       active.

       GL_INVALID_OPERATION is generated if glEndTransformFeedback is executed while transform feedback is not
       active.

       GL_INVALID_OPERATION is generated by glDrawArrays() if no geometry shader is present, transform feedback
       is active and mode is not one of the allowed modes.

       GL_INVALID_OPERATION is generated by glDrawArrays() if a geometry shader is present, transform feedback
       is active and the output primitive type of the geometry shader does not match the transform feedback
       primitiveMode.

       GL_INVALID_OPERATION is generated by glEndTransformFeedback if any binding point used in transform
       feedback mode does not have a buffer object bound.

       GL_INVALID_OPERATION is generated by glEndTransformFeedback if no binding points would be used, either
       because no program object is active of because the active program object has specified no varying
       variables to record.

Name

       glBeginTransformFeedback - start transform feedback operation

Notes

       Geometry shaders, and the GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY, GL_LINES_ADJACENCY and
       GL_LINE_STRIP_ADJACENCY primtive modes are available only if the GL version is 3.2 or greater.

Parameters For Glbegintransformfeedback

primitiveMode
           Specify the output type of the primitives that will be recorded into the buffer objects that are
           bound for transform feedback.

See Also

Version Support

       ┌──────────────────────────┬───────────────────────────────────────────────────────────────────────┐
       │                          │                OpenGLVersion                                         │
       ├──────────────────────────┼─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┤
       │ Function2.02.13.03.13.23.34.04.14.24.34.44.5 │
       │ /                        │     │     │     │     │     │     │     │     │     │     │     │     │
       │ Feature                  │     │     │     │     │     │     │     │     │     │     │     │     │
       │ Name                     │     │     │     │     │     │     │     │     │     │     │     │     │
       ├──────────────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │ glBeginTransformFeedback │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │ glEndTransformFeedback   │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       └──────────────────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘

See Also