43

私が見つけることができるすべての紹介とサンプルは、GLUTまたは他のフレームワークを使用してOpenGLを「初期化」しているようです。GL と GLU で利用できるものだけで OpenGL を初期化する方法はありますか? そうでない場合、それなしでは不可能な GLUT の機能は何ですか?

4

7 に答える 7

37

luke が指摘したように、コンテキストを作成してバインドするコードは、各ウィンドウ プラットフォームに固有です。

特定のプラットフォームでの OpenGL の初期化に関して、いくつかの機能を開始できます。

Windows (チュートリアルはこちら)

  • wglCreateContext(hDC)

Mac OS X -- OS X には基本的に 3 つのオプションがあります。Carbon、Cocoa、およびその下にある Core Graphics Layer です。

Linux

  • glx : glXCreateContext
于 2009-05-18T18:30:43.360 に答える
4

あなたがしているのは、OpenGLコンテキストでウィンドウを初期化することです。これには、オペレーティングシステムへの呼び出しが必要です。gl.hとglu.hだけでOpenGLを初期化することはできません。 GLUT(またはSDLSMFLなど)は、プラットフォームに依存しない優れた方法で機能します。ネイティブ呼び出しを使用して初期化を行うこともできます。

于 2009-05-18T18:10:14.337 に答える
2

GLUTソースコードを取得して、関係するプラットフォームのinitコードを確認できます。

于 2009-05-18T18:15:04.700 に答える
-1

GL は API であり、GLU は GL 上のユーティリティ ライブラリです。オペレーティング システムに完全に依存しません。

OpenGL の初期化と拡張機能の取得は、プラットフォームに依存する操作です。したがって、OpenGL だけでは何もできません。

GLUT は高速では不十分で、ひどく貧弱なライブラリです。それは、opengl コンテキストを初期化し、いくつかの基本的なマウス/キーボード入力モジュールを提供して作業を続行させることだけです。

Win32 には、opengl コンテキストを初期化するツールも用意されています。Linux の場合、GLX を確認できます。また、システムに依存しない方法が必要な場合は、SDL を調べることができます。さまざまなプログラミング言語に対して、プラットフォームに依存しないデスクトップ API を提供するユーティリティが存在する場合があります。

于 2009-05-18T18:27:59.103 に答える
-1

Galaxy Forces V2 のソース ( http://www.galaxy-forces.com/ ) を確認できます。

Windows、Mac、および Linux で GLUT やその他のライブラリを使用せずに OpenGL のクラスを実装します。ネイティブ プラットフォーム コードを使用し、すべてパブリック ドメインです。

于 2011-12-22T13:37:09.943 に答える
-2

GLUTを使用せずにOpenGLを初期化する方法(ウィンドウを想定)の基本的で優れた紹介を次に示します。

GLUT なしで OpenGL を初期化する

Luke が言ったように、GLUT を使用したくない場合は、開発しているオペレーティング システムに関する特定の情報が必要です。GLUT を使用すると、コードの移植が容易になります。

于 2009-05-18T18:23:27.490 に答える