• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    EXT_draw_transform_feedback
4
5Name Strings
6
7    GL_EXT_draw_transform_feedback
8
9Contact
10
11    Mark Callow (khronos 'at' callow.im)
12
13Notice
14
15    Copyright (c) 2016 The Khronos Group Inc. Copyright terms at
16        http://www.khronos.org/registry/speccopyright.html
17
18Status
19
20    Complete
21
22IP Status
23
24    No known IP issues
25
26Version
27
28    Date: Oct 14, 2016
29    Revision: 2
30
31Number
32
33    OpenGL ES Extension #272
34
35Dependencies
36
37    Requires OpenGL ES 3.2.
38
39    Written based on the wording of the OpenGL ES 3.2 specification
40    (June 15th, 2016).
41
42Overview
43
44    This extension adds the DrawTransformFeedback commands. These
45    were omitted from OpenGL ES 3.0 because the number of vertices
46    captured by transform feedback could never be different than
47    the number drawn during capture. The addition of geometry shaders
48    in OpenGL ES 3.2 broke that assumption but, due to an oversight,
49    DrawTransformFeedback et al were not reinstated. The
50    DrawTransformFeedback commands unlock the full potential of
51    geometry shaders.
52
53Issues
54
55    None
56
57New Procedures and Functions
58
59   void DrawTransformFeedbackEXT( enum mode, uint id );
60   void DrawTransformFeedbackInstancedEXT( enum mode, uint id, sizei instancecount );
61
62New Tokens
63
64    None
65
66Additions to Chapter 1-11 of the OpenGL ES 3.2 specification
67
68    None
69
70Additions to Chapter 12 of the OpenGL 3.2 Specification (Fixed-
71Function Vertex Post-Processing)
72
73    Add new section 12.1.3 Transform Feedback Draw Operations
74
75    When transform feedback is active, the values of output variables
76    or transformed vertex attributes are captured into the buffer
77    objects attached to the current transform feedback object.
78    After transform feedback is complete, subsequent rendering
79    operations may use the contents of these buffer objects (see
80    section 6). The number of vertices captured during transform
81    feedback is stored in the transform feedback object and may be
82    used in conjunction with the commands
83
84        void DrawTransformFeedbackEXT( enum mode, uint id );
85        void DrawTransformFeedbackInstancedEXT( enum mode, uint id,
86           sizei instancecount );
87
88    to replay the captured vertices.
89        Calling DrawTransformFeedbackInstancedEXT is equivalent
90    to calling DrawArraysInstanced with mode as specified, first
91    set to zero, count set to the number of vertices captured the
92    last time transform feedback was active on the transform feedback
93    object named id, and instancecount as specified.
94        Calling DrawTransformFeedbackEXT is equivalent to calling
95    DrawTransformFeedbackInstancedEXT with instancecount set to
96    one.
97        Note that the vertex count is from the number of vertices
98    recorded during the transform feedback operation. If no
99    outputs are recorded, the corresponding vertex count will be
100    zero.
101
102    No error is generated if the transform feedback object named
103    by id is active; the vertex count used for the rendering operation
104    is set by the previous EndTransformFeedback command.
105
106    Errors
107
108    An INVALID_VALUE error is generated if id is not the name of a
109    transform feedback object.
110
111    An INVALID_VALUE error is generated if instancecount is negative.
112
113    An INVALID_OPERATION error is generated if EndTransformFeedback
114    has never been called while the object named by id was bound.
115
116Additions to Chapters 13-21 of the OpenGL 3.2 Specification
117
118    None
119
120Additions to the EGL/AGL/GLX/WGL Specifications
121
122    None
123
124GLX Protocol
125
126    n/a
127
128New State
129
130    None
131
132Revision History
133
134    Rev.  Date     Author     Changes
135    ----  -------- ---------  -----------------------------------------
136      0   09/14/16 markc      Initial draft.
137      1   09/27/16 markc      Add suffices. Remove vestiges of
138                              "stream". Change overview to plural.
139      2   10/14/16 markc      Change to EXT.
140
141# vim:ai:ts=4:sts=4:sw=4:expandtab:textwidth=70
142