Mac上的OpenGL版本

时间:2017-09-28 01:25:28

标签: c++ opengl glsl

我正在使用nanogui在我的mac上编译源代码。 defaut opengl版本是330但是当我输出gl版本时,它告诉我,它的2.1和glsl版本是120.我在glwfint()之后手动设置以下内容

myVal

但它仍然输出gl版本2.1和glsl版本1.2。并继续告诉我不支持GLSL语言版本。是否有可能代码的其他部分可能会更改此设置,以便OpenGL支持其原始的mac版本。

2 个答案:

答案 0 :(得分:1)

错误的OpenGL版本可能是图形处理器以不希望的方式被优先处理的结果。

尝试检查GL_VENDORGL_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的控制面板。

的Mac

转到&#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(Legacy),3.3-4.1(Core)
  • GLSL 1.2(传统),3.3-4.1(核心)

因此,只要您的程序使用传统模式,它就会始终为您提供 OpenGL 2.1 / GLSL 1.2

<强>解决方案

包括GL3库

  

将您的代码从#include <gl.h>替换为#include <gl3.h>

API参考:https://www.khronos.org/registry/OpenGL/api/GLES3/