web-dev-qa-db-ja.com

フリーグルト対グローの違いは?

私は最近OpenGL(> 3.3)の学習を始めました。多くの例とチュートリアルがfreeglutとglewの両方を使用していることに気付きましたが、実際には違いをまったく説明していません。グーグルで広告の吐き気を読んだ後、私が見つけた最高の説明は、これです OpenGL関連のツールキットとAPI ですが、欠けていることがわかりました。 SOのタグ情報も読みました。

OpenGLを初めて使う人として、私はまださまざまな概念を把握しようとしています。グローを使用した基本的なプログラムの作成、コンテキストの作成(Windows、VS2010)、および基本的なシェイプの描画の段階に進みました。すべて、明示的にフリーグルトを含める必要はありません。だから、なぜ必要なのか理解できません。

だから私の質問は、differenceの違いは何ですか:
-freeglut
-glew
-(&glfw)
一方ができないこと、他方ができないこと

41
ReturnVoid

OpenGL Extension Wrangler([〜#〜] glew [〜#〜])は、最新のOpenGL API関数にアクセスするために使用されます(バージョン3.2から最新バージョン).OpenGLの古いバージョンを使用する場合、単に#include <GL/gl.h>。しかし、最新のOpenGLでは、API関数はコンパイル時ではなく実行時に決定されます。 GLEWはOpenGL APIのランタイムローディングを処理します。GLEWについては here を参照してください。

[〜#〜] glfw [〜#〜]またはfreeglutはウィンドウを作成し、クロスプラットフォームでマウスとキーボードの入力を受け取ることができます。 OpenGLはウィンドウの作成や入力を処理しないため、これらのライブラリを使用して、ウィンドウ、キーボード、マウス、ジョイスティック、入力などの目的を処理する必要があります。

[〜#〜] glfw [〜#〜]およびfreeglutは必要に応じて私たちの代わりに、いずれかを選択できますが、[〜#〜] glew [〜#〜]は、 OpenGL APIの実行時ロード。

51
Dinesh Subedi

私は大学でいくつかの仕事にそれらの両方を使用しています。

[〜#〜] glew [〜#〜] は「クロスプラットフォームのオープンソースC/C++拡張ローディングライブラリ」(Webサイトから)である一方、 freeglut はデフォルトのOpenGL Utility Toolkit(GLUT)ライブラリを置き換えるウィンドウマネージャー。

したがって、ご覧のとおり、両方とも異なる目的を持っています。 freeglutを使用するポイントは、デフォルトのGLUTが保持されていないのに、それがまだ維持されているということです。したがって、バグ修正や新機能が必要な場合は、それを使用する必要があります。

1
mrcasals