2012-11-24 3 views
2

Je travaille ici sur le tutoriel OpenGL: OpenGL-Tutorial.org, et je souhaite utiliser QTCreator et CMake pour compiler les exemples. L'ouverture du fichier racine CMakeLists.txt ouvre le projet, qui construit/fonctionne correctement (après avoir suivi les instructions sur le site Web), mais les fichiers fragment et vertex n'apparaissent pas dans le volet des projets. J'ai essayé de les renommer en .frag, .vert et .glsl sans effet. Si je fais glisser ces fichiers à partir d'un dossier, ils s'ouvrent dans le volet d'édition avec la coloration syntaxique correcte.Inclusion de fichiers GLSL dans le volet projet dans un projet QTCreator CMake

Comment puis-je faire apparaître ces fichiers dans le volet des projets? Je suis sur Ubuntu 20.04 et j'ai essayé QTCreator de paquets et la source la plus récente sur sourceforge.

+0

Ils ne sont pas censés probablement. Ils sont chargés et compilés à l'exécution; ils ne devraient pas faire partie du projet lui-même. –

+0

Dans le cas où quelqu'un d'autre vient ici - j'ai utilisé GLFW, qui est As. – derekdreery

Répondre

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

add_executable(exe_name ${RES_FILES} ${C/CPP FILES}) 
+1

+1 ou fichier (GLOB_RECURSE RES_FILES * .frag * .vert * .glsl) add_executable (exe_name $ {RES_FILES}) si vos fichiers de shader ne se trouvent pas dans votre dossier cmakelist.txt et que vous n'ajoutez pas de fichiers sources normaux. – steventaitinger

0

Vous pouvez ajouter les fichiers de nuanceurs sous la forme d'autres fichiers dans le fichier .pro.

OTHER_FILES += \ 
    simple.frag \ 
    simple.vert 

Vous devriez également envisager d'utiliser la gestion des ressources QT pour vos fichiers shader. J'ai récemment créé un simple exemple de projet OpenGL 3.2 dans Qt, qui montre également comment utiliser le Qt pour la gestion des ressources des fichiers shader. Le projet est disponible ici: https://github.com/mortennobel/QtOpenGL3.2Core

Attention: le projet est uniquement testé sous Windows et OS/X.

+0

Je n'ai pas de fichier .pro car j'utilise CMake pour compiler le programme, plutôt que qmake. – derekdreery

1

Une autre façon d'inclure des fichiers de shaders dans votre projet Qt en utilisant Cmake est par la commande CMake qt5_add_resources. One of the Qt's examples fait la même chose lors de l'utilisation de qmake. Pour mon application, j'ai trouvé plus pratique d'inclure les fichiers shader en tant que ressources.

Alors, pour cela, vous devez préparer un fichier de ressources, par exemple, Shaders.qrc, et ajouter tous les fichiers de shaders que vous souhaitez utiliser, par exemple:

<RCC> 
    <qresource prefix="/"> 
     <file>Stroke.frag</file> 
     <file>Stroke.geom</file> 
     <file>Stroke.vert</file> 
    </qresource> 
</RCC> 

Ensuite, dans le CMakeLists.txt, ajouter le fichier de ressources:

qt5_add_resources(SHADER_RSC_ADDED 
    Shaders/Shaders.qrc 
) 

et l'ajouter à l'exécutable (ou bibliothèque):

add_executable(${PROJECT_NAME} 
    ${PROJECT_SRCS} 
    ${SHADER_RSC_ADDED} 
) 

Après re-construction, l'arborescence du projet ressemblera ci-dessous:

Added shaders as qrc file

Questions connexes