Comment voulez-vous créer une fenêtre dans Linux avec C++?
Je m'attendais à un Linux API similaire à l'API de Windows. Tout ce que je vois sur Google est des références à Qt et GTK. Je n'ai vraiment pas besoin de rien de plus qu'une simple fenêtre à dessiner avec OpenGL, de sorte que ces bibliothèques apparaissent lourd pour mon utilisation. Ce n'Qt et GTK utiliser pour créer windows sous Linux? Est-il rien de plus bas niveau?
- Le X de l'API Windows est généralement le plus bas niveau de l'API générique de "Fenêtrage" sur *nix. tronche.com/gui/x/xlib/introduction
- Je suis curieux: pourquoi devrait-on s'attendre à "linux api" (ce que vous voulez dire par là exactement), être la même que winapi?
- Vous ne voulez vraiment pas aller plus bas niveau. Utilisez l'une des plus élevée au niveau des abstractions (QT/GTK/WxLib/Plus) sinon vous serez coincé dans beaucoup de minutie que vous ne voulez pas gérer que la hausse du niveau des cadres de prendre soin off. Ils vous permettent d'obtenir une couche OpenGL et tirer sur elle.
- Si quelqu'un pose la plus faible possible API, veuillez répondre à cette question. Veuillez ne pas parler de "pourquoi l'utiliser, l'utiliser, le ....".
Vous devez vous connecter pour publier un commentaire.
Le système X window n'a généralement le dessin, puis à utiliser une boîte à outils tels que l'intervalle Qt ou GTK sur le dessus de la crue de la Xlib pour fournir une boucle d'événement, faites glisser et déposer, à partir des applications sur mouseclicks et tous les autres "bureau" trucs
Il est assez facile de travailler directement avec les Xlib et opengl ou si vous voulez juste apprendre opengl le glut fournit le cadre pour afficher une fenêtre, poignée de souris/clavier et les évènements.
Pour OpenGL, la meilleure façon de le faire est par l'utilisation de GLUT ou SDL. Voici un approximatif exemple à l'aide de GLUT:
Vous voulez vraiment éviter à l'aide de la Xlib directement que c'est extrêmement pénible à utiliser. En outre, GLUT et SDL faciliter le port de votre application OpenGL pour différentes plates-formes.
Ax Martin a dit, X11 (ou sa fourche XOrg ces jours-ci) est le système de fenêtrage, mais vous pouvez réellement écrire des applications X11 (c'est à dire les clients) sans l'aide d'une boîte à outils, simplement en utilisant les bibliothèques de X. Voir ici pour la documentation.
Il n'est généralement pas la meilleure idée pour le faire, comme il est assez douloureuse et impliquera beaucoup de code pour relativement simples applications de fonctionner comme vous le souhaitez.
Mise à jour de réponse pour 2019. Systèmes Unix utilise normalement le système X window. Vous pouvez travailler directement avec elle à l'aide de la Xlib c'est le faible niveau de l'API. Mais vous avez probablement besoin d'un endroit plus accueillant et solution multi-plateforme. Vous pouvez utiliser l'OpenGL Utility Toolkit - GLUT ou le Simple et Rapide de la Bibliothèque Multimédia - SMFL ou le Simple DirectMedia Layer - SDL, ou GLFW je recommande GLFW
Une fois installé, créer une fenêtre avec :