GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo se crea una ventana en Linux con C++?

Para OpenGL, la forma más fácil de hacerlo es usando GLUT o SDL. Aquí hay un ejemplo aproximado usando 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");
    /* ... */
}

Realmente desea evitar usar Xlib directamente, ya que es extremadamente tedioso de usar. Además, GLUT y SDL facilitan la migración de su aplicación OpenGL a diferentes plataformas.


El sistema de ventanas X generalmente hace el dibujo:luego usa un conjunto de herramientas como Qt o GTK encima de Xlib sin procesar para proporcionar bucles de eventos, arrastrar y soltar, iniciar aplicaciones con clics del mouse y todas las demás cosas de 'escritorio'

Es bastante fácil trabajar directamente con Xlib y opengl o, si solo desea aprender opengl, glut proporciona el marco que necesita para mostrar una ventana, manejar eventos de mouse/teclado, etc.


Respuesta actualizada para 2019. Los sistemas similares a Unix normalmente usan el sistema de ventanas X. Puede trabajar con él directamente usando Xlib, esta es la API de bajo nivel. Pero es probable que necesite una solución más acogedora y multiplataforma. Puedes usar:

  • Kit de herramientas de utilidad OpenGL - GLUT
  • Biblioteca multimedia simple y rápida - SFML
  • Capa de DirectMedia simple - SDL
  • Framework de la biblioteca de gráficos - GLFW (mi recomendación)

GLFW está escrito en C y tiene soporte nativo para Windows, macOS y muchos sistemas similares a Unix que utilizan el sistema X Window, como Linux y FreeBSD.

Una vez instalado, cree una ventana con:

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

Linux
  1. Cómo crear un usuario con un directorio de inicio personalizado en Linux

  2. Linux:¿cómo integrar el sonido con los eventos de escritorio?

  3. Cómo crear subprocesos en Linux (con un programa de ejemplo en C)

  4. Cómo crear un sistema de archivos ZFS con compresión de archivos en Linux

  5. ¿Cómo usa expresiones regulares con el comando cp en Linux?

Cómo crear un archivo en Linux

Cómo crear accesos directos en el escritorio de Linux

Cómo crear unidades USB de arranque múltiple con Ventoy en Linux

Cómo crear un alias SSH en Linux

Cómo crear un grupo de volúmenes en Linux con LVM

Cómo crear un libro electrónico con Calibre en Linux [Guía completa]