2016-05-15 12 views
3

私はWindows 10でOpenGLの最新ドライバを使ってC#を試してみようとしていますが、見つけようとしています。vedorのWindows用OpenGLドライバはどこにありますか?

標準ドライバOpeng32.dllは、%systemroot%\system32にありますが、これは古いもので、Microsoftのものと思われますが、そうですか?

ため、私は、次のコマンドを使用しての、この結論に達しました:

dumpbin opengl32.dll /exports

をAND関数が見つかりました:glLoadIdentity, glMultMatrix, glTranslate, glRotateは廃止されているように私には、この機能を覚えていたよう

11 A 00090330 glBegin

を独自の&シェーダを使用して行列演算を行う必要があるため、OpenGL 3.2以降では含まれていません。

OK、私はC:\Program Files\NVIDIA Corporation(私のビデオカードのベンダーは、NVIDIAある)NVidiaのディレクトリで検索し始めるが、唯一のOpenCLドライバC:\Program Files\NVIDIA Corporation\OpenCLを発見した:

  • OpenCL.dll
  • OpenCL64.dll

これらのどれも完全にダンプされています:dumpbin /exports しかし、私はここでOpenGLドライバを正確に見つけることができません。たぶんそれはnvdisps.dllのような特定の名前を持っているのでしょうか?

PS(について、あなたは私に言わせれば)

  • 私はより多くのこのようなもの
  • のためのC++を使用することをお勧めしますことを、知っている私はすでに行われたライブラリを使用したくない
  • 私が欲しいですP/Invokeものとばかりは実際のOpenGLドライバに向けて「コンジット」としてC#
+0

[FAQ - OpenGL.org:Windowsではどのように機能しますか?](https://www.opengl.org/wiki/FAQ#How_Does_It_Work_On_Windows.3F) – IInspectable

答えて

2

opengl32.dll行為、いわゆる「ICD」(インストール可能クライアントドライバ)でそれをやろう。 OpenGLはWin32-APIアプリケーションバイナリインタフェースコントラクト(Win95bまたはWinNT-4以降で動作するプログラムが動作するOpenGL-1.1実装を期待できる)の一部であるため、OpenGL-1.1フォールバックコードも含まれています。

ベンダICDは自身を登録します(Windowsレジストリでは詳細はhttps://msdn.microsoft.com/en-us/library/windows/hardware/ff568203%28v=vs.85%29.aspxを参照)。opengl32.dllは適切なICDをロードします。 ICDの名前は固定されていません。バッファを必要とするOpenGL関数に無効なポインタを渡すことで、使用したICDを簡単に見つけることができます。アクセス違反はICDのコード内で発生します。

関連する問題