opengl緩衝區物件,glBufferSubData,glMapBuffer
阿新 • • 發佈:2019-01-06
4.更新緩衝區物件的資料值
方法一:假設已經在用用程式的一個緩衝區中準備了相同型別的資料,glBufferSubData()將用我們提供的資料替換被繫結的緩衝區物件的一些資料子集。
void glBufferSubData(GLenum target,GLuint offset,GLsizei size,const GLvoid *data); 用data 指向的資料更新 與target 相關聯的當前繫結緩衝區物件中從offset開始的size個位元組資料。
方法二:允許靈活的選擇需要更新的資料。
GLvoid *glMapBuffer(GLenum target,GLuenum access):返回一個指向緩衝區物件的指標,可以在這個緩衝區物件中寫入新值及更新之後,再呼叫GLboolean glUnMapBuffer(GLenum target)表示已經完成了對資料的更新,取消對這個緩衝區的對映。如果只需要更新所需範圍內的資料值,也可呼叫GLvoid *glMapBuffwerRange(GLenum target,GLintptr offset,GLsizeiptr length,GLbitfield access)
方法一:假設已經在用用程式的一個緩衝區中準備了相同型別的資料,glBufferSubData()將用我們提供的資料替換被繫結的緩衝區物件的一些資料子集。
void glBufferSubData(GLenum target,GLuint offset,GLsizei size,const GLvoid *data); 用data 指向的資料更新 與target 相關聯的當前繫結緩衝區物件中從offset開始的size個位元組資料。
方法二:允許靈活的選擇需要更新的資料。
GLvoid *glMapBuffer(GLenum target,GLuenum access):返回一個指向緩衝區物件的指標,可以在這個緩衝區物件中寫入新值及更新之後,再呼叫GLboolean glUnMapBuffer(GLenum target)表示已經完成了對資料的更新,取消對這個緩衝區的對映。如果只需要更新所需範圍內的資料值,也可呼叫GLvoid *glMapBuffwerRange(GLenum target,GLintptr offset,GLsizeiptr length,GLbitfield access)