What's wrong with using the cobj() method in Cairo::Context? I thought
Cairo::Context did provide access to the underlying C type, just for this
situation.

https://www.cairographics.org/documentation/cairomm/reference/classCairo_1_1Context.html#a614bcb4e9570c5b5c54b3bfc304c194a

This method returns a pointer to Cairo::Context::cobject which is just a
typedef of cairo_t. Then you shouldn't need to do any of that subclassing
work. I haven't tested your code in any way, but that's what my
understanding from the documentation is.


On Sat, Jul 21, 2018 at 10:02 PM, <[email protected]> wrote:

> 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.
> _______________________________________________
> gtkmm-list mailing list
> [email protected]
> https://mail.gnome.org/mailman/listinfo/gtkmm-list
>
_______________________________________________
gtkmm-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to