以编程方式为MESA Software渲染器切换dll

时间:2015-06-16 07:09:36

标签: visual-studio opengl dll mesa

我想将命令行选项--software-rendering添加到我的应用程序,该应用程序切换到子文件夹中找到的MESA opengl32.dll(例如mesa\opengl32.dll)。如何以编程方式切换到此dll?

到目前为止,我知道当我将opengl32.dll移动到我的主文件夹时,渲染使用了这个,但我希望它根据命令行选项加载

1 个答案:

答案 0 :(得分:3)

唯一干净的解决方案是使用opengl32.dll加载LoadLibrary,而不是将其严格链接到您的程序。然后在调用LoadLibrary之前,您可以定义搜索路径,在哪里查找DLL,甚至传递绝对路径。缺点是,如果使用LoadLibrary每个DLL导出的符号必须使用GetProcAddress手动检索。好消息是, glLoadGen 生成的GL加载器就是这样做的;它使用GetModuleHandle来引用已加载到进程中的opengl32.dll,并在常规OpenGL函数上使用GetProcAddress。此外,它还将执行所有扩展加载。