我有一个程序做一些图形。当我以交互方式运行它时,我希望它使用系统中的 OpenGL 来提供硬件加速图形。当我批量运行它时,我希望能够重定向它以使用 Mesa GL 库,以便我可以使用 OSMesa 功能呈现到屏幕外缓冲区。如果选择了批处理启动选项,则通过执行 LoadLibrary/GetProcAddress 启用 OSMesa 功能。
在 Linux 上,完成这项工作相当容易。通过使用包装脚本来调用程序,我可以执行以下操作:
if [ "$OPTION" = "batch" ]; then
export LD_LIBRARY_PATH=$PATHTO/mesalibs:$LD_LIBRARY_PATH
fi
可以在 Windows 中执行此操作吗?
当我尝试将目录添加到 PATH 变量时,程序继续转到系统 opengl32.dll。让程序使用 Mesa GL/OSMesa 共享库的唯一方法是让它们与我的程序位于同一目录中。但是,当我这样做时,程序将永远不会使用系统 opengl32.dll。