Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
C++ 无法在OSX上更改OpenGL版本_C++_Macos_Opengl_Glut_Freeglut - Fatal编程技术网

C++ 无法在OSX上更改OpenGL版本

C++ 无法在OSX上更改OpenGL版本,c++,macos,opengl,glut,freeglut,C++,Macos,Opengl,Glut,Freeglut,我正在使用FreeGLUT,我想使用OpenGL3.2。我使用的是MacBook Pro(15),2015年初的Mojave 10.14.3,根据苹果的文档,它支持OpenGL高达4.1。我用brew下载了freeglut。但是,无论我在glutInitContextVersion中添加了什么,版本都不会改变。无论我做什么,OpenGL版本都保持在2.1 英特尔Iris Pro OpenGL引擎,2.1英特尔-12.4.7 使用的代码如下所示: #include <iostream>

我正在使用FreeGLUT,我想使用OpenGL3.2。我使用的是MacBook Pro(15),2015年初的Mojave 10.14.3,根据苹果的文档,它支持OpenGL高达4.1。我用brew下载了freeglut。但是,无论我在glutInitContextVersion中添加了什么,版本都不会改变。无论我做什么,OpenGL版本都保持在2.1

英特尔Iris Pro OpenGL引擎,2.1英特尔-12.4.7

使用的代码如下所示:

#include <iostream>
#include <GL/freeglut.h>

using namespace std;

void displayFunc() {
    glClearColor(1.0, 1.0, 0.5, 0.5);
    glClear(GL_COLOR_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glFlush();
}

int main(int argc, char * argv[]) {
    glutInit(&argc, argv);
    glutInitContextVersion(3,2);
    glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
    glutInitContextProfile(GLUT_CORE_PROFILE);

    glutInitWindowPosition(10, 10);
    glutInitWindowSize(480, 272);

    glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
    glutCreateWindow("Window");

    glutDisplayFunc(displayFunc);

    // Print the OpenGL version
    std::printf("%s\n%s\n", glGetString(GL_RENDERER), glGetString(GL_VERSION));

    glutMainLoop();
    return 0;
}
cmake_minimum_required(VERSION 3.3)
project(AVT7)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework GLUT -framework OpenGL -framework Cocoa")

include_directories(/usr/local/Cellar/freeglut/3.0.0/include)
link_directories(/usr/local/Cellar/freeglut/3.0.0/lib)

add_executable(AVT7 hello.cpp)
target_link_libraries(AVT7 glut)

我知道苹果不再支持OpenGL可能会有问题,但是它应该仍然可以工作(尤其是FreeGLUT)。

你的笔记本电脑有哪个GPU?如果你有一个额外的AMD卡(带有自动GPU切换),请确保应用程序在正确的GPU上启动。@BDL我的MacBook版本没有专用GPU,因此它是Intel Iris 5200 Pro。如果您使用像
glMatrixMode
?@Ripi2这样的旧函数,为什么需要核心配置文件?这只是一些工作代码,我想使用GL3中较新的函数。您的笔记本有哪个GPU?如果您有额外的AMD卡(带有自动GPU切换),请确保应用程序在正确的GPU上启动。@BDL我的MacBook版本没有专用GPU,因此它是Intel Iris 5200 Pro。如果使用像
glMatrixMode
?@Ripi2这样的旧函数,为什么要使用核心配置文件?这只是一些工作代码,我想在GL3中使用较新的函数。