我只是试图为使用Qt 5.8的项目设置CMake来在OS X Sierra中执行OpenGL。在这里你可以看到我的主CMakeLists如何在OS X Sierra中使用Cmake for OpenGL + Qt 5.8?
cmake_minimum_required (VERSION 3.8)
set (PROJECT_NAME "FluidEngine")
project (${PROJECT_NAME})
set (CMAKE_PREFIX_PATH "/Users/BRabbit27/Qt/5.8/clang_64")
set (CMAKE_AUTOMOC ON)
find_package (Qt5Widgets)
find_package (Qt5Gui)
find_package (Qt5OpenGL)
set (CPP_SOURCES "")
set (HPP_SOURCES "")
set (INCLUDE_PATHS "")
add_subdirectory (src)
include_directories (${INCLUDE_PATHS} ${OPENGL_INCLUDE_DIRS})
add_executable (${PROJECT_NAME} ${CPP_SOURCES} ${HPP_SOURCES})
target_link_libraries (${PROJECT_NAME} Qt5::Widgets Qt5::Gui Qt5::OpenGL)
它完美地配置xcode项目,没有错误。 然后我对渲染基本三角形的代码如下所示:
GLWindow::GLWindow(QWidget* parent) : QOpenGLWidget(parent)
{}
void GLWindow::initializeGL()
{
initializeOpenGLFunctions();
GLfloat verts[] =
{
0.f, 1.f,
-1.f, -1.f,
1.f, -1.f
};
GLuint myBufferID;
glGenBuffers(1, &myBufferID);
glBindBuffer(GL_ARRAY_BUFFER, myBufferID);
glBufferData(GL_ARRAY_BUFFER, sizeof(verts), verts, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);
}
void GLWindow::resizeGL(int w, int h)
{
glViewport(0, 0, w, h);
}
void GLWindow::paintGL()
{
glDrawArrays(GL_TRIANGLES, 0, 3);
}
而我得到的是一个黑色窗口。我从this video tutorial
这个代码我失去了我的cmake的文件或微妙的东西在OS X使用OpenGL的东西吗?由于OS X现在正在推广Metal,所以可能必须启用某些功能,但我不知道该怎么做。
我已经尝试设置在主函数
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QSurfaceFormat format;
format.setVersion(4, 1);
format.setProfile(QSurfaceFormat::CoreProfile);
QSurfaceFormat::setDefaultFormat(format);
GLWindow glwindow;
glwindow.show();
return app.exec();
}
任何想法,使用了OpenGL的版本?
UPDATE
新增项目github上,你可以clone it here在你的机器上测试。
我建项目的方法就是cmake -GXcode ..
假设我在/path/to/project/build_xcode
目录。
希望这可以帮助你重现,也许给我什么,我可能做错了一个线索。