PROFILEGLEWを使ったOpenGL拡張NVIDIAのSDK10にGLEWというライブラリが含まれています。OpenGL拡張を簡単に使うようにするためのライブラリみたいなので、早速インストールしてみました。これまで、OpenGL1.2以降のgl関数や、プラットホーム依存の関数を使用するには、wglGetProcAddressにより関数へのポインタを取得する必要がありましたが、これも不要になることが分かったので、今後はこれを使ったサンプルにしようと思います。次のサイトからGLEWをダウンロードします。Linux(Fedora)で使用したい方は、「FedoraでOpenGL」を参考にしてください。Library)2007年4月現在の最新はv1.3.6でしたので、バイナリのglew-1.3.6-win32.zipをダウンロードします。ZIPファイルを展開すると、インクルードファイルやライブラリができるので、各々を下記のディレクトリにコピーします。4月27日にv1.4.0がリリースされたようです。1.4.0にアップし、これまでのプログラムも問題なく動くことを確認しました。インストール方法もこれまで通りです。1.4.0は若干バグ修正されているようなので、新しい方をお勧めします。C:\WINDOWS\system32この後、プログラムがインクルードしているヘッダーを次のように変更します。wglew.hのインクルードに置き換えます。Expressの「プロジェクト」メニューの「プロパティ」を選びます。すると、次のようなダイアログがでてくるので、「構成プロパティ」-「リンカ」-「入力」の選択し、「追加の依存ファイル」部分に、glew32.libを追加します。この後、main関数において、次のようにglewInit関数を一度呼び出すことで、GL1.2以降のgl関数、プラットホーム依存の関数wgl***、そしてベンダー独自の関数をwglGetProcAddressを呼ばずに使用することができます。}前回の頂点バッファ系の関数をwglGetProcAddressを使用せずに直接呼び出すプログラムを作成しました。ダウンロードしたファイルには、bin/visualinfo.exeというファイルがあり、これを実行すると、visualinfo.txtというファイルができます。これには、自分のPCで使用可能なプラットホーム依存の関数やベンダー独自の関数が次のような感じでリストアップされます。この中で、スワップするタイミングを制御可能な関数WGL_EXT_swap_controlを使います。これまでNVIDIAのコントロールパネルで設定していた垂直同期の制御をプログラムでコントロールできるようになります。今回は、main.cにあるkeyboard関数を変更しました。次のように、「s」が押されたときに、垂直同期待ちをオフにしたり、1回待つ設定にします。この設定は、wglSwapIntervalEXTで可能です。}}この関数が使用できるかどうかは、glewGetExtension("拡張名")でを判定可能です。拡張名が分からない場合は、GLEWのサイトにあるの次のサイトを参考にしてください。GLEWがサポートするOpenGL拡張GLEWがサポートするWindows拡張プログラムを動かせば、次のような絵が描画されるので、「s」を押してみてください。高速に回転することが分かると思います。Linux(Fedora)用に移植したプログラムも作成しました。(2007/06/19)これまでのサンプルでは、wglext.hやglext.hを使用していましたが、それらのファイルを消す必要がないところも、いいですね。気に入ってしまいました。