将opengl和directdraw混合在同一应用程序的不同窗口中?

时间:2008-11-11 22:13:27

标签: opengl directx directdraw

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

  • 窗口1:渲染直接绘制曲面
  • 窗口2:我喜欢让它做纯OpenGL调用

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

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

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

3 个答案:

答案 0 :(得分:1)

在同一过程中运行两者都应该没有问题,除了ICD视频驱动程序中的错误。

可能最快的方式是评论OpenGL代码并检查应用程序是否仍然崩溃。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

嗯......我把OpenGL的东西分离到了一个线程。你是这个意思吗?或者,我认为你说的是​​开始一个新的过程。

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