我正在使用nanogui在我的mac上编译源代码。 defaut opengl版本是330但是当我输出gl版本时,它告诉我,它的2.1和glsl版本是120.我在glwfint()之后手动设置以下内容
myVal
但它仍然输出gl版本2.1和glsl版本1.2。并继续告诉我不支持GLSL语言版本。是否有可能代码的其他部分可能会更改此设置,以便OpenGL支持其原始的mac版本。
答案 0 :(得分:1)
错误的OpenGL版本可能是图形处理器以不希望的方式被优先处理的结果。
尝试检查GL_VENDOR
和GL_RENDERER
。它是否返回所需图形处理器的名称?
<强>的Nvidia 强>
转到&#34; NVIDIA控制面板&#34; (通常在上下文菜单中可用,如果您右键单击桌面)。然后在&#34; 3D设置&#34; - &GT; &#34;管理3D设置&#34;。在这里,您将看到选择首选图形处理器的选项。
<强> AMD 强>
去&#34;图形属性&#34; (通常在上下文菜单中可用,如果您右键单击桌面)。然后在&#34; Power&#34; - &GT; &#34;的PowerPlay&#34;设置&#34;插入&#34;和&#34;电池&#34;到&#34;最高性能&#34;。
如果&#34;可切换的图形应用程序设置&#34;是可用的,那么你也可以执行&#34;高性能&#34;。
<强>英特尔强>
进入&#34;(英特尔)图形属性&#34; (通常在上下文菜单中可用,如果您右键单击桌面)。然后点击&#34; 3D&#34;选项卡设置&#34;常规设置&#34;到&#34;表现&#34;。现在回到&#34; Power&#34;选项卡并设置&#34;图形电源计划&#34;到&#34;最高性能&#34;。
在此之后转到GPU的控制面板。
转到&#34;节能器&#34;并取消选择&#34;自动图形切换&#34;。
如果问题仍然存在。首先验证计算机是否可以实际找到所需的图形处理器。再次检查是否启用了任何省电设置。最后还要检查是否有任何驱动程序更新。
<强>资源强>
答案 1 :(得分:1)
这可能是因为您的应用程序使用的是旧版opengl配置文件而不是核心配置文件。
请检查OpenGL功能表中的图形硬件功能
Mac功能 : https://developer.apple.com/opengl/OpenGL-Capabilities-Tables.pdf
假设您的机器是Mac OS X 10.9,那么下面将是您的机器功能。
因此,只要您的程序使用传统模式,它就会始终为您提供 OpenGL 2.1 / GLSL 1.2
<强>解决方案强>
包括GL3库
将您的代码从
#include <gl.h>
替换为#include <gl3.h>