我正在使用cairo (http://cairographics.org) 与基于OpenGL的3D图形库结合使用。
目前我是在Windows上使用这个3D库,但我希望得到一个平台无关的答案。
这一切都是用C++完成的。
我已经成功采用了直接的方法,即使用cairo_image_surface_create与glTexImage2D结合以获得OpenGL纹理。
然而,从我从文档中了解到的信息来看,cairo_image_surface_create使用基于CPU的渲染器并将输出写入主内存。
我了解到cairo有一个新的基于OpenGL的渲染器,可以直接在GPU上渲染其输出,但我无法找到如何使用它的具体细节。
(我找到了一些关于glitz-renderer的详细信息,但它似乎已被弃用并删除)。
我已经在http://www.cairographics.org/manual/cairo-surfaces.html上检查了表面列表,但感觉我错过了显而易见的部分。
我的问题是:如何创建一个能够直接渲染到OpenGL纹理的cairo surface?
请注意:我需要能够直接使用纹理(无需复制)来显示cairo的输出。