如何防止外部 OpenGL 应用程序(无可用资源)像 GDebugger 那样进行绘制?
问题在于 Dassault Catia 会在五(!)小时内打开复杂模型,因为它们是在加载过程中渲染的。
当单击此应用程序的边框并按住鼠标按钮时,渲染过程将停止,因此模型文件的打开速度提高了 10 倍 - 它在 20 分钟内完成。
我会非常感谢任何提示(编程语言无关紧要)。
最好的祝福,
大卫
如何防止外部 OpenGL 应用程序(无可用资源)像 GDebugger 那样进行绘制?
问题在于 Dassault Catia 会在五(!)小时内打开复杂模型,因为它们是在加载过程中渲染的。
当单击此应用程序的边框并按住鼠标按钮时,渲染过程将停止,因此模型文件的打开速度提高了 10 倍 - 它在 20 分钟内完成。
我会非常感谢任何提示(编程语言无关紧要)。
最好的祝福,
大卫
我认为 GDebugger 使用自定义版本的 opengl32.dll。应用程序加载它是因为它在它的起始目录中(或拦截 LoadLibrary 调用)。该库中的每个函数都可以在执行对标准 opengl32.dll 的调用之前执行附加代码,这允许对应用程序进行完全控制。但是如果你要制作这样一个代理库,你必须实现所有标准的 OpenGL 函数(所有条目都必须到位),尽管它们中的大多数都是简单的包装器。
我认为各种 GL 调试器所做的是替换 OpenGL-dll 以拦截 OpenGL 调用。我想您可以提供自己的“虚拟”OpenGL-dll,其中所有例程基本上都是“无操作”。
如果您使用的是 win32,请获取GLIntercept的副本。它可能已经有一个存根选项;如果不是,添加应该不会太难。