1. 程式人生 > >GLES2.0中文API-glBufferData

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繪圖和影象規範命令的源。

注意

如果dataNULL,則仍會建立指定大小的資料儲存,但其內容仍未初始化,因此被視為未定義的。

客戶端必須使資料元素與客戶端平臺的要求保持一致,並具有額外的基本級要求,即緩衝區內對包含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

另見

glBindBufferglBufferSubData​​​​​​​​​​​​​​

版權

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/.

Android,OpenGL ES,圖形學