2012-06-17 45 views
1

有人可以向我解釋此錯誤,請:
如果非零緩衝區對象名稱綁定到啓用的數組並且緩衝區對象的數據存儲區當前已映射,則會生成GL_INVALID_OPERATION。glArrayElement錯誤

回答

1

我相信,當您通過指針功能(例如glVertexAttribPointer)將VBO同時映射到客戶端內存glMapBuffer時,VBO被主動綁定時,它會觸發。

不能使用一個VBO,而它的映射到客戶端存儲器,根據glMapBuffer DOC:

映射的其緩衝器對象用於前數據存儲必須是未映射與glUnmapBuffer。 否則,任何試圖解引用緩衝區對象的數據存儲的GL命令都會生成錯誤。

+0

感謝您的回答, 你能想一想在opengl 1.4中出現這個錯誤的例子嗎? 因爲我試圖瞭解這個錯誤是否可以在openGL 1.4中專門顯示。你的例子來自opengl 1.5及以上版本。 – user893269

+0

對不起,但我不知道。如果你在自己的代碼中發現了這個錯誤,也許你應該發佈生成它的代碼片段。 @ user893269 – Tim

+0

@ user893269:沒關係;您不能使用當前映射的緩衝區對象。 ARB_map_buffer_range允許您只映射緩衝區的一部分(因此允許其餘部分被使用)。但如果沒有這個,如果緩衝區被映射,你就不能使用它。無論是「glVertexAttribpointer」,「glTexCoordPointer」等;它不能被渲染。 –