我将尝试在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
:
他们中的任何一个都可以通过dumpbin /exports
完美转储。但是我不能在这里findOpenGL驱动。 也许它有一些特定的名称,如nvdisps.dll
或其他?
PS(如果你问我一下)
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代码中。