GLES2.0中文API-glBufferData
名稱
glBufferData- 建立並初始化緩衝區物件的資料儲存
C規範
void glBufferData(GLenum target,GLsizeiptr size,const GLvoid * data,GLenum usage);
引數
target
指定目標緩衝區物件。 符號常量必須為GL_ARRAY_BUFFER或GL_ELEMENT_ARRAY_BUFFER。
size
指定緩衝區物件的新資料儲存的大小(以位元組為單位)。
data
指定將複製到資料儲存區以進行初始化的資料的指標,如果不復制資料,則指定NULL。
usage
指定資料儲存的預期使用模式。 符號常量必須為GL_STREAM_DRAW,GL_STATIC_DRAW或GL_DYNAMIC_DRAW。
描述
glBufferData為當前繫結到target的緩衝區物件建立一個新的資料儲存。 刪除任何預先存在的資料儲存。 使用指定的位元組和usage建立新資料儲存。 如果data不是NULL,則使用來自此指標的資料初始化資料儲存。
usage是關於如何訪問緩衝區物件的資料儲存的GL實現的提示。這使GL實現能夠做出更明智的決策,這可能會顯著影響緩衝區物件的效能。 但是,它不會限制資料儲存的實際使用。usage可以分為兩部分:第一,訪問頻率(修改和使用),第二,訪問的性質。 訪問頻率可能是以下之一:
STREAM
資料儲存內容將被修改一次並最多使用幾次。
STATIC
資料儲存內容將被修改一次並多次使用。
DYNAMIC
資料儲存內容將被重複修改並多次使用。
訪問的性質必須是:
DRAW
資料儲存內容由應用程式修改,並用作GL繪圖和影象規範命令的源。
注意
如果data為NULL,則仍會建立指定大小的資料儲存,但其內容仍未初始化,因此被視為未定義的。
客戶端必須使資料元素與客戶端平臺的要求保持一致,並具有額外的基本級要求,即緩衝區內對包含N的資料的偏移量是N的倍數。
錯誤
GL_INVALID_ENUM
:target不是GL_ARRAY_BUFFER或GL_ELEMENT_ARRAY_BUFFER。
GL_INVALID_ENUM
:usage不是GL_STREAM_DRAW,GL_STATIC_DRAW或GL_DYNAMIC_DRAW。
GL_INVALID_VALUE
:size是負數
GL_INVALID_OPERATION
:如果保留的緩衝區物件名稱0繫結到target。
GL_OUT_OF_MEMORY
:如果GL無法建立具有指定大小的資料儲存
相關Gets
glGetBufferParameteriv 引數 GL_BUFFER_SIZE
或GL_BUFFER_USAGE
另見
glBindBuffer,glBufferSubData
版權
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glBufferData.xml
https://blog.csdn.net/flycatdeng
Copyright © 1991-2006 Silicon Graphics, Inc.本文件的許可是根據SGI Free Software B License.詳見http://oss.sgi.com/projects/FreeB/.