#ifndef RefPtrCairo_h
#define RefPtrCairo_h
#if USE(CAIRO)
#include <wtf/RefPtr.h>
typedef struct _cairo cairo_t;
typedef struct _cairo_surface cairo_surface_t;
typedef struct _cairo_font_face cairo_font_face_t;
typedef struct _cairo_scaled_font cairo_scaled_font_t;
typedef struct _cairo_pattern cairo_pattern_t;
typedef struct _cairo_region cairo_region_t;
#if USE(FREETYPE)
typedef struct _FcPattern FcPattern;
typedef struct _FcConfig FcConfig;
#endif
namespace WTF {
template<> void refIfNotNull(cairo_t* ptr);
template<> void derefIfNotNull(cairo_t* ptr);
template<> void refIfNotNull(cairo_surface_t* ptr);
template<> void derefIfNotNull(cairo_surface_t* ptr);
template<> void refIfNotNull(cairo_font_face_t* ptr);
template<> void derefIfNotNull(cairo_font_face_t* ptr);
template<> void refIfNotNull(cairo_scaled_font_t* ptr);
template<> void derefIfNotNull(cairo_scaled_font_t* ptr);
template<> void refIfNotNull(cairo_pattern_t*);
template<> void derefIfNotNull(cairo_pattern_t*);
template<> void refIfNotNull(cairo_region_t*);
template<> void derefIfNotNull(cairo_region_t*);
#if USE(FREETYPE)
template<> void refIfNotNull(FcPattern* ptr);
template<> void derefIfNotNull(FcPattern* ptr);
template<> void refIfNotNull(FcConfig* ptr);
template<> void derefIfNotNull(FcConfig* ptr);
#endif
}
#endif // USE(CAIRO)
#endif // RefPtrCairo_h