GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvoříte okno v Linuxu s C++?

Pro OpenGL je nejjednodušší použít GLUT nebo SDL. Zde je přibližný příklad použití 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");
    /* ... */
}

Opravdu se chcete vyhnout přímému používání Xlib, protože je extrémně zdlouhavé. GLUT a SDL navíc usnadňují portování vaší OpenGL aplikace na různé platformy.


Systém X window obecně provádí kreslení – poté použijete sadu nástrojů, jako je Qt nebo GTK nad nezpracovaným Xlibem, abyste poskytli smyčky událostí, přetahování, spouštění aplikací kliknutím myši a všechny ostatní „desktopové“ věci

Je poměrně snadné pracovat přímo s Xlib a opengl, nebo pokud se chcete naučit opengl, glut poskytuje rámec, který potřebujete k zobrazení okna, zpracování událostí myši/klávesnice a tak dále.


Aktualizovaná odpověď pro rok 2019. Systémy podobné Unixu běžně používají systém X window. Můžete s ním pracovat přímo pomocí Xlib, což je nízkoúrovňové API. Pravděpodobně však potřebujete vstřícnější a víceplatformní řešení. Můžete použít:

  • OpenGL Utility Toolkit – GLUT
  • Jednoduchá a rychlá multimediální knihovna – SFML
  • Jednoduchá vrstva DirectMedia – SDL
  • Graphics Library Framework – GLFW (moje doporučení)

GLFW je napsán v C a má nativní podporu pro Windows, macOS a mnoho unixových systémů využívajících X Window System, jako je Linux a FreeBSD.

Po instalaci vytvořte okno s :

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

Linux
  1. Linux – jak integrovat zvuk s událostmi na ploše?

  2. Jak vytvářet vlákna v Linuxu (pomocí ukázkového programu C)

  3. Jak vytvořit systém souborů ZFS pomocí komprese souborů v systému Linux

  1. Jak jste začali s Linuxem?

  2. Jak vytvořit skript příkazu Linux

  3. Jak vytvořit soubor s danou velikostí v Linuxu?

  1. Jak vytvořit uživatele s vlastním domovským adresářem v Linuxu

  2. Jak mohu vytvořit strom adresářů v C++/Linux?

  3. Jak používáte regulární výrazy s příkazem cp v Linuxu?