GNU/Linux >> Linux Esercitazione >  >> Linux

Come si crea una finestra in Linux con C++?

Per OpenGL, il modo più semplice per farlo è utilizzare GLUT o SDL. Ecco un esempio approssimativo che utilizza 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");
    /* ... */
}

Vuoi davvero evitare di usare Xlib direttamente perché è estremamente noioso da usare. Inoltre, GLUT e SDL semplificano il porting della tua applicazione OpenGL su diverse piattaforme.


Il sistema X window generalmente esegue il disegno:quindi utilizzi un toolkit come Qt o GTK sopra Xlib grezzo per fornire loop di eventi, trascinamento della selezione, avvio di app con clic del mouse e tutte le altre cose "desktop"

È abbastanza facile lavorare direttamente con Xlib e opengl o se vuoi solo imparare opengl il glut fornisce il framework necessario per visualizzare una finestra, gestire gli eventi del mouse/tastiera e così via.


Risposta aggiornata per il 2019. I sistemi simili a Unix normalmente utilizzano il sistema X window. Puoi lavorarci direttamente usando Xlib questa è l'API di basso livello. Ma probabilmente hai bisogno di una soluzione più accogliente e multipiattaforma. Puoi usare:

  • OpenGL Utility Toolkit - GLUT
  • Libreria multimediale semplice e veloce - SFML
  • Livello DirectMedia semplice - SDL
  • Graphics Library Framework - GLFW (la mia raccomandazione)

GLFW è scritto in C e ha il supporto nativo per Windows, macOS e molti sistemi simili a Unix che utilizzano il sistema X Window, come Linux e FreeBSD.

Una volta installato, crea una finestra con :

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

Linux
  1. Come hai iniziato con Linux?

  2. Come creare uno script di un comando Linux

  3. Come creare un utente con una home directory personalizzata in Linux

  4. Come creare thread in Linux (con un programma di esempio C)

  5. Come creare un file con una determinata dimensione in Linux?

Come creare un file in Linux

Come creare collegamenti su desktop Linux

Come creare unità USB multiboot con Ventoy in Linux

Come creare alias SSH in Linux

Come creare un gruppo di volumi in Linux con LVM

Come creare un ebook con Calibre in Linux [Guida completa]