【发布时间】:2019-07-15 14:57:03
【问题描述】:
我将 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 表面?
请注意:我需要能够直接使用纹理(无需复制)才能在屏幕上显示 cairo 输出。
【问题讨论】: