QOpenGLWidget下使用glad库的步骤:
1.glad网址 https://glad.dav1d.de/
gl 下拉列表选择opengl4.x, 选择compatibility,则可以支持1.x 2.x 3.x的API
勾选 generate a loader , 这个glad.h 就会有 gladLoadGL() 这个API;
2.将glad.h glad.c k hr xxx.h添加到工程;
3.在下面位置调gladLoadGL():
class MyOGLWidget: public QOpenGLWidget
{
void initializeGL()
{
gladLoadGL();
}
};
这样 MyOGLWidget.cpp 就能用opengl的API了
下面是opengl vertex array的api使用,这个特性opengl 4.x都不推荐了,但是由于简单,还有兼容老旧代码,调试方便等特性。
class MyOGLWidget: public QOpenGLWidget
{
public:
std::vector<float> _vertices;
std::vector<unsigned char> _indices;
void initData()
{
// 准备顶点和索引数据
_vertices.push_back(0.0);
...
_indices.push_back(0u);
}
void paintGL()
{
glEnableClientState(GL_VERTEX_ARRAY);
// 设置顶点数组首地址
glVertexPointer(3, GL_FLOAT, 0, &vertices[0]);
// 绘制三角形
glDrawElements(GL_TRIANGLES, _indices.size()/3, GL_UNSIGNED_BYTE, &_indices[0]);
glDisableClientState(GL_VERTEX_ARRAY);
}