2

我正在开发一个有两个窗口的应用程序:

  • 窗口 1:渲染直接绘制表面
  • 窗口 2:我想让做纯 OpenGL 调用

我不想在同一个窗口中混合使用 OpenGL 和 DirectDraw。

我从 Open GL 常见问题解答 ( http://www.opengl.org/resources/faq/technical/mswindows.htm ) 中看到,您不能在同一个窗口中混合 API 调用。

所以,我的问题是:一个应用程序可以让一个窗口进行直接绘制而另一个进行 OpenGL 吗?

4

3 回答 3

1

在同一进程中运行两者应该没有问题,当然 ICD 视频驱动程序中的错误除外。

最快的判断方法可能是注释掉 OpenGL 代码并检查应用程序是否仍然崩溃。

或者,强制您的 OpenGL 代码使用 Microsoft 实现——它是基于 XP 的软件和基于 Vista 的 Direct3D——不应该有冲突。如果 ddraw 问题仍然存在,很可能不是 OGL 故障。

于 2008-11-12T22:29:00.030 回答
0

最坏的情况:让您的主程序生成执行一种类型的渲染(比如说 DirectDraw)。让它产生一个执行其他类型(OpenGL)的进程。使用管道在两者之间进行通信。这将要求您有两个进程,这可能是一种解决方法,但它至少可以工作。

于 2008-11-11T22:36:45.100 回答
0

嗯.....我已经将 OpenGL 的东西隔离到一个线程。你是这个意思吗?或者,我认为您是在说开始一个新的过程。

问题是:我看到 BLT 上的 DirectDraw 代码崩溃。这是随机的,但我担心 OpenGL 的东西正在扼杀它。

于 2008-11-11T22:41:11.690 回答