cairo - 如何在 Gtk 下创建 cairo-gl 曲面

标签 cairo gtk3

我想在 linux (fedora 12) 下使用 GTK 3 创建一个窗口,并使用 cairo-gl 后端在其上绘制一个简单的矩形,为此我想创建一个 cairo-gl 表面。我该怎么做,任何人都可以帮助我提供示例代码。

提前致谢。

RC7

最佳答案

好吧,首先你需要确保你的 cairo 版本有 gl 支持。我不确定 Fedora 12 中的版本是否有它。您可能需要编译自己的 cairo。

然后需要查看cairo-gl.h:
http://cgit.freedesktop.org/cairo/tree/src/cairo-gl.h

这个文件有一个很好的注释,解释说首先你需要使用你的 gl 上下文创建一个 cairo_device,然后将它传递给 cairo_gl_surface_create()。

这个来自 cairo 测试套件的文件包含一个 gl 表面的例子:
http://cgit.freedesktop.org/cairo/tree/test/gl-surface-source.c

请注意,它是一个包含另一个 .c 文件的 .c 文件:
http://cgit.freedesktop.org/cairo/tree/test/set-source.c

测试套件充满了 cairo 编程示例。用它! :)

我不确定您如何使用 GTK3 执行 GL,但在最坏的情况下,您可以使用 GDK 获取 X11 的显示和窗口 ID,然后使用标准 glx 调用:
http://developer.gnome.org/gdk3/stable/gdk3-X-Window-System-Interaction.html

要将 cairo 与 GTK3 一起使用,您需要查看以下内容:
http://developer.gnome.org/gdk3/stable/gdk3-Cairo-Interaction.html
和这个:
http://zetcode.com/tutorials/cairographicstutorial/

我给了你一堆乐高积木。现在你需要组装它们。 (或者也许有更多时间的人会这样做并在这里写出更好的答案?)

关于cairo - 如何在 Gtk 下创建 cairo-gl 曲面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6105948/

相关文章:

python - 使用 pyCairo 旋转图像

haskell - 在 Windows 上安装 Haskell cairo

python - 导入Gtk并关闭窗口后访问Gdk区域

eclipse - 当我单击它时,Javadoc 工具提示会隐藏

c - 如何使用 gcc (gtk3) 建立库的静态链接

c - 如何在 GTK3 中处理鼠标移动事件?

c++ - 如何避免cairo绘图xlib表面闪烁?

c - 无法使用 GTK3 更改光标

python - 将 gpointer 与 Python 和 GObject 自省(introspection)一起使用