有一个名为Awesomium的有趣浏览器框架,它基本上是Chromium浏览器引擎的包装器。
我有兴趣使用它为桌面重新分发基于WebGL的游戏。然而,Awesomium仅支持使用发送到CPU的像素缓冲区进行渲染,即使WebGL上下文本身基于真正的硬件加速OpenGL上下文。这对于实时高性能游戏来说是低效的,并且可能会破坏低端机器上的帧速率。
Awesomium最终可能会解决这个问题,但它让我想到:是否有可能在屏幕外的OpenGL上下文中搜索并将其直接渲染到窗口?这将避免低效的渲染方法,完全在GPU上进行渲染。我在Windows上使用原生C ++应用程序,因此可能会涉及WGL细节。此外,由于Chromium是一个多线程浏览器引擎,它可能涉及在不同的线程或事件上查找不同进程的OpenGL上下文。有可能吗?
答案 0 :(得分:1)
是否可以在进程中搜索屏幕外OpenGL上下文并将其直接呈现给窗口?
不,它不可能。如果为OS缓冲区创建了opengl上下文,则无法将其重定向到其他缓冲区和其他opengl上下文。
也许您可以使用共享的opengl资源(如果使用这样的选项创建了两个opengl上下文)。