<p>Binding points (and other state) are still important when doing actual draw calls (stuff like VAOs, UBOs, SSBOs and programs are still bound). It's only bind-to-edit that was eschewed.</p>

<p>In your case the most DSA way to do that would be: </p>

<pre><code>glCreateBuffers(1, &amp;tbo);
glNamedBufferData(tbo,sizeof(data), nullptr, GL_DYNAMIC_COPY);

glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, tbo);
</code></pre>

CC BY-SA 3.0
2017-09-01T08:10:14.527Z
2017-09-30T15:57:05.677Z
2017-09-30T15:57:05.677Z
ratchet freak
<p>There isn't a DSA way to bind buffers to the feedback buffer bindings. But that's because <a href="https://www.khronos.org/opengl/wiki/Transform_Feedback#Feedback_objects" rel="noreferrer">transform feedbacks are <em>objects</em></a>, and there <em>is</em> a DSA way to attach buffers to transform feedback objects:</p>

<pre><code>GLuint buffer;
glCreateBuffers(1, &amp;buffer);
//Fill in buffer's data.

GLuint feedback;
glCreateTransformFeedbacks(1, &amp;feedback);
glTransformFeedbackBufferRange(feedback, 0, buffer, offset, size);
</code></pre>

<p>You can then bind <code>feedback</code> when you're ready to actually do your feedback operations into those buffers.</p>

CC BY-SA 3.0
2017-09-01T14:35:03.900Z
2017-09-01T14:35:03.900Z
Nicol Bolas
<p>The typical way I see transform feedback being used is:</p>

<pre><code>    glGenBuffers(1, &amp;tbo);
    glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, tbo);
    glBufferData(GL_TRANSFORM_FEEDBACK_BUFFER, sizeof(data), nullptr, GL_DYNAMIC_COPY);
</code></pre>

<p>However, new, DSA OpenGL eschews the binding points.  Is there a DSA way to bind a buffer to the transform feedback binding point?</p>

<opengl><transform-feedback>
Is there a DSA technique for transform feedback?
Startec
# Is there a DSA technique for transform feedback?

(Asked by: username_0 on 2017-09-01)

The typical way I see transform feedback being used is:

```
    glGenBuffers(1, &tbo);
    glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, tbo);
    glBufferData(GL_TRANSFORM_FEEDBACK_BUFFER, sizeof(data), nullptr, GL_DYNAMIC_COPY);

```

However, new, DSA OpenGL eschews the binding points. Is there a DSA way to bind a buffer to the transform feedback binding point?

**Tags:** opengl, transform-feedback


---

## 2 answers

### Answer by username_1 on 2017-09-01. Score: 1 | Accepted answer

Binding points (and other state) are still important when doing actual draw calls (stuff like VAOs, UBOs, SSBOs and programs are still bound). It's only bind-to-edit that was eschewed.

In your case the most DSA way to do that would be:

```
glCreateBuffers(1, &tbo);
glNamedBufferData(tbo,sizeof(data), nullptr, GL_DYNAMIC_COPY);

glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, tbo);

```


---

### Answer by username_2 on 2017-09-01. Score: 5

There isn't a DSA way to bind buffers to the feedback buffer bindings. But that's because [transform feedbacks are *objects*](https://www.khronos.org/opengl/wiki/Transform_Feedback#Feedback_objects), and there *is* a DSA way to attach buffers to transform feedback objects:

```
GLuint buffer;
glCreateBuffers(1, &buffer);
//Fill in buffer's data.

GLuint feedback;
glCreateTransformFeedbacks(1, &feedback);
glTransformFeedbackBufferRange(feedback, 0, buffer, offset, size);

```

You can then bind `feedback` when you're ready to actually do your feedback operations into those buffers.


---

