0

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

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

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

4

1 回答 1

1

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

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

也许您可以使用共享的 opengl 资源(如果两个 opengl 上下文都是使用此类选项创建的)。

于 2012-07-12T11:50:03.973 回答