| 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 |