2

可用于 librsvg-2.0 的 vapi 文件包含的内容比实际库包含的要少得多

vapi:http ://valadoc.org/#!wiki=librsvg-2.0/index

库:https ://git.gnome.org/browse/librsvg/tree/

我本来希望能够访问像 RsvgNode 这样的组件,以便能够直接访问和更改 SVG 内容,但是 vapi 和随 devel 包一起安装的头文件都不包含库头文件中的很多内容。我认为这与使库 GObject 友好有关,但我感兴趣的不仅仅是那里的东西。

有没有办法添加标题、扩展 vapi 并使用我需要的结构和函数?

有可能这甚至不是我应该做的,库的内容使用 G_GNUC_HIDDEN 宏非常自由地暗示他们不想给你访问权限。但后来我想知道如何在开罗上下文中显示 SVG 文档/元素时对其进行实时编辑?我确定我可以使用 libxml 对其进行编辑,但我不知道如何在不重新加载 SVG 数据和重新创建表面的情况下刷新上下文。

谢谢。

4

1 回答 1

3

刚刚在 IRC 上向 Christian Persch 询问了这个问题。他的回应是:

是的,所有的东西都没有出口,也没有任何状态可以出口。如果不创建新上下文并将新的 svg xml 加载到其中,librsvg 无法更改 svg

如果库不导出 C 级别的内容,那么您在 Vala 级别上就无能为力了。创建绑定不会很困难,但它绑定的 API 确实需要公开。

根据您的用例,也许您会更乐意使用 Clutter?

于 2013-10-03T21:35:37.867 回答