Qt 4中的OpenGL扩展

时间:2011-10-01 12:37:33

标签: opengl qt4

可以在Qt 4(在桌面上)启用/使用OpenGL(特定版本),或者我必须使用glew等?

3 个答案:

答案 0 :(得分:1)

而不是Glew你可以包括gl3.h,它可能是最简单,最无痛的方式,兼容兼容模式和核心。它也非常值得查看GLXX它是一个用C ++编写的更新的lib,因此它更面向对象并提供了查询功能等方便的功能。

你可以看一下手动绑定你需要的扩展,可能会创建你自己的Qt类。

其他替代方案是Glee(现在有点过时,仅限于OpenGL 3.0)和gl3w(为您生成头文件的脚本,但似乎只支持OpenGL 3/4芯)。

此外,如果您想要一个面向对象的OpenGL文件库OGLplus看起来不错,不会做扩展。

答案 1 :(得分:0)

Qt包含QPixelBuffers等一些扩展的包装器,否则你可以使用glew来启用扩展

答案 2 :(得分:0)

我的方法(Windows)......你需要www.opengl.org/registry/api/glext.h

我正在使用此python script从glext.h生成glex.h(p_glext.h)和glex.cpp

p_glext.h是没有原型的glext.h的副本。

//glex.h
#ifndef GLEX_H
#define GLEX_H

#include "p_glext.h"

extern void glexInit();
extern PFNGLBLENDCOLORPROC glBlendColor;
extern PFNGLBLENDEQUATIONPROC glBlendEquation;
extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
...

//glex.cpp
...
void glexInit() {
    glBlendColor = (PFNGLBLENDCOLORPROC)wglGetProcAddress("glBlendColor");
    glBlendEquation = (PFNGLBLENDEQUATIONPROC)wglGetProcAddress("glBlendEquation");
    glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)wglGetProcAddress("glDrawRangeElements");
...
}

对我来说这很简单