Saturday 29 July 2006
Cairo and Qt3
By hub, Saturday 29 July 2006 at 22:32 :: KDE
I was wondering if I could use Cairo from Qt3. Given that Cairo allows creating surfaces from X11 visuals and that Qt allow accessing them, I thought it was simple. As a proof, here is the interesting bit (using Qt3 and Cairomm, the C++ "bindings" for Cairo):
QSize size = QWidget::size(); RefPtr<Surface> surface = Cairo::XlibSurface::create( x11Display(), handle(), (Visual*)x11Visual(), size.width(), size.height() );
That code is from a member method of a QWidget
subclass.
Get the code: main.cpp. To build, use the following command:
gcc main.cpp -o main -I/usr/include/qt3 -I/usr/include/cairo -I/usr/include/cairomm-1.0 \ -lqt-mt -lcairo -lcairomm-1.0
Now lets think how to make that API clean, and how QPainter
will conflict with it :-)
Update (July 30th): I got pointed to qcairo in the cairo-demo. I must admit I didn't really look for one as I liked the educational part of figuring things out (easy).