如何防止外部OpenGL应用程序(没有可用的源代码)像GDebugger一样绘制?
问题是达索Catia在五分钟内打开复杂模型(!)小时,因为它们是在加载过程中渲染的。
单击此应用程序的边框并按下鼠标按钮时,渲染过程将停止,以便模型文件的打开速度提高10倍-它在20分钟内完成。
我将非常感谢任何提示(编程语言无关紧要)。
诚挚的问候,
大卫
发布于 2010-10-08 18:59:20
我认为GDebugger使用的是opengl32.dll的自定义版本。应用程序加载它是因为它在它的起始目录中(或拦截LoadLibrary调用)。库中的每个函数可以在执行对标准opengl32.dll的调用之前执行额外的代码,这允许对应用程序的完全控制。但是,如果要创建这样的代理库,则必须实现所有标准OpenGL函数(所有条目都必须就位),尽管它们中的大多数都是简单的包装器。
发布于 2010-10-08 18:58:45
我认为各种GL调试器所做的就是替换OpenGL-dll,以便拦截OpenGL调用。我猜你可以提供你自己的“虚拟的”OpenGL-dll,其中所有的例程基本上都是"no-ops“。
发布于 2010-10-08 21:14:17
如果你用的是win32,那就买一份GLIntercept吧。它可能已经有了一个stub-out选项;如果没有,添加起来应该不会太难。
https://stackoverflow.com/questions/3889759
复制相似问题