GNU/Linux >> Linux の 問題 >  >> Linux

C++ を使用して Linux でウィンドウを作成するにはどうすればよいですか?

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

Linux
  1. Linux –サウンドをデスクトップイベントと統合する方法は?

  2. Linux でスレッドを作成する方法 (C サンプル プログラムを使用)

  3. Linux でファイル圧縮を使用して ZFS ファイルシステムを作成する方法

  1. Linuxで特定のサイズのファイルを作成するには?

  2. C++/Linux でディレクトリ ツリーを作成するにはどうすればよいですか?

  3. Linux の cp コマンドで正規表現をどのように使用しますか?

  1. Linuxを始めたきっかけは何ですか?

  2. Linuxコマンドのスクリプトを作成する方法

  3. Linuxでカスタムホームディレクトリを使用してユーザーを作成する方法