Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/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
为什么我可以在OpenGL3环境中使用OpenGL4函数_Opengl - Fatal编程技术网

为什么我可以在OpenGL3环境中使用OpenGL4函数

为什么我可以在OpenGL3环境中使用OpenGL4函数,opengl,Opengl,我正在用freeglut制作一个运行在ubuntu上的应用程序。我使用了glutInitContextVersion(3,3),当我调用glGetString(GL\u版本)时,函数返回3.3(核心配置文件)Mesa 10.3.2。但是我可以使用glTexStorage2D函数,该函数运行良好。Opengl参考页说明该函数与Opengl 4.2或更高版本兼容。为什么我可以使用这个功能?我使用“英特尔常春藤网桥i3”cpu和“英特尔GPU”如果上下文初始化成功,则仅表示您最终使用的版本与您请求的版

我正在用freeglut制作一个运行在ubuntu上的应用程序。我使用了
glutInitContextVersion(3,3)
,当我调用
glGetString(GL\u版本)
时,函数返回
3.3(核心配置文件)Mesa 10.3.2
。但是我可以使用
glTexStorage2D
函数,该函数运行良好。Opengl参考页说明该函数与
Opengl 4.2
或更高版本兼容。为什么我可以使用这个功能?我使用“英特尔常春藤网桥i3”cpu和“英特尔GPU”

如果上下文初始化成功,则仅表示您最终使用的版本与您请求的版本兼容。这并不妨碍在幕后使用更高版本。至于版本字符串,由于兼容性原因,它可能只是对您撒谎,因为您请求的是较旧的上下文版本。

如果上下文初始化成功,则仅表示您最终使用的版本与您请求的版本兼容。这并不妨碍在幕后使用更高版本。至于版本字符串,出于兼容性原因,它可能只是在欺骗您,因为您请求的是较旧的上下文版本。

您可以使用该函数,可能是因为您的实现实现了ARB_纹理_存储。请参阅,ARB_纹理_存储的功能不会以
ARB
结尾。它定义了与OpenGL 4.2完全相同的函数,具有完全相同的行为

这允许3.3实现实现从更高版本中选择功能,但无需使用不同的功能。没有必要让
glTexStorageARB
glTexStorage
具有不同的功能,因为它们的功能相同


这些类型的扩展称为“向后兼容性扩展”或“.”。

您可以使用该函数,可能是因为您的实现实现了ARB\u纹理\u存储。请参阅,ARB_纹理_存储的功能不会以
ARB
结尾。它定义了与OpenGL 4.2完全相同的函数,具有完全相同的行为

这允许3.3实现实现从更高版本中选择功能,但无需使用不同的功能。没有必要让
glTexStorageARB
glTexStorage
具有不同的功能,因为它们的功能相同


这些类型的扩展称为“向后兼容扩展”或“.”

FYI:版本字符串没有说谎。FYI:版本字符串没有说谎。