位于Windows中的vedor的OpenGL驱动程序在哪里?

我将尝试在Windows 10中使用OpenGL现代驱动程序来实验C#,并试图find它。

据我Openg32.dll ,位于%systemroot%\system32的标准驱动程序Openg32.dll是一个旧的,似乎是来自微软,是吗?

我得出这个结论,因为使用了下一个命令:

dumpbin opengl32.dll /exports

并发现function:

11 A 00090330 glBegin

我记得,这个函数glLoadIdentity, glMultMatrix, glTranslate, glRotate被弃用,不包括OpenGL3.2 +,因为你必须做自己的matrix和math着色器。

OK,我开始在NVidia目录(我的显卡厂商是NVidia) C:\Program Files\NVIDIA Corporation ,但是只findOpenCL驱动C:\Program Files\NVIDIA Corporation\OpenCL

  • OpenCL.dll
  • OpenCL64.dll

他们中的任何一个都可以通过dumpbin /exports完美转储。但是我不能在这里findOpenGL驱动。 也许它有一些特定的名称,如nvdisps.dll或其他?

PS(如果你问我一下)

  • 我知道,更推荐使用C ++这个东西
  • 我不想使用已经完成的库
  • 我想P/Invoke东西,只是尝试用C#

opengl32.dll作为实际的OpenGL驱动程序(所谓的“ICD”(可安装客户端驱动程序))的“管道”。 它还包含OpenGL-1.1回退代码,因为OpenGL已经是Win32-API应用程序二进制接口合同的一部分(即在Win95b或WinNT-4或更高版本上运行的程序可以期望工作的OpenGL-1.1实现)。

供应商ICD注册自己(在Windows注册表中,详细信息请参阅https://msdn.microsoft.com/en-us/library/windows/hardware/ff568203%28v=vs.85%29.aspx )和opengl32.dll加载适当的ICD。 ICD的名称不固定。 你可以很容易地找到使用的ICD,通过传递一个无效的指针到一个OpenGL函数,期望一个缓冲区; 访问违规将发生在ICD代码中。