WGL:可以找到屏幕外的上下文并渲染到窗口吗?

时间:2012-07-12 11:41:09

标签: c++ windows opengl webgl chromium

有一个名为Awesomium的有趣浏览器框架,它基本上是Chromium浏览器引擎的包装器。

我有兴趣使用它为桌面重新分发基于WebGL的游戏。然而,Awesomium仅支持使用发送到CPU的像素缓冲区进行渲染,即使WebGL上下文本身基于真正的硬件加速OpenGL上下文。这对于实时高性能游戏来说是低效的,并且可能会破坏低端机器上的帧速率。

Awesomium最终可能会解决这个问题,但它让我想到:是否有可能在屏幕外的OpenGL上下文中搜索并将其直接渲染到窗口?这将避免低效的渲染方法,完全在GPU上进行渲染。我在Windows上使用原生C ++应用程序,因此可能会涉及WGL细节。此外,由于Chromium是一个多线程浏览器引擎,它可能涉及在不同的线程或事件上查找不同进程的OpenGL上下文。有可能吗?

1 个答案:

答案 0 :(得分:1)

  

是否可以在进程中搜索屏幕外OpenGL上下文并将其直接呈现给窗口?

不,它不可能。如果为OS缓冲区创建了opengl上下文,则无法将其重定向到其他缓冲区和其他opengl上下文。

也许您可以使用共享的opengl资源(如果使用这样的选项创建了两个opengl上下文)。