2

我正在阅读此处的 OpenGL 教程:OpenGL-Tutorial.org,并希望使用 QTCreator 和 CMake 来构建示例。

打开根CMakeLists.txt文件会打开项目,然后项目会正确构建/运行(按照网站上的说明进行操作),但片段和顶点文件不会显示在项目窗格中。我尝试将它们重命名为.frag.vert.glsl没有任何效果。如果我从文件夹中拖动这些文件,它们会在编辑窗格中以正确的语法突出显示打开。

如何让这些文件显示在项目窗格中?


我在 Ubuntu 20.04 上并尝试了来自软件包的 QTCreator 和 sourceforge 上的最新源。

4

3 回答 3

4
file(GLOB RES_FILES *.frag *.vert *.glsl)

add_executable(exe_name ${RES_FILES} ${C/CPP FILES})
于 2013-11-14T07:40:26.123 回答
2

使用 Cmake 在 Qt 项目中包含着色器文件的另一种方法是通过 CMake 命令qt5_add_resourcesQt 的其中一个示例在使用 qmake 时也是如此。对于我的应用程序,我发现将着色器文件作为资源包含在内更为实用。

因此,为此,您必须准备一个资源文件,例如 ,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}
)

重新构建后,项目树将如下所示:

将着色器添加为 qrc 文件

于 2016-08-12T18:00:11.000 回答
0

您可以将着色器文件添加为文件中的其他.pro 文件。

OTHER_FILES += \
    simple.frag \
    simple.vert

此外,您应该考虑对着色器文件使用 QT 资源管理。我最近在 Qt 中创建了一个简单的 OpenGL 3.2 示例项目,其中还展示了如何使用 Qt 对着色器文件进行资源管理。该项目可在此处获得:https ://github.com/mortennobel/QtOpenGL3.2Core

警告:该项目仅在 Windows 和 OS/X 上进行测试。

于 2012-11-25T10:37:14.967 回答