1 #ifndef FSVG_H 2 #define FSVG_H 3 4 #ifdef HAVE_RSVG 5 #define USE_SVG 1 6 #else 7 #define USE_SVG 0 8 #endif 9 10 #include "PictureBase.h" 11 12 #ifndef M_PI 13 #define M_PI 3.14159265358979323846 14 #endif 15 16 #if USE_SVG 17 # include <librsvg/rsvg.h> 18 # include <cairo.h> 19 typedef RsvgDimensionData FRsvgDimensionData; 20 typedef RsvgHandle FRsvgHandle; 21 typedef cairo_surface_t Fcairo_surface_t; 22 typedef cairo_t Fcairo_t; 23 24 # define FCAIRO_FORMAT_ARGB32 CAIRO_FORMAT_ARGB32 25 # define FCAIRO_STATUS_SUCCESS CAIRO_STATUS_SUCCESS 26 27 # define FG_OBJECT(a) G_OBJECT(a) 28 # define Fg_object_unref(a) g_object_unref(a) 29 # define Frsvg_handle_get_dimensions(a, b) \ 30 rsvg_handle_get_dimensions(a, b) 31 # define Frsvg_handle_new_from_file(a, b) rsvg_handle_new_from_file(a, b) 32 # define Frsvg_handle_render_cairo(a, b) rsvg_handle_render_cairo(a, b) 33 34 /* TA: 2013-01-22 -- rsvg_init() has been deprecated since version 2.36; but 35 * RSVG doesn't define a version of its own to check against. Since RSVG uses 36 * glib, we can check its version instead. 37 */ 38 #if !GLIB_CHECK_VERSION (2, 31, 0) 39 # define Frsvg_init() rsvg_init() 40 #endif 41 42 #if !GLIB_CHECK_VERSION(2,35,0) 43 # define Frsvg_init() g_type_init() 44 #endif 45 46 # define Fcairo_create(a) cairo_create(a) 47 # define Fcairo_destroy(a) cairo_destroy(a) 48 # define Fcairo_image_surface_create_for_data(a,b,c,d,e) \ 49 cairo_image_surface_create_for_data(a,b,c,d,e) 50 # define Fcairo_rotate(a, b) cairo_rotate(a, b) 51 # define Fcairo_scale(a, b, c) cairo_scale(a, b, c) 52 # define Fcairo_status(a) cairo_status(a) 53 # define Fcairo_surface_destroy(a) cairo_surface_destroy(a) 54 # define Fcairo_surface_status(a) cairo_surface_status(a) 55 # define Fcairo_translate(a, b, c) cairo_translate(a, b, c) 56 #else 57 typedef struct { 58 int width; 59 int height; 60 double em; 61 double ex; 62 } FRsvgDimensionData; 63 typedef void FRsvgHandle; 64 typedef void Fcairo_surface_t; 65 typedef void Fcairo_t; 66 67 # define FCAIRO_FORMAT_ARGB32 0 68 # define FCAIRO_STATUS_SUCCESS 0 69 70 # define FG_OBJECT(a) 71 # define Fg_object_unref(a) 72 # define Frsvg_handle_get_dimensions(a, b) 73 # define Frsvg_handle_new_from_file(a, b) 0 74 # define Frsvg_handle_render_cairo(a, b) 75 # define Frsvg_init() 76 77 # define Fcairo_create(a) 0 78 # define Fcairo_destroy(a) 79 # define Fcairo_image_surface_create_for_data(a,b,c,d,e) 0 80 # define Fcairo_rotate(a, b) 81 # define Fcairo_scale(a, b, c) 82 # define Fcairo_status(a) 0 83 # define Fcairo_surface_destroy(a) 84 # define Fcairo_surface_status(a) 0 85 # define Fcairo_translate(a, b, c) 86 #endif 87 88 #endif /* FSVG_H */ 89