使用 Cairo 绘制杂乱纹理

Posted

技术标签:

【中文标题】使用 Cairo 绘制杂乱纹理【英文标题】:Drawing in a Clutter Texture with Cairo 【发布时间】:2012-11-15 07:40:19 【问题描述】:

我有一组用于绘图的对象,并且一直使用 Cairo。我决定切换到带有 Cogl 的 Clutter 进行绘图,但 Cogl 似乎在某种程度上受限于 2D。到目前为止,我已经无法设置线条的虚线图案以及线条宽度。我读过两件事,你可以在 Cogl 中使用原始 GL 调用,你可以使用 ClutterCairoTexture。不幸的是,我找不到任何关于在 cogl_begin_gl/cogl_end_gl 中使用 GL 调用的文档,而且 ClutterCairoTexture 显然已被弃用。

了解如何使用具有 Clutter 纹理的 Cairo 上下文或现在如何在 Cogl 中完成 2D 绘图将非常有用。我真的不明白为什么你不能在 Cogl 中改变线宽,但它似乎不在我读过的任何文档中。如果必须,我可以处理破折号模式,但如果我可以继续在 Actor/Texture 中使用 Cairo,或者如果 Cogl 有办法做到这一点,那肯定会更好。

谢谢。

【问题讨论】:

【参考方案1】:

原来答案是继续使用 Cairo,但创建一个 ClutterCanvas 并将其添加到您正在绘制的任何 ClutterActor 中。之后,您只需要将函数连接到将 CairoContext 作为参数的绘图信号。

【讨论】:

以上是关于使用 Cairo 绘制杂乱纹理的主要内容,如果未能解决你的问题,请参考以下文章

gtkmm : 用 cairo 绘制文本

如何在 Haskell 中使用 Cairo 绘制 X11 Drawable

使用 Gtk3 和 Cairo 绘制到 GdkWindow 根窗口

如何使用 Cairo 和 Gtk3 在 GtkDrawingArea 中绘制一条线

使用 Gdk Cairo 上下文绘制椭圆

如何在 Gtkmm DrawingArea 中绘制 cairo_surface_t