我将尝试在Windows 10中使用OpenGL现代驱动程序试用C#,并且我试图找到它。
我已经了解标准驱动程序Openg32.dll
,它位于%systemroot%\system32
是一个旧驱动程序,似乎是来自Microsoft,我是对的吗?
我得出了这个结论,因为使用了下一个命令:
dumpbin opengl32.dll /exports
找到了功能:
11 A 00090330 glBegin
我记得,这个函数glLoadIdentity, glMultMatrix, glTranslate, glRotate
已被弃用,自OpenGL 3.2+以来不包括在内,因为你必须自己进行矩阵数学运算。使用着色器。
好的,我开始搜索NVidia目录(我的视频卡的供应商是NVidia)C:\Program Files\NVIDIA Corporation
,但只找到了OpenCL驱动程序C:\Program Files\NVIDIA Corporation\OpenCL
:
其中任何一个都通过以下方式完全转储:dumpbin /exports
但我无法在这里找到OpenGL驱动程序。也许它有一些特定的名称,如nvdisps.dll
或其他什么?
PS(如果你问我的话)
P/Invoke
的东西,只是尝试用C#答案 0 :(得分:3)
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的名称不固定。通过将无效指针传递给需要缓冲区的OpenGL函数,可以轻松找到使用过的ICD;访问冲突将发生在ICD的代码中。