作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我对 QGLBuffer 有疑问。我正在尝试使用 QT + Opengl 实现动态 VBO。
在.h文件中
struct CVert {
float x;
float y;
};
...
typedef struct CVert CVert;
CVert* m_data;
QGLBuffer* m_bufferData;
int m_size;
在 .cpp 中
构造函数。
m_size = numberOfVertex;
m_bufferData = new QGLBuffer(QGLBuffer::VertexBuffer);
m_bufferData->create();
m_bufferData->bind();
m_bufferData->setUsagePattern(QGLBuffer::DynamicDraw);
m_bufferData->allocate(2*sizeof(float)* p_size);
m_data = (CVert*)m_bufferData->map (QGLBuffer::ReadWrite);
在程序执行中我改变了一些m_data值
m_data[pos].x = X1
m_data[pos].y = y1
在绘制方法中。
glEnableClientState(GL_VERTEX_ARRAY);
if (m_bufferData->bind ()) {
glVertexPointer( 2, GL_FLOAT, 0, (char *) NULL );;
glDrawArrays( GL_LINES, 0,m_size );
glDisableClientState(GL_VERTEX_ARRAY);
}
但没有绘制它。我检查过 m_data 不为空,并且 m_bufferData->bind() 返回 true。我做错了什么?
最佳答案
我想我已经解决了。每次我必须编辑 VBO。我必须
m_data = (CVert*)data->map (QGLBuffer::ReadWrite);
m_data[pos].x = X1;
m_data[pos].y = y1
data->unmap ();
如果我在构造函数中只映射一次,这是行不通的
关于c++ - QGLBuffer 和 VBO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5785272/
我正在尝试运行 PySide 版本的 OpenGL Core Profile Qt 演示 - How_to_use_OpenGL_Core_Profile_with_Qt . 它使用 QGLBuffe
我对 QGLBuffer 有疑问。我正在尝试使用 QT + Opengl 实现动态 VBO。 在.h文件中 struct CVert { float x;
我正在尝试使用 QGLbuffer显示图像。 顺序是这样的: initializeGL() { glbuffer= QGLBuffer(QGLBuffer::PixelUnpackBuffer);
我是一名优秀的程序员,十分优秀!