GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie erstellt man ein Fenster in Linux mit C++?

Für OpenGL ist es am einfachsten, GLUT oder SDL zu verwenden. Hier ist ein ungefähres Beispiel mit GLUT:

#include <GL/glut.h>

int main (int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
    glutInitWindowSize(800, 600);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("My new window");
    /* ... */
}

Sie möchten wirklich vermeiden, Xlib direkt zu verwenden, da es äußerst mühsam ist, es zu verwenden. Darüber hinaus erleichtern GLUT und SDL die Portierung Ihrer OpenGL-Anwendung auf verschiedene Plattformen.


Das X-Window-System übernimmt im Allgemeinen das Zeichnen – Sie verwenden dann ein Toolkit wie Qt oder GTK auf der Basis von Roh-Xlib, um Ereignisschleifen, Drag-and-Drop, das Starten von Apps auf Mausklicks und all das andere „Desktop“-Zeug bereitzustellen.

Es ist ziemlich einfach, direkt mit Xlib und Opengl zu arbeiten, oder wenn Sie nur Opengl lernen möchten, bietet Glut das Framework, das Sie benötigen, um ein Fenster anzuzeigen, Maus-/Tastaturereignisse zu handhaben und so weiter.


Aktualisierte Antwort für 2019. Unix-ähnliche Systeme verwenden normalerweise das X-Window-System. Sie können direkt damit arbeiten, indem Sie Xlib verwenden, dies ist die Low-Level-API. Aber Sie brauchen wahrscheinlich eine einladendere und plattformübergreifende Lösung. Sie können Folgendes verwenden:

  • OpenGL Utility Toolkit - GLUT
  • Einfache und schnelle Multimedia-Bibliothek - SFML
  • Einfache DirectMedia-Schicht - SDL
  • Graphics Library Framework - GLFW (meine Empfehlung)

GLFW ist in C geschrieben und bietet native Unterstützung für Windows, macOS und viele Unix-ähnliche Systeme, die das X Window System verwenden, wie Linux und FreeBSD.

Erstellen Sie nach der Installation ein Fenster mit :

#include <GLFW/glfw3.h>
.
. //Entry and glfwInit()
.
GLFWwindow* window = glfwCreateWindow(1000, 1000, "MyWindow", NULL, NULL);
glfwMakeContextCurrent(window);

Linux
  1. Wie sind Sie zu Linux gekommen?

  2. So erstellen Sie einen Benutzer mit einem benutzerdefinierten Home-Verzeichnis in Linux

  3. Linux – Wie integriere ich Sound in Desktop-Events?

  4. So erstellen Sie ein ZFS-Dateisystem mit Dateikomprimierung unter Linux

  5. Wie verwenden Sie reguläre Ausdrücke mit dem cp-Befehl in Linux?

So erstellen Sie eine Datei unter Linux

So erstellen Sie Verknüpfungen auf dem Linux-Desktop

So erstellen Sie Multiboot-USB-Laufwerke mit Ventoy unter Linux

So erstellen Sie einen SSH-Alias ​​unter Linux

So erstellen Sie eine Volumengruppe in Linux mit LVM

So erstellen Sie ein E-Book mit Calibre unter Linux [Vollständige Anleitung]