我只是試圖爲使用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
目錄。
希望這可以幫助你重現,也許給我什麼,我可能做錯了一個線索。