2013-01-05 69 views
2

這裏是glBufferData正式聲明這是用來填充VBO:glBufferData如何知道要使用哪個VBO?

void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);

什麼是混亂的,但問題在於,你可以有多個維也納組織,但是這個功能並不需要的句柄特定的VBO,那麼它如何知道你打算使用哪個VBO?

target參數可以是GL_ARRAY_BUFFERGL_ELEMENT_ARRAY_BUFFER但我的理解是你可以有多個這些。

類似的glBufferSubData方法也是如此,該方法打算在VBO上被稱爲後續時間 - 它如何知道要處理哪個VBO?

+0

[爲什麼需要連續綁定一個緩衝區多次?](http://stackoverflow.com/questions/14172206/why-is-it-necessary-to-bind-a-buffer不止一次) – datenwolf

+0

這不是真的重複,但回答一個,回答其他 – datenwolf

+0

如果它不是重複的,它不應該投票結束作爲重複。你也不能假定提問者看到兩個不同問題之間的直接關係。你是一個苛刻的人,低估了兩個合理的問題。 – johnbakers

回答

4

這是一個common pattern in OpenGL將對象綁定到目標並通過發出沒有句柄的函數調用對其執行操作。這同樣適用於紋理。

0

使用緩衝區對象的OpenGL操作利用最近調用glBindBuffer所使用的目標上的緩衝區。

0

glBindBuffer是一個函數,它將給定的緩衝區作爲綁定進行公開。這樣一個glBufferData通過當前綁定的緩衝區對象通過副作用訪問它。

相關問題