我正在处理OpenGL教程:OpenGL-Tutorial.org,并希望使用QTCreator和CMake来构建示例。
打开根CMakeLists.txt
文件会打开项目,然后构建/运行正确(按照网站上的说明操作),但片段和顶点文件不会显示在项目窗格中。我尝试将它们重命名为.frag
,.vert
和.glsl
,但效果不佳。如果我从他们在编辑窗格中打开的文件夹中拖动这些文件,并使用正确的语法高亮显示。
如何让这些文件显示在项目窗格中?
我使用的是Ubuntu 20.04并且已经尝试过QTCreator包和sourceforge上的最新源代码。
答案 0 :(得分:4)
file(GLOB RES_FILES *.frag *.vert *.glsl)
add_executable(exe_name ${RES_FILES} ${C/CPP FILES})
答案 1 :(得分:1)
使用Cmake在您的Qt项目中包含着色器文件的另一种方法是通过CMake命令qt5_add_resources
。使用qmake时,One of the Qt's examples也会这样做。对于我的应用程序,我发现将着色器文件包含为资源更实用。
因此,为此,您必须准备资源文件,例如Shaders.qrc
,并在那里添加您要使用的所有着色器文件,例如:
<RCC>
<qresource prefix="/">
<file>Stroke.frag</file>
<file>Stroke.geom</file>
<file>Stroke.vert</file>
</qresource>
</RCC>
然后在CMakeLists.txt
中添加资源文件:
qt5_add_resources(SHADER_RSC_ADDED
Shaders/Shaders.qrc
)
并将其添加到可执行文件(或库)中:
add_executable(${PROJECT_NAME}
${PROJECT_SRCS}
${SHADER_RSC_ADDED}
)
重新构建后,项目树将如下所示:
答案 2 :(得分:0)
您可以将着色器文件添加为.pro
文件中的其他文件。
OTHER_FILES += \
simple.frag \
simple.vert
此外,您应该考虑对着色器文件使用QT资源管理。我最近在Qt中创建了一个简单的OpenGL 3.2示例项目,该项目还展示了如何使用Qt进行着色器文件的资源管理。该项目可在此处获取:https://github.com/mortennobel/QtOpenGL3.2Core
警告:该项目仅在Windows和OS / X上进行测试。