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
GLEW将OpenGL2EXT加载为OpenGL4_Opengl_Glew - Fatal编程技术网

GLEW将OpenGL2EXT加载为OpenGL4

GLEW将OpenGL2EXT加载为OpenGL4,opengl,glew,Opengl,Glew,我正在努力使我写的图书馆便于携带。它是一个图形库,大量使用高级OpenGL。我在一台支持OpenGL 4.2的机器上开发了这个库 有许多OpenGL 4函数(一个简单的例子是glGenerateMipmap)不是OpenGL 2中的核心功能,但在扩展(在本例中为glGenerateMipmapEXT)下可用。我发现,在较旧的硬件上运行时,OpenGL4函数指针为NULL,但后缀为EXT的OpenGL2扩展函数则不是,并且工作正常 我在用GLEW。虽然我意识到OpenGL4函数有时与OpenGL2

我正在努力使我写的图书馆便于携带。它是一个图形库,大量使用高级OpenGL。我在一台支持OpenGL 4.2的机器上开发了这个库

有许多OpenGL 4函数(一个简单的例子是glGenerateMipmap)不是OpenGL 2中的核心功能,但在扩展(在本例中为glGenerateMipmapEXT)下可用。我发现,在较旧的硬件上运行时,OpenGL4函数指针为NULL,但后缀为EXT的OpenGL2扩展函数则不是,并且工作正常


我在用GLEW。虽然我意识到OpenGL4函数有时与OpenGL2EXT函数不同,但它们通常是相同的。有没有办法让GLEW将EXT函数作为OpenGL4函数加载?还是我不得不将所有OpenGL4函数重命名为EXT对应函数?还有什么吗?

不,你不能让GLEW欺骗你,假装扩展函数是核心函数

一般来说,在编写OpenGL代码时,您可以选择一个特定的版本+一组扩展并对其进行写入。如果您想要可选功能(特定于硬件的功能),那么您可以编写额外的代码路径来调用这些API


除了MacOSX的核心3.2支持之外,您可以期望旧的扩展在新硬件上无限期地得到支持。这样,旧程序仍然可以在新的实现上运行。因此,您不会发现一个GL 4.x实现没有实现GL_EXT_framebuffer_对象。

不,您不能让GLEW欺骗您,假装扩展函数是核心函数

一般来说,在编写OpenGL代码时,您可以选择一个特定的版本+一组扩展并对其进行写入。如果您想要可选功能(特定于硬件的功能),那么您可以编写额外的代码路径来调用这些API

除了MacOSX的核心3.2支持之外,您可以期望旧的扩展在新硬件上无限期地得到支持。这样,旧程序仍然可以在新的实现上运行。因此,您不会找到一个不实现GL\u EXT\u framebuffer\u对象的GL 4.x实现