如何在Gtk下创建一个cairo-gl表面

RC7*_*RC7 9 cairo gtk3

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

提前致谢.

RC7

pza*_*oni 6

那么,首先你需要确保你的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/

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

  • 谢谢。这应该让人们开始。如您所见,该领域的文档非常稀缺。 (2认同)