Ich erwartete eine Linux-API ähnlich der Windows-API. Alles, was ich auf Google sehe, sind Verweise auf Qt und GTK. Ich brauche wirklich nicht mehr als ein einfaches Fenster mit OpenGL, so dass diese Bibliotheken aufgebläht für meine Verwendung erscheinen. Was benutzen Qt und GTK um Windows unter Linux zu erstellen? Gibt es nichts Niedrigeres?Wie erstellen Sie ein Fenster in Linux mit C++?
Antwort
Das X-Window-System führt im Allgemeinen die Zeichnung - Sie verwenden dann ein Toolkit wie Qt oder GTK auf rohe Xlib, um Ereignisschleifen, Drag & Drop, Apps auf Mausklicks und alle anderen 'Desktop' Zeug
Es ist ziemlich einfach, direkt mit Xlib and opengl zu arbeiten, oder wenn Sie nur opengl lernen möchten, bietet die glut das Framework, das Sie benötigen, um ein Fenster anzuzeigen, Maus/Tastatur Ereignisse und so weiter zu behandeln.
Im Prinzip könnten Sie sogar Xlib vermeiden und einfach das rohe X11-Protokoll übertragen (und empfangen und interpretieren). Aber das ist nicht vernünftig. –
Für OpenGL ist der einfachste Weg, es zu tun mit GLUT oder SDL. 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 sehr mühsam zu verwenden ist. Außerdem erleichtern GLUT und SDL das Portieren Ihrer OpenGL-Anwendung auf verschiedene Plattformen.
Wie erhalten Sie Zugriff auf die Grafikebene für OpenGL? –
@LokiAstari: Wenn Sie eine Art undurchsichtiger Typ meinen, der den Zeichenstatus enthält, weiß ich nicht wirklich. Als ich in OpenGL (zurück in Version 1.2) Code einprogrammierte, gab es nur einen globalen Platz zum Zeichnen, der intern von der OpenGL-Implementierung behandelt wurde. – C2H5OH
Ax Martin sagte, X11 (oder seine Gabel XOrg in diesen Tagen) ist das Windowing-System, aber Sie können X11-Anwendungen (d. H. Clients) schreiben, ohne ein Toolkit zu verwenden, nur mit den X-Bibliotheken. Informationen zur Dokumentation finden Sie unter here.
Es ist im Allgemeinen nicht die beste Idee, dies zu tun, da es ziemlich schmerzhaft ist und viel Code für relativ einfache Anwendungen benötigt, um so zu arbeiten, wie Sie es erwarten.
- 1. ein Fenster in c Erstellen ++
- 2. Ein transparentes Fenster in C++ erstellen Win32
- 3. Erstellen Sie ein neues Fenster mit NSWindow
- 4. erstellen Sie ein Fenster opencv
- 5. Transparente Fenster mit Linux
- 6. Erstellen Sie eine Datei in Linux mit C
- 7. So erstellen Sie ein Popup-Fenster
- 8. Erstellen Sie ein Countdown-Dialogfeld für ein Linux-Terminal?
- 9. Erstellen Sie ein HUD-Fenster programmgesteuert
- 10. Erstellen Sie eine NW.js ohne ein Fenster
- 11. Erstellen Sie ausführbare Anwendung in Linux
- 12. C++ Fenster in einem anderen erstellen
- 13. Wie erstellen Sie ein freistehendes C++ - Programm?
- 14. PyQt5: Erstellen Sie ein halbtransparentes Fenster mit nicht transparenten Kindern
- 15. So erstellen Sie ein nicht interaktives Fenster in MFC
- 16. Erstellen einer Anwendung ohne ein Fenster
- 17. Erstellen Sie ein benutzerdefiniertes Fenster in Google Maps V2
- 18. Erstellen Sie ein Array mit Strukturen in C
- 19. erstellen Sie ein Pop-up-Fenster in Funktion
- 20. Wie Fenster Gruppenkonto mit C#
- 21. Erstellen Sie ein Audiogerät Klon Eingang in Linux
- 22. Erstellen Sie ein Vorschaubild eines DWG in einer Linux-Umgebung
- 23. Wie soll ich ein Kind-Fenster in Win32 während der Programmierung mit C++ erstellen?
- 24. Ein Fenster oben in einer Anwendung erstellen
- 25. Öffnen Sie ein zweites Fenster in PyQt
- 26. Erstellen Sie ein Dock wie Anwendung mit C# und WPF
- 27. Wie kann ich ein Tray-Icon in Linux mit C++ erstellen?
- 28. Linux: Erstellen Sie automatisch C++ Makefile aus bestimmten Quelldateien
- 29. Erstellen Sie ein Diagramm in Excel mit C#
- 30. Locking Dateien in Linux mit C/C++
Die X Windows-API ist in der Regel die API der niedrigsten Ebene für generische "Windowing" auf * nix. http://tronche.com/gui/x/xlib/introduction/ – Chad
Ich bin neugierig: Warum sollten Sie erwarten "Linux Api" (was auch immer Sie damit genau gemeint), um Winampi gleich zu sein? – PlasmaHH
Sie wollen wirklich nicht tiefer gehen. Verwenden Sie eine der Abstraktionen auf höherer Ebene (QT/GTK/WxLib/More), sonst werden Sie in vielen Detailfragen hängen bleiben, die Sie nicht behandeln wollen, wenn die übergeordneten Frameworks sich darum kümmern. Sie alle ermöglichen es Ihnen, eine OpenGL-Ebene zu erhalten und darauf zu zeichnen. –