diff --git a/build/configure.ac.features b/build/configure.ac.features index e23d9ce..0b576bf 100644 --- a/build/configure.ac.features +++ b/build/configure.ac.features @@ -365,6 +365,7 @@ AC_DEFUN([CAIRO_REPORT], echo " Xlib Xrender: $use_xlib_xrender" echo " Quartz: $use_quartz" echo " Quartz-image: $use_quartz_image" + echo " QPainter: $use_qpainter" echo " XCB: $use_xcb" echo " Win32: $use_win32" echo " OS2: $use_os2" diff --git a/configure.ac b/configure.ac index 2ffb7b0..d784f4a 100644 --- a/configure.ac +++ b/configure.ac @@ -99,6 +99,18 @@ CAIRO_ENABLE_SURFACE_BACKEND(quartz_image, Quartz Image, no, [ dnl =========================================================================== +CAIRO_ENABLE_SURFACE_BACKEND(qpainter, QtGui, auto, [ + qpainter_REQUIRES="QtGui >= 4.4.0" + PKG_CHECK_MODULES(qpainter, $qpainter_REQUIRES, , + [AC_MSG_RESULT(no) + qpainter_REQUIRES="" + use_qpainter="no (requires Qt4 development libraries)" + ]) +]) + + +dnl =========================================================================== + CAIRO_ENABLE_SURFACE_BACKEND(win32, Microsoft Windows, auto, [ if test "x$have_windows" != xyes; then use_win32="no (requires a Win32 platform)" diff --git a/src/Makefile.sources b/src/Makefile.sources index ba74702..c66b172 100644 --- a/src/Makefile.sources +++ b/src/Makefile.sources @@ -222,6 +222,9 @@ cairo_quratz_image_sources = cairo-quartz-image-surface.c cairo_quartz_font_sources = cairo-quartz-font.c +cairo_qpainter_headers = cairo-qpainter.h +cairo_qpainter_sources = cairo-qpainter-surface.cpp + cairo_win32_headers = cairo-win32.h cairo_win32_private = cairo-win32-private.h cairo_win32_sources = cairo-win32-surface.c cairo-win32-printing-surface.c diff --git a/src/cairo-paginated-surface.c b/src/cairo-paginated-surface.c index 2640a8b..d59c9f4 100644 --- a/src/cairo-paginated-surface.c +++ b/src/cairo-paginated-surface.c @@ -349,6 +349,7 @@ _paint_page (cairo_paginated_surface_t *surface) case CAIRO_SURFACE_TYPE_DIRECTFB: case CAIRO_SURFACE_TYPE_SVG: case CAIRO_SURFACE_TYPE_OS2: + case CAIRO_SURFACE_TYPE_QPAINTER: default: if (_cairo_analysis_surface_has_unsupported (analysis)) { has_supported = FALSE; diff --git a/src/cairo.h b/src/cairo.h index a201507..b58f3fa 100644 --- a/src/cairo.h +++ b/src/cairo.h @@ -1893,6 +1893,7 @@ cairo_surface_status (cairo_surface_t *surface); * @CAIRO_SURFACE_TYPE_OS2: The surface is of type os2 * @CAIRO_SURFACE_TYPE_WIN32_PRINTING: The surface is a win32 printing surface * @CAIRO_SURFACE_TYPE_QUARTZ_IMAGE: The surface is of type quartz_image + * @CAIRO_SURFACE_TYPE_QPAINTER: The surface is of type qpainter * * #cairo_surface_type_t is used to describe the type of a given * surface. The surface types are also known as "backends" or "surface @@ -1931,7 +1932,8 @@ typedef enum _cairo_surface_type { CAIRO_SURFACE_TYPE_SVG, CAIRO_SURFACE_TYPE_OS2, CAIRO_SURFACE_TYPE_WIN32_PRINTING, - CAIRO_SURFACE_TYPE_QUARTZ_IMAGE + CAIRO_SURFACE_TYPE_QUARTZ_IMAGE, + CAIRO_SURFACE_TYPE_QPAINTER } cairo_surface_type_t; cairo_public cairo_surface_type_t