diff --git a/boilerplate/Makefile.win32.features b/boilerplate/Makefile.win32.features index c2177da7b..136afd3ed 100644 --- a/boilerplate/Makefile.win32.features +++ b/boilerplate/Makefile.win32.features @@ -420,15 +420,17 @@ enabled_cairo_boilerplate_private += $(cairo_boilerplate_recording_private) enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_recording_cxx_sources) enabled_cairo_boilerplate_sources += $(cairo_boilerplate_recording_sources) -supported_cairo_boilerplate_headers += $(cairo_boilerplate_tee_headers) +unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_tee_headers) all_cairo_boilerplate_headers += $(cairo_boilerplate_tee_headers) all_cairo_boilerplate_private += $(cairo_boilerplate_tee_private) all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_tee_cxx_sources) all_cairo_boilerplate_sources += $(cairo_boilerplate_tee_sources) +ifeq ($(CAIRO_HAS_TEE_SURFACE),1) enabled_cairo_boilerplate_headers += $(cairo_boilerplate_tee_headers) enabled_cairo_boilerplate_private += $(cairo_boilerplate_tee_private) enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_tee_cxx_sources) enabled_cairo_boilerplate_sources += $(cairo_boilerplate_tee_sources) +endif supported_cairo_boilerplate_headers += $(cairo_boilerplate_xml_headers) all_cairo_boilerplate_headers += $(cairo_boilerplate_xml_headers) diff --git a/build/Makefile.win32.features b/build/Makefile.win32.features index e80153f0c..c2708d22f 100644 --- a/build/Makefile.win32.features +++ b/build/Makefile.win32.features @@ -32,6 +32,7 @@ CAIRO_HAS_PS_SURFACE=1 CAIRO_HAS_PDF_SURFACE=1 CAIRO_HAS_SVG_SURFACE=1 CAIRO_HAS_TEST_SURFACES=0 +CAIRO_HAS_TEE_SURFACE=0 CAIRO_HAS_XML_SURFACE=1 CAIRO_HAS_PTHREAD=0 CAIRO_HAS_TRACE=0 diff --git a/build/Makefile.win32.features-h b/build/Makefile.win32.features-h index 16cca7f1f..2106f020b 100644 --- a/build/Makefile.win32.features-h +++ b/build/Makefile.win32.features-h @@ -103,7 +103,9 @@ ifeq ($(CAIRO_HAS_TEST_SURFACES),1) endif @echo "#define CAIRO_HAS_IMAGE_SURFACE 1" >> src/cairo-features.h @echo "#define CAIRO_HAS_RECORDING_SURFACE 1" >> src/cairo-features.h +ifeq ($(CAIRO_HAS_TEE_SURFACE),1) @echo "#define CAIRO_HAS_TEE_SURFACE 1" >> src/cairo-features.h +endif ifeq ($(CAIRO_HAS_XML_SURFACE),1) @echo "#define CAIRO_HAS_XML_SURFACE 1" >> src/cairo-features.h endif diff --git a/configure.ac b/configure.ac index cb66294db..a2c2d9b84 100644 --- a/configure.ac +++ b/configure.ac @@ -625,7 +625,7 @@ CAIRO_ENABLE_SURFACE_BACKEND(image, image, always, [ dnl =========================================================================== CAIRO_ENABLE_SURFACE_BACKEND(recording, recording, always) -CAIRO_ENABLE_SURFACE_BACKEND(tee, tee, always) +CAIRO_ENABLE_SURFACE_BACKEND(tee, tee, no) CAIRO_ENABLE_SURFACE_BACKEND(xml, xml, yes, [ use_xml=$have_libz xml_NONPKGCONFIG_LIBS=-lz diff --git a/src/Makefile.win32.features b/src/Makefile.win32.features index 8fe6af74d..6e1fa8c80 100644 --- a/src/Makefile.win32.features +++ b/src/Makefile.win32.features @@ -546,15 +546,21 @@ enabled_cairo_private += $(cairo_recording_private) enabled_cairo_cxx_sources += $(cairo_recording_cxx_sources) enabled_cairo_sources += $(cairo_recording_sources) -supported_cairo_headers += $(cairo_tee_headers) +unsupported_cairo_headers += $(cairo_tee_headers) all_cairo_headers += $(cairo_tee_headers) all_cairo_private += $(cairo_tee_private) all_cairo_cxx_sources += $(cairo_tee_cxx_sources) all_cairo_sources += $(cairo_tee_sources) +ifeq ($(CAIRO_HAS_TEE_SURFACE),1) enabled_cairo_headers += $(cairo_tee_headers) enabled_cairo_private += $(cairo_tee_private) enabled_cairo_cxx_sources += $(cairo_tee_cxx_sources) enabled_cairo_sources += $(cairo_tee_sources) +endif +all_cairo_pkgconf += cairo-tee.pc +ifeq ($(CAIRO_HAS_TEE_SURFACE),1) +enabled_cairo_pkgconf += cairo-tee.pc +endif supported_cairo_headers += $(cairo_xml_headers) all_cairo_headers += $(cairo_xml_headers) diff --git a/src/cairo-surface.c b/src/cairo-surface.c index f4ada745a..ba70a2ec6 100644 --- a/src/cairo-surface.c +++ b/src/cairo-surface.c @@ -1666,6 +1666,8 @@ _cairo_surface_clone_similar (cairo_surface_t *surface, if (unlikely (surface->finished)) return _cairo_error (CAIRO_STATUS_SURFACE_FINISHED); +#if CAIRO_HAS_TEE_SURFACE + if (src->type == CAIRO_SURFACE_TYPE_TEE) { cairo_surface_t *match; @@ -1676,6 +1678,8 @@ _cairo_surface_clone_similar (cairo_surface_t *surface, src = match; } +#endif + if (surface->backend->clone_similar != NULL) { status = surface->backend->clone_similar (surface, src, src_x, src_y, diff --git a/test/api-special-cases.c b/test/api-special-cases.c index b25197655..95a0a7c16 100644 --- a/test/api-special-cases.c +++ b/test/api-special-cases.c @@ -390,6 +390,8 @@ test_cairo_recording_surface_ink_extents (cairo_surface_t *surface) return x == 0 && y == 0 && w == 0 && h == 0 ? CAIRO_TEST_SUCCESS : CAIRO_TEST_ERROR; } +#if CAIRO_HAS_TEE_SURFACE + static cairo_test_status_t test_cairo_tee_surface_add (cairo_surface_t *surface) { @@ -422,6 +424,8 @@ test_cairo_tee_surface_index (cairo_surface_t *surface) return status ? CAIRO_TEST_SUCCESS : CAIRO_TEST_ERROR; } +#endif /* CAIRO_HAS_TEE_SURFACE */ + #if CAIRO_HAS_GL_SURFACE static cairo_test_status_t @@ -667,9 +671,11 @@ struct { TEST (cairo_surface_write_to_png_stream, -1, FALSE), #endif TEST (cairo_recording_surface_ink_extents, CAIRO_SURFACE_TYPE_RECORDING, FALSE), +#if CAIRO_HAS_TEE_SURFACE TEST (cairo_tee_surface_add, CAIRO_SURFACE_TYPE_TEE, TRUE), TEST (cairo_tee_surface_remove, CAIRO_SURFACE_TYPE_TEE, TRUE), TEST (cairo_tee_surface_index, CAIRO_SURFACE_TYPE_TEE, FALSE), +#endif #if CAIRO_HAS_GL_SURFACE TEST (cairo_gl_surface_set_size, CAIRO_SURFACE_TYPE_GL, TRUE), TEST (cairo_gl_surface_get_width, CAIRO_SURFACE_TYPE_GL, FALSE),