2012-01-18 7 views
1

私はWindows上でOpenGLアプリケーションを作成しています。私は複数のウィンドウにレンダリングしたいので、GLUTを使うことはできません。私はwglを使用してそれを行う方法を知っていますが、それは非常に面倒であり、私はボンネットの下で何が起こっているか知りたいと思います。OpenGL on Windows intern

まず、目的のピクセル形式のウィンドウを作成する必要があります。このウィンドウをOpenGLに接続するとすべてが機能しています。運転手はどのようにしてレンダリングするのですか?ウィンドウデータはどこに保存されていますか?私はある種の説明を探していますが、良いものは見つけられません。

+2

"複数のウィンドウにレンダリングしたいので、GLUTを使用できません。" FreeGLUTで複数のウィンドウを作成できます。 –

+1

誰かがこの[link](http://www.mesa3d.org/dispatch.html)を投稿し、それを削除しました。私はそれが有用であることを発見しました。 – runnydead

答えて

3

私はwglを使用してそれを行う方法を知っていますが、非常に乱雑ですし、ボンネットの下で何が起こっているのか知りたいと思います。

WGLは、「フードの下」と同じです。つまり、は、HWNDからOpenGLコンテキストを作成するためのインターフェイスです。あなたはそれ以上の低レベルを得ることは許されません。

ドライバはどのようにしてレンダリングするのですか?ウィンドウデータはどこに保存されていますか?

デバイスコンテキストであるHDCは、HWNDでのレンダリングの仕組みです。 wglMakeCurrentはHDCを取ります。ではなく、は、コンテキストが作成されたHDCでなければなりません(単純に同じピクセル形式を使用する必要があります)。だから、「どこからレンダリングするか」は、その関数から来ています。

これらはすべて、WindowsおよびOpenGLのWindows Installable Client Driverモデルに内部的に格納されています。あなたはそれを突き刺すこと、変更すること、またはそれを見ることさえできません。あなたは単にそれを使うことができます。