OpenGL の場合、最も簡単な方法は GLUT または SDL を使用することです。 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");
/* ... */
}
Xlib を直接使用するのは非常に面倒なので、本当に避けたいと思います。さらに、GLUT と SDL を使用すると、OpenGL アプリケーションをさまざまなプラットフォームに簡単に移植できます。
通常、X ウィンドウ システムが描画を行います。次に、Qt や GTK などのツールキットを未加工の Xlib 上で使用して、イベント ループ、ドラッグ アンド ドロップ、マウス クリックによるアプリの起動、その他すべての「デスクトップ」機能を提供します。
Xlib と opengl を直接操作するのはかなり簡単です。また、opengl を学びたいだけの場合は、ウィンドウの表示、マウス/キーボード イベントの処理などに必要なフレームワークが提供されます。
2019 年の回答を更新しました。通常、Unix ライクなシステムは X ウィンドウ システムを使用します。低レベル API である Xlib を使用して直接操作できます。しかし、より快適でクロスプラットフォームなソリューションが必要になる可能性があります。以下を使用できます:
- OpenGL ユーティリティ ツールキット - GLUT
- シンプルで高速なマルチメディア ライブラリ - SFML
- 単純な DirectMedia レイヤー - SDL
- Graphics Library Framework - GLFW (私の推奨)
GLFW は C で記述されており、Windows、macOS、および Linux や FreeBSD などの X Window System を使用する多くの Unix 系システムをネイティブでサポートしています。
インストールしたら、次のウィンドウを作成します:
#include <GLFW/glfw3.h>
.
. //Entry and glfwInit()
.
GLFWwindow* window = glfwCreateWindow(1000, 1000, "MyWindow", NULL, NULL);
glfwMakeContextCurrent(window);