如何防止OpenGL应用程序绘图?

时间:2010-10-08 10:45:57

标签: multithreading opengl catia

如何通过GDebugger来阻止外部OpenGL应用程序(没有可用的源代码)进行绘制?

问题是Dassault Catia在五(())小时内打开复杂模型,因为它们是在加载过程中呈现的。

单击此应用程序的边框并按住鼠标按钮时,渲染过程将停止,以便模型文件打开速度提高10倍 - 在20分钟内完成。

我会非常感谢任何提示(编程语言并不重要)。

致以最诚挚的问候,

大卫

3 个答案:

答案 0 :(得分:1)

我认为GDebugger使用自定义版本的opengl32.dll。应用程序加载它,因为它在它的起始目录(或拦截LoadLibrary调用)。在执行对标准opengl32.dll的调用之前,该库中的每个函数都可以执行其他代码,这允许对应用程序进行完全控制。但是如果你要创建这样的代理库,你必须实现所有标准的OpenGL函数(所有条目都必须到位),尽管它们中的大多数都是简单的包装器。

答案 1 :(得分:0)

我认为各种GL调试器的作用是替换OpenGL-dll以拦截OpenGL调用。我猜你可以提供你自己的“虚拟”OpenGL-dll,其中所有例程基本上都是“无操作”。

答案 2 :(得分:0)

如果您在win32上,请抓取GLIntercept的副本。它可能已经有一个存根选项;如果没有,那就不应该太难添加。