#ifndef __GDK_DRAWABLE_X11_H__
#define __GDK_DRAWABLE_X11_H__
-#include <config.h>
+#include "config.h"
#include <gdk/gdkdrawable.h>
-#ifdef HAVE_XFT
+#include <X11/Xlib.h>
#include <X11/extensions/Xrender.h>
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
/* Drawable implementation for X11
*/
+typedef enum
+{
+ GDK_X11_FORMAT_NONE,
+ GDK_X11_FORMAT_EXACT_MASK,
+ GDK_X11_FORMAT_ARGB_MASK,
+ GDK_X11_FORMAT_ARGB
+} GdkX11FormatType;
+
typedef struct _GdkDrawableImplX11 GdkDrawableImplX11;
typedef struct _GdkDrawableImplX11Class GdkDrawableImplX11Class;
Window xid;
GdkScreen *screen;
-#ifdef HAVE_XFT
Picture picture;
-#endif
+ cairo_surface_t *cairo_surface;
};
struct _GdkDrawableImplX11Class
GType _gdk_drawable_impl_x11_get_type (void);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+void _gdk_x11_convert_to_format (guchar *src_buf,
+ gint src_rowstride,
+ guchar *dest_buf,
+ gint dest_rowstride,
+ GdkX11FormatType dest_format,
+ GdkByteOrder dest_byteorder,
+ gint width,
+ gint height);
+
+/* Note that the following take GdkDrawableImplX11, not the wrapper drawable */
+void _gdk_x11_drawable_finish (GdkDrawable *drawable);
+void _gdk_x11_drawable_update_size (GdkDrawable *drawable);
+
+G_END_DECLS
#endif /* __GDK_DRAWABLE_X11_H__ */