configure.ac | 74 +++++++------- glib/Makefile.am | 20 --- glib/demo/images.c | 2 glib/demo/layers.c | 71 ------------- glib/demo/render.c | 29 ----- glib/poppler-document.cc | 9 - glib/poppler-page.cc | 237 ---------------------------------------------- glib/poppler-page.h | 7 - glib/poppler-private.h | 14 -- glib/poppler.cc | 6 - glib/test-poppler-glib.cc | 6 - poppler-glib.pc.in | 2 12 files changed, 60 insertions(+), 417 deletions(-)
New commits: commit 9c9f18b6ceea546dfb21ef0aab29ba99733dcb52 Author: Carlos Garcia Campos <[email protected]> Date: Sun Jan 24 19:27:29 2010 +0100 [glib-demo] Remove #ifdef HAVE_CAIRO macros from several demos diff --git a/glib/demo/images.c b/glib/demo/images.c index 76cfed2..b1fe8e2 100644 --- a/glib/demo/images.c +++ b/glib/demo/images.c @@ -201,10 +201,8 @@ pgd_images_selection_changed (GtkTreeSelection *treeselection, IMAGES_ID_COLUMN, &image_id, -1); page = poppler_document_get_page (demo->doc, demo->page); -#if defined (HAVE_CAIRO) pgd_image_view_set_image (demo->image_view, poppler_page_get_image (page, image_id)); -#endif g_object_unref (page); } diff --git a/glib/demo/layers.c b/glib/demo/layers.c index ac93376..348f9db 100644 --- a/glib/demo/layers.c +++ b/glib/demo/layers.c @@ -37,12 +37,8 @@ typedef struct { guint page; GtkWidget *treeview; GtkWidget *darea; - -#if defined (HAVE_CAIRO) + cairo_surface_t *surface; -#else - GdkPixbuf *pixbuf; -#endif } PgdLayersDemo; static void @@ -55,18 +51,11 @@ pgd_layers_free (PgdLayersDemo *demo) g_object_unref (demo->doc); demo->doc = NULL; } - -#if defined (HAVE_CAIRO) + if (demo->surface) { cairo_surface_destroy (demo->surface); demo->surface = NULL; } -#else - if (demo->pixbuf) { - g_object_unref (demo->pixbuf); - demo->pixbuf = NULL; - } -#endif g_free (demo); } @@ -156,7 +145,6 @@ pgd_layers_create_model (PopplerDocument *document) return model; } -#if defined (HAVE_CAIRO) static cairo_surface_t * pgd_layers_render_page (PgdLayersDemo *demo) { @@ -191,39 +179,12 @@ pgd_layers_render_page (PgdLayersDemo *demo) return surface; } -#else -static GdkPixbuf * -pgd_layers_render_page (PgdLayersDemo *demo) -{ - PopplerPage *page; - gdouble width, height; - GdkPixbuf *pixbuf = NULL; - - page = poppler_document_get_page (demo->doc, demo->page); - if (!page) - return NULL; - - poppler_page_get_size (page, &width, &height); - gtk_widget_set_size_request (demo->darea, width, height); - - pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, - FALSE, 8, width, height); - gdk_pixbuf_fill (pixbuf, 0xffffff); - poppler_page_render_to_pixbuf (page, 0, 0, - width, height, - 1.0, 0, pixbuf); - g_object_unref (page); - - return pixbuf; -} -#endif static gboolean pgd_layers_viewer_drawing_area_expose (GtkWidget *area, GdkEventExpose *event, PgdLayersDemo *demo) { -#if defined (HAVE_CAIRO) cairo_t *cr; if (!demo->surface) { @@ -231,47 +192,23 @@ pgd_layers_viewer_drawing_area_expose (GtkWidget *area, if (!demo->surface) return FALSE; } -#else - - if (!demo->pixbuf) { - demo->pixbuf = pgd_layers_render_page (demo); - if (!demo->pixbuf) - return FALSE; - } -#endif gdk_window_clear (area->window); -#if defined (HAVE_CAIRO) cr = gdk_cairo_create (area->window); cairo_set_source_surface (cr, demo->surface, 0, 0); cairo_paint (cr); cairo_destroy (cr); -#else - gdk_draw_pixbuf (area->window, - area->style->fg_gc[GTK_STATE_NORMAL], - demo->pixbuf, - 0, 0, - 0, 0, - gdk_pixbuf_get_width (demo->pixbuf), - gdk_pixbuf_get_height (demo->pixbuf), - GDK_RGB_DITHER_NORMAL, - 0, 0); -#endif - + return TRUE; } static gboolean pgd_layers_viewer_redraw (PgdLayersDemo *demo) { -#if defined (HAVE_CAIRO) cairo_surface_destroy (demo->surface); demo->surface = NULL; -#else - g_object_unref (demo->pixbuf); - demo->pixbuf = NULL; -#endif + gtk_widget_queue_draw (demo->darea); return FALSE; diff --git a/glib/demo/render.c b/glib/demo/render.c index f8f65bf..4365a4b 100644 --- a/glib/demo/render.c +++ b/glib/demo/render.c @@ -24,9 +24,7 @@ #include "render.h" typedef enum { -#if defined (HAVE_CAIRO) PGD_RENDER_CAIRO, -#endif PGD_RENDER_PIXBUF } PgdRenderMode; @@ -48,10 +46,8 @@ typedef struct { GtkWidget *slice_w; GtkWidget *slice_h; GtkWidget *timer_label; - -#if defined (HAVE_CAIRO) + cairo_surface_t *surface; -#endif GdkPixbuf *pixbuf; } PgdRenderDemo; @@ -66,12 +62,10 @@ pgd_render_free (PgdRenderDemo *demo) demo->doc = NULL; } -#if defined (HAVE_CAIRO) if (demo->surface) { cairo_surface_destroy (demo->surface); demo->surface = NULL; } -#endif if (demo->pixbuf) { g_object_unref (demo->pixbuf); @@ -86,17 +80,14 @@ pgd_render_drawing_area_expose (GtkWidget *area, GdkEventExpose *event, PgdRenderDemo *demo) { -#if defined (HAVE_CAIRO) if (demo->mode == PGD_RENDER_CAIRO && !demo->surface) return FALSE; -#endif - + if (demo->mode == PGD_RENDER_PIXBUF && !demo->pixbuf) return FALSE; gdk_window_clear (area->window); -#if defined (HAVE_CAIRO) if (demo->mode == PGD_RENDER_CAIRO) { cairo_t *cr; @@ -105,7 +96,6 @@ pgd_render_drawing_area_expose (GtkWidget *area, cairo_paint (cr); cairo_destroy (cr); } else if (demo->mode == PGD_RENDER_PIXBUF) { -#endif gdk_draw_pixbuf (area->window, area->style->fg_gc[GTK_STATE_NORMAL], demo->pixbuf, @@ -115,12 +105,10 @@ pgd_render_drawing_area_expose (GtkWidget *area, gdk_pixbuf_get_height (demo->pixbuf), GDK_RGB_DITHER_NORMAL, 0, 0); -#if defined (HAVE_CAIRO) } else { g_assert_not_reached (); } -#endif - + return TRUE; } @@ -139,12 +127,10 @@ pgd_render_start (GtkButton *button, if (!page) return; -#if defined (HAVE_CAIRO) if (demo->surface) cairo_surface_destroy (demo->surface); demo->surface = NULL; -#endif - + if (demo->pixbuf) g_object_unref (demo->pixbuf); demo->pixbuf = NULL; @@ -163,7 +149,6 @@ pgd_render_start (GtkButton *button, y = demo->slice.x * demo->scale; } -#if defined (HAVE_CAIRO) if (demo->mode == PGD_RENDER_CAIRO) { cairo_t *cr; @@ -207,7 +192,6 @@ pgd_render_start (GtkButton *button, cairo_destroy (cr); } else if (demo->mode == PGD_RENDER_PIXBUF) { -#endif #ifdef POPPLER_WITH_GDK timer = g_timer_new (); demo->pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, @@ -232,11 +216,10 @@ pgd_render_start (GtkButton *button, } g_timer_stop (timer); #endif /* POPPLER_WITH_GDK */ -#if defined (HAVE_CAIRO) } else { g_assert_not_reached (); } -#endif + g_object_unref (page); str = g_strdup_printf ("<i>Page rendered in %.4f seconds</i>", @@ -411,9 +394,7 @@ pgd_render_properties_selector_create (PgdRenderDemo *demo) gtk_widget_show (label); mode_selector = gtk_combo_box_new_text (); -#if defined (HAVE_CAIRO) gtk_combo_box_append_text (GTK_COMBO_BOX (mode_selector), "cairo"); -#endif #ifdef POPPLER_WITH_GDK gtk_combo_box_append_text (GTK_COMBO_BOX (mode_selector), "pixbuf"); #endif commit 4e938c1f81add2162ced0e97b24fe588f15f178d Author: Carlos Garcia Campos <[email protected]> Date: Sun Jan 24 19:15:06 2010 +0100 [glib] Make glib frontend unconditionally use cairo output device Splash support has been removed. diff --git a/configure.ac b/configure.ac index dae0a1e..590e8bf 100644 --- a/configure.ac +++ b/configure.ac @@ -369,28 +369,38 @@ fi AC_SUBST(CAIRO_FEATURE) AC_SUBST(CAIRO_REQ) -POPPLER_GLIB_DISABLE_DEPRECATED="" -POPPLER_GLIB_DISABLE_SINGLE_INCLUDES="" - -GLIB_REQUIRED=2.18 -AC_ARG_ENABLE(poppler-glib, - AC_HELP_STRING([--disable-poppler-glib], - [Don't compile poppler glib wrapper.]), - enable_poppler_glib=$enableval, - enable_poppler_glib="try") -if test x$enable_poppler_glib = xyes; then - PKG_CHECK_MODULES(POPPLER_GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED) -elif test x$enable_poppler_glib = xtry; then - PKG_CHECK_MODULES(POPPLER_GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED, - [enable_poppler_glib="yes"], - [enable_poppler_glib="no"]) -fi -if test x$enable_poppler_glib = xyes; then - AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums]) - POPPLER_GLIB_DISABLE_DEPRECATED="$POPPLER_GLIB_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED" - POPPLER_GLIB_DISABLE_SINGLE_INCLUDES="$POPPLER_GLIB_DISABLE_SINGLE_INCLUDES -DG_DISABLE_SINGLE_INCLUDES" +if test x$enable_cairo_output = xyes; then + POPPLER_GLIB_DISABLE_DEPRECATED="" + POPPLER_GLIB_DISABLE_SINGLE_INCLUDES="" + + GLIB_REQUIRED=2.18 + AC_ARG_ENABLE(poppler-glib, + AC_HELP_STRING([--disable-poppler-glib], + [Don't compile poppler glib wrapper.]), + enable_poppler_glib=$enableval, + enable_poppler_glib="try") + if test x$enable_poppler_glib = xyes; then + PKG_CHECK_MODULES(POPPLER_GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION) + elif test x$enable_poppler_glib = xtry; then + PKG_CHECK_MODULES(POPPLER_GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION, + [enable_poppler_glib="yes"], + [enable_poppler_glib="no"]) + fi + if test x$enable_poppler_glib = xyes; then + GLIB_REQ="glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION" + AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums]) + POPPLER_GLIB_DISABLE_DEPRECATED="$POPPLER_GLIB_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED" + POPPLER_GLIB_DISABLE_SINGLE_INCLUDES="$POPPLER_GLIB_DISABLE_SINGLE_INCLUDES -DG_DISABLE_SINGLE_INCLUDES" + fi +else + if test x$enable_poppler_glib = xyes; then + AC_MSG_ERROR("Cairo output is required to build glib frontend") + fi + enable_poppler_glib="no" + GLIB_REQ="" fi AM_CONDITIONAL(BUILD_POPPLER_GLIB, test x$enable_poppler_glib = xyes) +AC_SUBST(GLIB_REQ) GTK_DOC_CHECK([1.0]) @@ -407,34 +417,30 @@ if test x$enable_poppler_glib = xyes; then if test x$enable_gdk = xyes; then PKG_CHECK_MODULES(GDK, gdk-2.0) elif test x$enable_gdk = xtry; then - if test x$enable_splash_output = xyes; then - PKG_CHECK_MODULES(GDK, gdk-2.0, - [enable_gdk="yes"], - [enable_gdk="no"]) - elif test x$enable_cairo_output = xyes; then - PKG_CHECK_MODULES(GDK, gdk-2.0, - [enable_gdk="yes"], - [enable_gdk="no"]) - fi - elif test x$enable_splash_output = xyes; then - PKG_CHECK_MODULES(GDK, gdk-2.0) - AC_MSG_WARN("GDK is required by the glib wrapper when splash output device is - enabled. If you want to comppile popler without GDK use --disable-splash-output too") - enable_gdk=yes + PKG_CHECK_MODULES(GDK, gdk-2.0, + [enable_gdk="yes"], + [enable_gdk="no"]) fi if test x$enable_gdk = xyes; then + GDK_REQ="gdk-2.0 gdk-pixbuf-2.0" AC_DEFINE(POPPLER_WITH_GDK,[1], [Have GDK]) GDK_FEATURE="#define POPPLER_WITH_GDK 1" POPPLER_GLIB_DISABLE_DEPRECATED="$POPPLER_GLIB_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED" POPPLER_GLIB_DISABLE_SINGLE_INCLUDES="$POPPLER_GLIB_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES" else + enable_gdk="no" GDK_FEATURE="" + GDK_REQ="" fi +else + enable_gdk="no" + GDK_REQ="" fi AM_CONDITIONAL(BUILD_WITH_GDK, test x$enable_gdk = xyes) AC_SUBST(GDK_CFLAGS) AC_SUBST(GDK_LIBS) AC_SUBST(GDK_FEATURE) +AC_SUBST(GDK_REQ) AC_SUBST(POPPLER_GLIB_DISABLE_DEPRECATED) AC_SUBST(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES) diff --git a/glib/Makefile.am b/glib/Makefile.am index 3c065fe..bb6c489 100644 --- a/glib/Makefile.am +++ b/glib/Makefile.am @@ -1,25 +1,12 @@ -if BUILD_CAIRO_OUTPUT - -cairo_includes = \ - $(CAIRO_CFLAGS) - -cairo_libs = \ - $(top_builddir)/poppler/libpoppler-cairo.la \ - $(CAIRO_LIBS) - -endif - SUBDIRS = . reference demo INCLUDES = \ -DG_LOG_DOMAIN=\"Poppler\" \ -I$(top_srcdir) \ -I$(top_srcdir)/poppler \ - $(cairo_includes) \ $(POPPLER_GLIB_CFLAGS) \ $(GDK_CFLAGS) \ $(FREETYPE_CFLAGS) \ $(FONTCONFIG_CFLAGS) \ - $(cairo_includes) \ $(POPPLER_GLIB_DISABLE_DEPRECATED) \ $(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES) @@ -77,11 +64,11 @@ libpoppler_glib_la_SOURCES = \ libpoppler_glib_la_LIBADD = \ $(top_builddir)/poppler/libpoppler.la \ + $(top_builddir)/poppler/libpoppler-cairo.la \ $(POPPLER_GLIB_LIBS) \ $(GDK_LIBS) \ $(FREETYPE_LIBS) \ - $(FONTCONFIG_LIBS) \ - $(cairo_libs) + $(FONTCONFIG_LIBS) libpoppler_glib_la_LDFLAGS = -version-info 4:0:0 @create_shared_lib@ @auto_import_flags@ @@ -96,8 +83,7 @@ test_poppler_glib_LDADD = \ libpoppler-glib.la \ $(POPPLER_GLIB_LIBS) \ $(GDK_LIBS) \ - $(FREETYPE_LIBS) \ - $(cairo_libs) + $(FREETYPE_LIBS) endif BUILT_SOURCES = \ diff --git a/glib/poppler-document.cc b/glib/poppler-document.cc index cb6e485..eceb5c4 100644 --- a/glib/poppler-document.cc +++ b/glib/poppler-document.cc @@ -116,17 +116,8 @@ _poppler_document_new_from_pdfdoc (PDFDoc *newDoc, document->doc = newDoc; -#if defined (HAVE_CAIRO) document->output_dev = new CairoOutputDev (); document->output_dev->startDoc(document->doc->getXRef (), document->doc->getCatalog ()); -#elif defined (HAVE_SPLASH) - SplashColor white; - white[0] = 255; - white[1] = 255; - white[2] = 255; - document->output_dev = new SplashOutputDev(splashModeRGB8, 4, gFalse, white); - document->output_dev->startDoc(document->doc->getXRef ()); -#endif return document; } diff --git a/glib/poppler-page.cc b/glib/poppler-page.cc index 2448644..c439c2a 100644 --- a/glib/poppler-page.cc +++ b/glib/poppler-page.cc @@ -71,15 +71,8 @@ poppler_page_finalize (GObject *object) if (page->annots != NULL) delete page->annots; -#if defined (HAVE_CAIRO) if (page->text != NULL) page->text->decRefCnt(); -#else - if (page->gfx != NULL) - delete page->gfx; - if (page->text_dev != NULL) - delete page->text_dev; -#endif /* page->page is owned by the document */ } @@ -235,35 +228,6 @@ poppler_page_get_transition (PopplerPage *page) return transition; } -#if !defined (HAVE_CAIRO) -static TextOutputDev * -poppler_page_get_text_output_dev (PopplerPage *page) -{ - if (page->text_dev == NULL) { - page->text_dev = new TextOutputDev (NULL, gTrue, gFalse, gFalse); - - if (page->gfx) - delete page->gfx; - page->gfx = page->page->createGfx(page->text_dev, - 72.0, 72.0, 0, - gFalse, /* useMediaBox */ - gTrue, /* Crop */ - -1, -1, -1, -1, - gFalse, /* printing */ - page->document->doc->getCatalog (), - NULL, NULL, NULL, NULL); - - page->page->display(page->gfx); - - page->text_dev->endPage(); - } - - return page->text_dev; -} -#endif /* !defined (HAVE_CAIRO) */ - -#if defined (HAVE_CAIRO) - static TextPage * poppler_page_get_text_page (PopplerPage *page) { @@ -409,125 +373,6 @@ poppler_page_set_selection_alpha (PopplerPage *page, } #endif /* POPPLER_WITH_GDK */ -#elif defined (HAVE_SPLASH) && defined (POPPLER_WITH_GDK) - -typedef struct { -} OutputDevData; - -static void -poppler_page_prepare_output_dev (PopplerPage *page, - double scale, - int rotation, - gboolean transparent, - OutputDevData *output_dev_data) -{ - /* pft */ -} - -static void -poppler_page_copy_to_pixbuf(PopplerPage *page, - GdkPixbuf *pixbuf, - OutputDevData *data) -{ - SplashOutputDev *output_dev; - SplashBitmap *bitmap; - SplashColorPtr color_ptr; - int splash_width, splash_height, splash_rowstride; - int pixbuf_rowstride, pixbuf_n_channels; - guchar *pixbuf_data, *dst; - int x, y; - - output_dev = page->document->output_dev; - - bitmap = output_dev->getBitmap (); - color_ptr = bitmap->getDataPtr (); - - splash_width = bitmap->getWidth (); - splash_height = bitmap->getHeight (); - splash_rowstride = bitmap->getRowSize (); - - pixbuf_data = gdk_pixbuf_get_pixels (pixbuf); - pixbuf_rowstride = gdk_pixbuf_get_rowstride (pixbuf); - pixbuf_n_channels = gdk_pixbuf_get_n_channels (pixbuf); - - if (splash_width > gdk_pixbuf_get_width (pixbuf)) - splash_width = gdk_pixbuf_get_width (pixbuf); - if (splash_height > gdk_pixbuf_get_height (pixbuf)) - splash_height = gdk_pixbuf_get_height (pixbuf); - - SplashColorPtr pixel = new Guchar[4]; - for (y = 0; y < splash_height; y++) - { - dst = pixbuf_data + y * pixbuf_rowstride; - for (x = 0; x < splash_width; x++) - { - output_dev->getBitmap()->getPixel(x, y, pixel); - dst[0] = pixel[0]; - dst[1] = pixel[1]; - dst[2] = pixel[2]; - if (pixbuf_n_channels == 4) - dst[3] = 0xff; - dst += pixbuf_n_channels; - } - } - delete [] pixel; -} - -static void -poppler_page_set_selection_alpha (PopplerPage *page, - double scale, - GdkPixbuf *pixbuf, - PopplerSelectionStyle style, - PopplerRectangle *selection) -{ - GList *region, *l; - gint x, y, width, height; - int pixbuf_rowstride, pixbuf_n_channels; - guchar *pixbuf_data, *dst; - - pixbuf_data = gdk_pixbuf_get_pixels (pixbuf); - pixbuf_rowstride = gdk_pixbuf_get_rowstride (pixbuf); - pixbuf_n_channels = gdk_pixbuf_get_n_channels (pixbuf); - width = gdk_pixbuf_get_width (pixbuf); - height = gdk_pixbuf_get_height (pixbuf); - - if (pixbuf_n_channels != 4) - return; - - for (y = 0; y < height; y++) { - dst = pixbuf_data + y * pixbuf_rowstride; - for (x = 0; x < width; x++) { - dst[3] = 0x00; - dst += pixbuf_n_channels; - } - } - - region = poppler_page_get_selection_region (page, scale, style, selection); - - for (l = region; l; l = g_list_next (l)) { - PopplerRectangle *rectangle = (PopplerRectangle *)l->data; - GdkRectangle rect; - - rect.x = (gint)rectangle->x1; - rect.y = (gint)rectangle->y1; - rect.width = (gint) (rectangle->x2 - rectangle->x1); - rect.height = (gint) (rectangle->y2 - rectangle->y1); - - for (y = 0; y < rect.height; y++) { - dst = pixbuf_data + (rect.y + y) * pixbuf_rowstride + - rect.x * pixbuf_n_channels; - for (x = 0; x < rect.width; x++) { - dst[3] = 0xff; - dst += pixbuf_n_channels; - } - } - } - - poppler_page_selection_region_free (region); -} - -#endif /* HAVE_SPLASH */ - static GBool poppler_print_annot_cb (Annot *annot, void *user_data) { @@ -536,8 +381,6 @@ poppler_print_annot_cb (Annot *annot, void *user_data) return (annot->getType() == Annot::typeWidget); } -#if defined (HAVE_CAIRO) - static void _poppler_page_render (PopplerPage *page, cairo_t *cairo, @@ -758,8 +601,6 @@ poppler_page_render_selection (PopplerPage *page, output_dev->setCairo (NULL); } -#endif /* HAVE_CAIRO */ - #ifdef POPPLER_WITH_GDK static void _poppler_page_render_to_pixbuf (PopplerPage *page, @@ -922,6 +763,7 @@ poppler_page_render_selection_to_pixbuf (PopplerPage *page, { OutputDev *output_dev; OutputDevData data; + TextPage *text; SelectionStyle selection_style = selectionStyleGlyph; PDFRectangle pdf_selection(selection->x1, selection->y1, selection->x2, selection->y2); @@ -958,30 +800,11 @@ poppler_page_render_selection_to_pixbuf (PopplerPage *page, poppler_page_prepare_output_dev (page, scale, rotation, TRUE, &data); -#if defined (HAVE_CAIRO) - TextPage *text; - text = poppler_page_get_text_page (page); text->drawSelection (output_dev, scale, rotation, &pdf_selection, selection_style, &gfx_glyph_color, &gfx_background_color); -#else - TextOutputDev *text_dev; - text_dev = poppler_page_get_text_output_dev (page); - text_dev->drawSelection (output_dev, scale, rotation, - &pdf_selection, selection_style, - &gfx_glyph_color, &gfx_background_color); - /* We'll need a function to destroy page->text_dev and page->gfx - * when the application wants to get rid of them. - * - * Two improvements: 1) make GfxFont refcounted and let TextPage and - * friends hold a reference to the GfxFonts they need so we can free - * up Gfx early. 2) use a TextPage directly when rendering the page - * so we don't have to use TextOutputDev and render a second - * time. */ -#endif - poppler_page_copy_to_pixbuf (page, pixbuf, &data); poppler_page_set_selection_alpha (page, scale, pixbuf, style, selection); @@ -1057,6 +880,7 @@ poppler_page_get_selection_region (PopplerPage *page, PopplerRectangle *selection) { PDFRectangle poppler_selection; + TextPage *text; SelectionStyle selection_style = selectionStyleGlyph; GooList *list; GList *region = NULL; @@ -1080,20 +904,10 @@ poppler_page_get_selection_region (PopplerPage *page, break; } -#if defined (HAVE_CAIRO) - TextPage *text; - text = poppler_page_get_text_page (page); list = text->getSelectionRegion(&poppler_selection, selection_style, scale); -#else - TextOutputDev *text_dev; - - text_dev = poppler_page_get_text_output_dev (page); - list = text_dev->getSelectionRegion(&poppler_selection, - selection_style, scale); -#endif - + for (i = 0; i < list->getLength(); i++) { PDFRectangle *selection_rect = (PDFRectangle *) list->get(i); PopplerRectangle *rect; @@ -1144,6 +958,7 @@ poppler_page_get_text (PopplerPage *page, GooString *sel_text; double height; char *result; + TextPage *text; SelectionStyle selection_style = selectionStyleGlyph; PDFRectangle pdf_selection; @@ -1169,18 +984,8 @@ poppler_page_get_text (PopplerPage *page, break; } -#if defined (HAVE_CAIRO) - TextPage *text; - text = poppler_page_get_text_page (page); sel_text = text->getSelectionText (&pdf_selection, selection_style); -#else - TextOutputDev *text_dev; - - text_dev = poppler_page_get_text_output_dev (page); - sel_text = text_dev->getSelectionText (&pdf_selection, selection_style); -#endif - result = g_strdup (sel_text->getCString ()); delete sel_text; @@ -1207,23 +1012,12 @@ poppler_page_find_text (PopplerPage *page, gunichar *ucs4; glong ucs4_len; double height; -#if defined (HAVE_CAIRO) TextPage *text_dev; -#else - TextOutputDev *text_dev; -#endif - + g_return_val_if_fail (POPPLER_IS_PAGE (page), FALSE); g_return_val_if_fail (text != NULL, FALSE); -#if defined (HAVE_CAIRO) text_dev = poppler_page_get_text_page (page); -#else - text_dev = new TextOutputDev (NULL, gTrue, gFalse, gFalse); - page->page->display (text_dev, 72, 72, 0, - gFalse, gTrue, gFalse, - page->document->doc->getCatalog()); -#endif ucs4 = g_utf8_to_ucs4_fast (text, -1, &ucs4_len); poppler_page_get_size (page, NULL, &height); @@ -1246,17 +1040,11 @@ poppler_page_find_text (PopplerPage *page, matches = g_list_prepend (matches, match); } -#if !defined (HAVE_CAIRO) - delete text_dev; -#endif - g_free (ucs4); return g_list_reverse (matches); } -#if defined (HAVE_CAIRO) - static CairoImageOutputDev * poppler_page_get_image_output_dev (PopplerPage *page, GBool (*imgDrawDeviceCbk)(int img_id, void *data), @@ -1397,21 +1185,6 @@ poppler_page_free_image_mapping (GList *list) g_list_free (list); } -#else /* HAVE_CAIRO */ - -GList * -poppler_page_get_image_mapping (PopplerPage *page) -{ - return NULL; -} - -void -poppler_page_free_image_mapping (GList *list) -{ -} - -#endif /* HAVE_CAIRO */ - /** * poppler_page_render_to_ps: * @page: a #PopplerPage diff --git a/glib/poppler-page.h b/glib/poppler-page.h index 9351048..20dc20f 100644 --- a/glib/poppler-page.h +++ b/glib/poppler-page.h @@ -27,10 +27,7 @@ #include <gdk/gdk.h> #include <gdk-pixbuf/gdk-pixbuf.h> #endif - -#ifdef POPPLER_HAS_CAIRO #include <cairo.h> -#endif G_BEGIN_DECLS @@ -71,7 +68,6 @@ void poppler_page_render_selection_to_pixbuf ( GdkColor *background_color); #endif /* POPPLER_WITH_GDK */ -#ifdef POPPLER_HAS_CAIRO void poppler_page_render (PopplerPage *page, cairo_t *cairo); void poppler_page_render_for_printing (PopplerPage *page, @@ -84,7 +80,6 @@ void poppler_page_render_selection (PopplerPage *pa PopplerSelectionStyle style, PopplerColor *glyph_color, PopplerColor *background_color); -#endif /* POPPLER_HAS_CAIRO */ void poppler_page_get_size (PopplerPage *page, double *width, @@ -111,10 +106,8 @@ GList *poppler_page_get_link_mapping (PopplerPage *pa void poppler_page_free_link_mapping (GList *list); GList *poppler_page_get_image_mapping (PopplerPage *page); void poppler_page_free_image_mapping (GList *list); -#ifdef POPPLER_HAS_CAIRO cairo_surface_t *poppler_page_get_image (PopplerPage *page, gint image_id); -#endif /* POPPLER_HAS_CAIRO */ GList *poppler_page_get_form_field_mapping (PopplerPage *page); void poppler_page_free_form_field_mapping (GList *list); GList *poppler_page_get_annot_mapping (PopplerPage *page); diff --git a/glib/poppler-private.h b/glib/poppler-private.h index a41742c..ed36a86 100644 --- a/glib/poppler-private.h +++ b/glib/poppler-private.h @@ -11,12 +11,7 @@ #include <TextOutputDev.h> #include <Catalog.h> #include <OptionalContent.h> - -#if defined (HAVE_CAIRO) #include <CairoOutputDev.h> -#elif defined (HAVE_SPLASH) -#include <SplashOutputDev.h> -#endif struct _PopplerDocument { @@ -25,11 +20,7 @@ struct _PopplerDocument GList *layers; GList *layers_rbgroups; -#if defined (HAVE_CAIRO) CairoOutputDev *output_dev; -#elif defined (HAVE_SPLASH) - SplashOutputDev *output_dev; -#endif }; struct _PopplerPSFile @@ -59,12 +50,7 @@ struct _PopplerPage PopplerDocument *document; Page *page; int index; -#if defined (HAVE_CAIRO) TextPage *text; -#else - TextOutputDev *text_dev; - Gfx *gfx; -#endif Annots *annots; }; diff --git a/glib/poppler.cc b/glib/poppler.cc index 3c1d503..cc2ca4d 100644 --- a/glib/poppler.cc +++ b/glib/poppler.cc @@ -39,13 +39,7 @@ GQuark poppler_error_quark (void) PopplerBackend poppler_get_backend (void) { -#if defined (HAVE_CAIRO) return POPPLER_BACKEND_CAIRO; -#elif defined (HAVE_SPLASH) - return POPPLER_BACKEND_SPLASH; -#else - return POPPLER_BACKEND_UNKNOWN; -#endif } static const char poppler_version[] = PACKAGE_VERSION; diff --git a/glib/test-poppler-glib.cc b/glib/test-poppler-glib.cc index e64000e..97a51cc 100644 --- a/glib/test-poppler-glib.cc +++ b/glib/test-poppler-glib.cc @@ -538,20 +538,18 @@ int main (int argc, char *argv[]) for (l = list; l != NULL; l = l->next) { PopplerImageMapping *mapping; -#if defined (HAVE_CAIRO) cairo_surface_t *image; -#endif + mapping = (PopplerImageMapping *)l->data; printf ("\t\t(%f, %f) - (%f, %f)\n", mapping->area.x1, mapping->area.y1, mapping->area.x2, mapping->area.y2); -#if defined (HAVE_CAIRO) + image = poppler_page_get_image (page, mapping->image_id); printf ("\t\tImage: %p\n", image); cairo_surface_destroy (image); -#endif } poppler_page_free_image_mapping (list); diff --git a/poppler-glib.pc.in b/poppler-glib.pc.in index 2b79945..b3d145f 100644 --- a/poppler-glib.pc.in +++ b/poppler-glib.pc.in @@ -6,7 +6,7 @@ included...@includedir@ Name: poppler-glib Description: GLib wrapper for poppler Version: @VERSION@ -Requires: @PC_REQUIRES@ gobject-2.0 gdk-2.0 gdk-pixbuf-2.0 @CAIRO_REQ@ +Requires: poppler-cairo = @VERSION@ @GLIB_REQ@ @GDK_REQ@ @PC_REQUIRES_PRIVATE@ Libs: -L${libdir} -lpoppler-glib _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
