Name EXT_draw_transform_feedback Name Strings GL_EXT_draw_transform_feedback Contact Mark Callow (khronos 'at' callow.im) Notice Copyright (c) 2016 The Khronos Group Inc. Copyright terms at http://www.khronos.org/registry/speccopyright.html Status Complete IP Status No known IP issues Version Date: Oct 14, 2016 Revision: 2 Number OpenGL ES Extension #272 Dependencies Requires OpenGL ES 3.2. Written based on the wording of the OpenGL ES 3.2 specification (June 15th, 2016). Overview This extension adds the DrawTransformFeedback commands. These were omitted from OpenGL ES 3.0 because the number of vertices captured by transform feedback could never be different than the number drawn during capture. The addition of geometry shaders in OpenGL ES 3.2 broke that assumption but, due to an oversight, DrawTransformFeedback et al were not reinstated. The DrawTransformFeedback commands unlock the full potential of geometry shaders. Issues None New Procedures and Functions void DrawTransformFeedbackEXT( enum mode, uint id ); void DrawTransformFeedbackInstancedEXT( enum mode, uint id, sizei instancecount ); New Tokens None Additions to Chapter 1-11 of the OpenGL ES 3.2 specification None Additions to Chapter 12 of the OpenGL 3.2 Specification (Fixed- Function Vertex Post-Processing) Add new section 12.1.3 Transform Feedback Draw Operations When transform feedback is active, the values of output variables or transformed vertex attributes are captured into the buffer objects attached to the current transform feedback object. After transform feedback is complete, subsequent rendering operations may use the contents of these buffer objects (see section 6). The number of vertices captured during transform feedback is stored in the transform feedback object and may be used in conjunction with the commands void DrawTransformFeedbackEXT( enum mode, uint id ); void DrawTransformFeedbackInstancedEXT( enum mode, uint id, sizei instancecount ); to replay the captured vertices. Calling DrawTransformFeedbackInstancedEXT is equivalent to calling DrawArraysInstanced with mode as specified, first set to zero, count set to the number of vertices captured the last time transform feedback was active on the transform feedback object named id, and instancecount as specified. Calling DrawTransformFeedbackEXT is equivalent to calling DrawTransformFeedbackInstancedEXT with instancecount set to one. Note that the vertex count is from the number of vertices recorded during the transform feedback operation. If no outputs are recorded, the corresponding vertex count will be zero. No error is generated if the transform feedback object named by id is active; the vertex count used for the rendering operation is set by the previous EndTransformFeedback command. Errors An INVALID_VALUE error is generated if id is not the name of a transform feedback object. An INVALID_VALUE error is generated if instancecount is negative. An INVALID_OPERATION error is generated if EndTransformFeedback has never been called while the object named by id was bound. Additions to Chapters 13-21 of the OpenGL 3.2 Specification None Additions to the EGL/AGL/GLX/WGL Specifications None GLX Protocol n/a New State None Revision History Rev. Date Author Changes ---- -------- --------- ----------------------------------------- 0 09/14/16 markc Initial draft. 1 09/27/16 markc Add suffices. Remove vestiges of "stream". Change overview to plural. 2 10/14/16 markc Change to EXT. # vim:ai:ts=4:sts=4:sw=4:expandtab:textwidth=70