Nic*_*las 12
除了下面提到的例外,所有OpenGL函数都将使用在函数返回时给出的任何指针完成.因此glReadPixels,在返回时将完成所有像素读取和格式转换.这就是异步像素传输对于读取操作非常重要的原因.它允许OpenGL 不这样做,不与GPU同步.
此规则的唯一例外是以"指针"一词结尾的每个函数.像glVertexAttribPointer,glTexCoordPointer等等.当您使用具有这些功能的客户端内存(核心配置文件OpenGL 3.2+中不再合法)时,这些函数会存储指向该内存的指针.因此,只要您打算使用这些顶点属性进行渲染,就必须确保此指针有效.
在使用客户端内存进行每次渲染调用之后,OpenGL要求在渲染函数返回时实现已从客户端内存中完成读取.所以你可以调用glDrawArrays,然后删除有问题的指针.只要你在改变那些指针之前不再进行另一次抽签,你就没事了.这意味着OpenGL必须在渲染调用返回时复制出所有相关的顶点数据(使用缓冲区对象的原因之一更快).
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |