2

Win32 API を使用して OpenGL を使用しています。そのため、wgl (Wiggle) を使用しています。すべて順調。FREEGLUT ライブラリからいくつかの形状を使用したい場合を除きます。たとえば、ティーポット。freeglutのソースコードを見ていたら、glutSolidTeaPot(1.0);を発行するとどうやら 、マクロのためにプログラムが存在します: FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidSphere" ); これは、exit(1) を持つ fgerror を呼び出します。

したがって、私が得ている症状は明らかです。GLUTコマンド(ティーポットなど)なしでOPENGLプログラムを実行すると、うまく機能します。ティーポットを使用すると終了します。

初期化が不足していることは明らかです。問題は、wgl コンテキストで形状に使用される glut を初期化できるかどうか (およびその方法) です...これが不可能な場合は、自分で形状を作成できると思います。可能であれば、それらを使用する方が高速です。

これまでに見つけたすべての例は、glut のみで作業しているときに glut を初期化する方法を示しています。

Windows 7 64、Visual Studio 2012、NVIDIA 330m、FreeGlut を使用しています

4

2 に答える 2

3

FreeGLUTは、部分的に使用することを意図したものではありません。これは、OpenGLレンダリングコンテキストを作成および管理するためのシステムです。ユーティリティ機能がありますが、主な目的はウィンドウの作成と管理です。したがって、OpenGLの作成と管理にFreeGLUTを使用していない場合は、他の目的にも使用できません。

于 2013-02-03T20:26:29.563 に答える
0

GLUT と WGL (Wiggle) を組み合わせることはできないようですが (当然のことですが)、コードを調べたところ、これを変更して動作させることができるようです。もちろん、なぜそれを機能させるのですか?GLUT (FreeGlut) には追加のユーティリティがあるため... 球体の作成など... より良いアプローチは、これらすべてを行う最新のライブラリを作成することです... もちろん、いくつかのジオメトリ ライブラリが存在しますが、しかし、私はそれらをチェックしていません。私はAUXライブラリに似たものを話していますが、最新です。

于 2013-02-07T16:58:55.790 に答える