Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt4中的OpenGL扩展_Opengl_Qt4 - Fatal编程技术网

Qt4中的OpenGL扩展

Qt4中的OpenGL扩展,opengl,qt4,Opengl,Qt4,可以在Qt4(桌面上)中启用/使用OpenGL(特定版本),或者我必须使用glew,etc?Qt为某些扩展名(如Qpixelbuffer)提供包装,否则您可以使用glew启用扩展名Qt为某些扩展名(如Qpixelbuffer)提供包装,否则您可以使用glew启用扩展名,而不是使用您可以包含的glew,这可能是最简单、最无痛的方式,可以与兼容模式以及核心兼容。它也是一个值得研究的新C++,它更面向对象,提供了查询功能的方便功能等。 您可以考虑手动绑定所需的扩展,也可以创建自己的Qt类 其他替代方案

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

Qt为某些扩展名(如Qpixelbuffer)提供包装,否则您可以使用glew启用扩展名

Qt为某些扩展名(如Qpixelbuffer)提供包装,否则您可以使用glew启用扩展名

,而不是使用您可以包含的glew,这可能是最简单、最无痛的方式,可以与兼容模式以及核心兼容。它也是一个值得研究的新C++,它更面向对象,提供了查询功能的方便功能等。 您可以考虑手动绑定所需的扩展,也可以创建自己的Qt类

其他替代方案有(现在有点过时,只有OpenGL 3.0版本)和(一个为您生成头文件的脚本,但似乎只支持OpenGL 3/4核心)


此外,如果您希望OpenGL的面向对象库本身看起来不错,但不做扩展。

与您可以包含的Glew相比,它可能是最简单、最无痛苦的方式,可以与兼容模式以及核心兼容。它也是一个值得研究的新C++,它更面向对象,提供了查询功能的方便功能等。 您可以考虑手动绑定所需的扩展,也可以创建自己的Qt类

其他替代方案有(现在有点过时,只有OpenGL 3.0版本)和(一个为您生成头文件的脚本,但似乎只支持OpenGL 3/4核心)

另外,如果您想要一个面向对象的OpenGL库,它本身看起来不错,但不做扩展。

我的方法(Windows)。。。你需要

我使用它从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");
...
}
这对我来说很简单

我的方法(Windows)。。。你需要

我使用它从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");
...
}
这对我来说很简单