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);