How do I use cairomm and librsvg?



I have a C++ program that uses cairomm, and I'd like to use librsvg with it to render SVG files to Cairo surfaces. However, librsvg is in C, and rsvg_handle_render_cairo expects a cairo_t value, while cairomm's Cairo::Context doesn't give access to the underlying C type (it's protected). I tried subclassing Cairo::Context and implementing a function that returned a pointer to the underlying cairo_t type, but it doesn't seem to be working.

Code is as follows:

main.cpp: https://paste.gnome.org/p9fzmosnu
Makefile: https://paste.gnome.org/p6qswmxgr
mor.glade: https://paste.gnome.org/phlvgqqt5

It just prints
(mor:7839): librsvg-CRITICAL **: rsvg_handle_render_cairo_sub: assertion 'handle != NULL' failed
repeatedly, and doesn't render anything.

Any help would be appreciated.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]