《高效學習OpenGL》之緩衝區物件 glGenBuffers(), glBindBuffer(), glBufferData(),glMapBuffer()
更多精彩圖形學視訊教程,請訪問 http://www.oxox.work/
1.建立緩衝區物件
void glGenBuffers(GLsizei n, GLuint *buffers);
//在buffers陣列中返回當前n個未使用的名稱,表示緩衝區物件
GLboolean glIsBuffer(GLuint buffer);
//判斷是否是緩衝區物件
2.啟用緩衝區物件
void glBindBuffer(GLenum target, GLuint buffer);
//指定當前活動緩衝區的物件
3.用資料分配和初始化緩衝區物件
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_READ,GL_STREAM_DRAW,GL_STREAM_COPY,如圖
4.更新緩衝區資料值
GLvoid *glMapBuffer(GLenum target, GLenum access);
//提供對緩衝區物件包含的整個資料集合的更新
//access:GL_READ_ONLY,GL_WRITE_ONLY,GL_READ_WRITE
GLboolean *glUnMapBuffer(GLenum target);
//表示當前繫結緩衝區物件的更新已經完成,與glMapBuffer()結合使用
5.在緩衝區物件之間複製資料
void glCopyBufferSubData(GLenum readbuffer, GLenum writebuffer
GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
//把資料從readbuffer相關聯的緩衝區物件複製到writebuffer的緩衝區物件
//從readoffset開始移動size個資料的數量到wirteoffset中
6.清除緩衝區物件
void glDeleteBuffers(GLsizei n, GLuint *buffers);
相關文章
- OpenGL 之 幀緩衝 使用實踐
- Nio再學習之NIO的buffer緩衝區
- JavaScript WebGL 幀緩衝區物件JavaScriptWeb物件
- 動態更新——緩衝區物件物件
- Java NIO 緩衝區學習筆記Java筆記
- Java NIO 之緩衝區Java
- 雙緩衝學習
- Java NIO 之 Buffer(緩衝區)Java
- OpenGL Android課程七:介紹Vertex Buffer Objects(頂點緩衝區物件,簡稱:VBOs)AndroidObject物件
- Java-NIO之Buffer(緩衝區)Java
- 緩衝區分析
- C 標準庫IO緩衝區和核心緩衝區的區別
- Java NIO:緩衝區Java
- getchar緩衝區
- Unity深度緩衝區指令Unity
- Java整數緩衝區Java
- nginx 緩衝區構造Nginx
- stdio流緩衝區
- CMD.EXE中dir超長字串緩衝區溢位原理學習字串
- 用apache JCS實現物件緩衝Apache物件
- 掌握CFML:在輸出緩衝區中高效搜尋字串的技巧字串
- Node.js Buffer(緩衝區)Node.js
- PHP的輸出緩衝區PHP
- Linux 命令 管道 緩衝區Linux
- log buffer(日誌緩衝區)
- Java NIO2:緩衝區Java
- 緩衝區溢位實驗
- 【NIO】Java NIO之緩衝Java
- openGL學習
- 緩衝區溢位小程式分析
- PHP 輸出緩衝區應用PHP
- Redis效能篇(五)Redis緩衝區Redis
- 8、Node.js Buffer(緩衝區)Node.js
- node.js中緩衝區–BufferNode.js
- C語言緩衝區問題C語言
- WebGIS 8-1 緩衝區分析Web
- cuug 資料緩衝區調優
- Buffer Cache Size(資料緩衝區)