glTexSubImage3D vs QOpenGLTexture setData
glTexSubImage3D vs QOpenGLTexture setData
据我了解,QOpenGLTexture::setData在纹理数组或3D纹理的情况下等同于glTexImage3D。现在,如果我想使用 PBO 在运行时更新纹理,我需要使用 glTexSubImage3D 而不是 glTexImage3D,Qt 纹理中的等效物是什么?
首先,异步上传绝不需要使用glTexSubImage3D
;它们适用于任何像素传递函数。
其次,setData
相当于OpenGL函数的SubImage
类。或者至少,大多数超载setData
是;采用MipMapGeneration
标志的那个将为你分配存储空间(因为Qt的OpenGL抽象是一致性消亡的地方(。因此,您可以将 PBO 与 setData
一起使用。
OpenGL中的纹理更像是指针。 allocateStorage
就像分配内存并将分配的内存存储在指针中(int *p = new int[20];
(。 setData
就像访问分配的对象并将数据复制到其中(p[0] = 5;
(。您必须先分配内存,然后才能将内容存储到其中,但是在之前这样做之后,您不需要再次分配内存。
相关文章:
- 为什么不能使用 setData() 在 QTreeView 中设置单元格的背景颜色?
- QOpenGL纹理层数
- glTexSubImage3D vs QOpenGLTexture setData
- 从 QML 调用 QAbstractTableModel setData 方法
- :void setData(const Color * & data_ptr)中的 *& 是什么意思;
- QSqlTableModel::setData() 也使用 Qt::EditMode 返回 false
- setData returns false for QAbstractProxyModel
- QOpenGL:颜色索引模式
- 如何在qsqlqueryModel(QAbstractItemModel)中编写setdata()
- 使用SetData()分配数据后,cvReleaseImage()出现分段错误
- setData() versus insertRows() Qt ModelView