resources/examples/libcairo/libcairo.def
changeset 21 899da9dea8a9
parent 8 b823a5b502d7
--- a/resources/examples/libcairo/libcairo.def	Wed May 30 19:56:35 2012 +0000
+++ b/resources/examples/libcairo/libcairo.def	Wed May 30 19:57:40 2012 +0000
@@ -3,6 +3,15 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
+(enum _cairo_text_cluster_flags
+	(value (CAIRO_TEXT_CLUSTER_FLAG_BACKWARD) 1))
+(typedef cairo_text_cluster_flags_t
+	_cairo_text_cluster_flags)
+(function cairo_region_intersect_rectangle
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return cairo_status_t))
 (struct cairo_glyph_t :size 160
 	(field (long unsigned int) index :offset 0)
 	(field (double) x :offset 32)
@@ -37,6 +46,13 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return cairo_fill_rule_t))
+(enum _cairo_device_type
+	(value (CAIRO_DEVICE_TYPE_DRM) 0)
+	(value (CAIRO_DEVICE_TYPE_GL) 1)
+	(value (CAIRO_DEVICE_TYPE_SCRIPT) 2)
+	(value (CAIRO_DEVICE_TYPE_XCB) 3)
+	(value (CAIRO_DEVICE_TYPE_XLIB) 4)
+	(value (CAIRO_DEVICE_TYPE_XML) 5))
 (function cairo_arc
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -74,6 +90,12 @@
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern))
 	(return cairo_pattern_type_t))
+(struct _cairo_region :size 0)
+(typedef cairo_region_t
+	_cairo_region)
+(function cairo_region_create
+	()
+	(return (pointer-to cairo_region_t)))
 (struct _cairo_user_data_key :size 32
 	(field (int) unused :offset 0))
 (function cairo_rel_line_to
@@ -141,6 +163,16 @@
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return int))
+(function cairo_user_font_face_get_render_glyph_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return (pointer-to (function-type cairo_user_scaled_font_render_glyph_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument (long unsigned int) )
+				(argument ((pointer-to cairo_t)) )
+				(argument ((pointer-to cairo_text_extents_t)) ))
+			(return cairo_status_t)))))
 (struct cairo_text_extents_t :size 384
 	(field (double) x_bearing :offset 0)
 	(field (double) y_bearing :offset 64)
@@ -172,6 +204,10 @@
 		(argument ((pointer-to double)) y1)
 		(argument ((pointer-to double)) r1))
 	(return cairo_status_t))
+(function cairo_device_finish
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return void))
 (function cairo_matrix_rotate
 	(
 		(argument ((pointer-to cairo_matrix_t)) matrix)
@@ -196,6 +232,12 @@
 		(argument (int) height)
 		(argument (int) stride))
 	(return (pointer-to cairo_surface_t)))
+(function cairo_line_to
+	(
+		(argument ((pointer-to cairo_t)) cr)
+		(argument (double) x)
+		(argument (double) y))
+	(return void))
 (struct _cairo_rectangle_list :size 96
 	(field (cairo_status_t) status :offset 0)
 	(field (
@@ -209,6 +251,12 @@
 		(argument (cairo_format_t) format)
 		(argument (int) width))
 	(return int))
+(enum _cairo_region_overlap
+	(value (CAIRO_REGION_OVERLAP_IN) 0)
+	(value (CAIRO_REGION_OVERLAP_OUT) 1)
+	(value (CAIRO_REGION_OVERLAP_PART) 2))
+(typedef cairo_region_overlap_t
+	_cairo_region_overlap)
 (function cairo_surface_destroy
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
@@ -242,7 +290,19 @@
 	(value (CAIRO_STATUS_INVALID_INDEX) 21)
 	(value (CAIRO_STATUS_CLIP_NOT_REPRESENTABLE) 22)
 	(value (CAIRO_STATUS_TEMP_FILE_ERROR) 23)
-	(value (CAIRO_STATUS_INVALID_STRIDE) 24))
+	(value (CAIRO_STATUS_INVALID_STRIDE) 24)
+	(value (CAIRO_STATUS_FONT_TYPE_MISMATCH) 25)
+	(value (CAIRO_STATUS_USER_FONT_IMMUTABLE) 26)
+	(value (CAIRO_STATUS_USER_FONT_ERROR) 27)
+	(value (CAIRO_STATUS_NEGATIVE_COUNT) 28)
+	(value (CAIRO_STATUS_INVALID_CLUSTERS) 29)
+	(value (CAIRO_STATUS_INVALID_SLANT) 30)
+	(value (CAIRO_STATUS_INVALID_WEIGHT) 31)
+	(value (CAIRO_STATUS_INVALID_SIZE) 32)
+	(value (CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED) 33)
+	(value (CAIRO_STATUS_DEVICE_TYPE_MISMATCH) 34)
+	(value (CAIRO_STATUS_DEVICE_ERROR) 35)
+	(value (CAIRO_STATUS_LAST_STATUS) 36))
 (typedef cairo_status_t
 	_cairo_status)
 (function cairo_set_user_data
@@ -255,16 +315,6 @@
 				(argument ((pointer-to void)) ))
 			(return void)))) destroy))
 	(return cairo_status_t))
-(function cairo_curve_to
-	(
-		(argument ((pointer-to cairo_t)) cr)
-		(argument (double) x1)
-		(argument (double) y1)
-		(argument (double) x2)
-		(argument (double) y2)
-		(argument (double) x3)
-		(argument (double) y3))
-	(return void))
 (function cairo_matrix_init_rotate
 	(
 		(argument ((pointer-to cairo_matrix_t)) matrix)
@@ -290,11 +340,35 @@
 		(argument (double) x)
 		(argument (double) y))
 	(return void))
+(function cairo_user_font_face_get_init_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return (pointer-to (function-type cairo_user_scaled_font_init_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument ((pointer-to cairo_t)) )
+				(argument ((pointer-to cairo_font_extents_t)) ))
+			(return cairo_status_t)))))
+(function cairo_region_reference
+	(
+		(argument ((pointer-to cairo_region_t)) region))
+	(return (pointer-to cairo_region_t)))
 (function cairo_set_scaled_font
 	(
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const cairo_scaled_font_t)) scaled_font))
 	(return void))
+(function cairo_region_get_rectangle
+	(
+		(argument ((pointer-to const cairo_region_t)) region)
+		(argument (int) nth)
+		(argument ((pointer-to cairo_rectangle_int_t)) rectangle))
+	(return void))
+(function cairo_region_equal
+	(
+		(argument ((pointer-to const cairo_region_t)) a)
+		(argument ((pointer-to const cairo_region_t)) b))
+	(return int))
 (function cairo_font_face_reference
 	(
 		(argument ((pointer-to cairo_font_face_t)) font_face))
@@ -380,6 +454,9 @@
 		(argument (double) green)
 		(argument (double) blue))
 	(return void))
+(function cairo_user_font_face_create
+	()
+	(return (pointer-to cairo_font_face_t)))
 (function cairo_show_page
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -390,7 +467,17 @@
 	(value (CAIRO_FONT_TYPE_TOY) 0)
 	(value (CAIRO_FONT_TYPE_FT) 1)
 	(value (CAIRO_FONT_TYPE_WIN32) 2)
-	(value (CAIRO_FONT_TYPE_QUARTZ) 3))
+	(value (CAIRO_FONT_TYPE_QUARTZ) 3)
+	(value (CAIRO_FONT_TYPE_USER) 4))
+(function cairo_region_intersect
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_region_t)) other))
+	(return cairo_status_t))
+(function cairo_region_copy
+	(
+		(argument ((pointer-to const cairo_region_t)) original))
+	(return (pointer-to cairo_region_t)))
 (function cairo_append_path
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -408,6 +495,10 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument (double) size))
 	(return void))
+(function cairo_region_status
+	(
+		(argument ((pointer-to const cairo_region_t)) region))
+	(return cairo_status_t))
 (enum _cairo_font_slant
 	(value (CAIRO_FONT_SLANT_NORMAL) 0)
 	(value (CAIRO_FONT_SLANT_ITALIC) 1)
@@ -427,6 +518,11 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const cairo_matrix_t)) matrix))
 	(return void))
+(function cairo_recording_surface_create
+	(
+		(argument (cairo_content_t) content)
+		(argument ((pointer-to const cairo_rectangle_t)) extents))
+	(return (pointer-to cairo_surface_t)))
 (function cairo_get_tolerance
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -452,6 +548,10 @@
 				(argument ((pointer-to void)) ))
 			(return void)))) destroy))
 	(return cairo_status_t))
+(function cairo_glyph_allocate
+	(
+		(argument (int) num_glyphs))
+	(return (pointer-to cairo_glyph_t)))
 (function cairo_translate
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -467,6 +567,10 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument (double) angle))
 	(return void))
+(function cairo_region_num_rectangles
+	(
+		(argument ((pointer-to const cairo_region_t)) region))
+	(return int))
 (function cairo_get_line_join
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -535,16 +639,43 @@
 			(return cairo_status_t)))) write_func)
 		(argument ((pointer-to void)) closure))
 	(return cairo_status_t))
-(function cairo_pattern_status
-	(
-		(argument ((pointer-to cairo_pattern_t)) pattern))
-	(return cairo_status_t))
+(struct _cairo_device :size 0)
+(typedef cairo_device_t
+	_cairo_device)
 (function cairo_text_extents
 	(
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const char)) utf8)
 		(argument ((pointer-to cairo_text_extents_t)) extents))
 	(return void))
+(function cairo_user_font_face_set_render_glyph_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face)
+		(argument ((pointer-to (function-type cairo_user_scaled_font_render_glyph_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument (long unsigned int) )
+				(argument ((pointer-to cairo_t)) )
+				(argument ((pointer-to cairo_text_extents_t)) ))
+			(return cairo_status_t)))) render_glyph_func))
+	(return void))
+(function cairo_region_contains_rectangle
+	(
+		(argument ((pointer-to const cairo_region_t)) region)
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return cairo_region_overlap_t))
+(function cairo_toy_font_face_get_family
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return (pointer-to const char)))
+(function cairo_surface_has_show_text_glyphs
+	(
+		(argument ((pointer-to cairo_surface_t)) surface))
+	(return int))
+(function cairo_toy_font_face_get_slant
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return cairo_font_slant_t))
 (function cairo_pattern_get_color_stop_rgba
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern)
@@ -569,7 +700,22 @@
 	(value (CAIRO_OPERATOR_DEST_ATOP) 10)
 	(value (CAIRO_OPERATOR_XOR) 11)
 	(value (CAIRO_OPERATOR_ADD) 12)
-	(value (CAIRO_OPERATOR_SATURATE) 13))
+	(value (CAIRO_OPERATOR_SATURATE) 13)
+	(value (CAIRO_OPERATOR_MULTIPLY) 14)
+	(value (CAIRO_OPERATOR_SCREEN) 15)
+	(value (CAIRO_OPERATOR_OVERLAY) 16)
+	(value (CAIRO_OPERATOR_DARKEN) 17)
+	(value (CAIRO_OPERATOR_LIGHTEN) 18)
+	(value (CAIRO_OPERATOR_COLOR_DODGE) 19)
+	(value (CAIRO_OPERATOR_COLOR_BURN) 20)
+	(value (CAIRO_OPERATOR_HARD_LIGHT) 21)
+	(value (CAIRO_OPERATOR_SOFT_LIGHT) 22)
+	(value (CAIRO_OPERATOR_DIFFERENCE) 23)
+	(value (CAIRO_OPERATOR_EXCLUSION) 24)
+	(value (CAIRO_OPERATOR_HSL_HUE) 25)
+	(value (CAIRO_OPERATOR_HSL_SATURATION) 26)
+	(value (CAIRO_OPERATOR_HSL_COLOR) 27)
+	(value (CAIRO_OPERATOR_HSL_LUMINOSITY) 28))
 (typedef cairo_operator_t
 	_cairo_operator)
 (function cairo_pattern_reference
@@ -581,14 +727,34 @@
 	(value (CAIRO_FONT_WEIGHT_BOLD) 1))
 (typedef cairo_font_weight_t
 	_cairo_font_weight)
-(function cairo_pattern_get_reference_count
-	(
-		(argument ((pointer-to cairo_pattern_t)) pattern))
-	(return unsigned int))
+(function cairo_device_release
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return void))
+(struct cairo_text_cluster_t :size 64
+	(field (int) num_bytes :offset 0)
+	(field (int) num_glyphs :offset 32))
 (function cairo_pattern_get_filter
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern))
 	(return cairo_filter_t))
+(function cairo_scaled_font_text_to_glyphs
+	(
+		(argument ((pointer-to cairo_scaled_font_t)) scaled_font)
+		(argument (double) x)
+		(argument (double) y)
+		(argument ((pointer-to const char)) utf8)
+		(argument (int) utf8_len)
+		(argument ((pointer-to (pointer-to cairo_glyph_t))) glyphs)
+		(argument ((pointer-to int)) num_glyphs)
+		(argument ((pointer-to (pointer-to cairo_text_cluster_t))) clusters)
+		(argument ((pointer-to int)) num_clusters)
+		(argument ((pointer-to cairo_text_cluster_flags_t)) cluster_flags))
+	(return cairo_status_t))
+(function cairo_device_acquire
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return cairo_status_t))
 (function cairo_scaled_font_get_ctm
 	(
 		(argument ((pointer-to cairo_scaled_font_t)) scaled_font)
@@ -618,12 +784,26 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to cairo_font_extents_t)) extents))
 	(return void))
+(struct _cairo_rectangle_int :size 128
+	(field (int) x :offset 0)
+	(field (int) y :offset 32)
+	(field (int) width :offset 64)
+	(field (int) height :offset 96))
 (function cairo_matrix_transform_point
 	(
 		(argument ((pointer-to const cairo_matrix_t)) matrix)
 		(argument ((pointer-to double)) x)
 		(argument ((pointer-to double)) y))
 	(return void))
+(function cairo_user_font_face_get_unicode_to_glyph_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return (pointer-to (function-type cairo_user_scaled_font_unicode_to_glyph_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument (long unsigned int) )
+				(argument ((pointer-to long unsigned int)) ))
+			(return cairo_status_t)))))
 (function cairo_paint_with_alpha
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -634,6 +814,11 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument (cairo_content_t) content))
 	(return void))
+(function cairo_region_subtract
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_region_t)) other))
+	(return cairo_status_t))
 (function cairo_scaled_font_extents
 	(
 		(argument ((pointer-to cairo_scaled_font_t)) scaled_font)
@@ -671,6 +856,10 @@
 (function cairo_debug_reset_static_data
 	()
 	(return void))
+(function cairo_region_create_rectangle
+	(
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return (pointer-to cairo_region_t)))
 (function cairo_image_surface_create
 	(
 		(argument (cairo_format_t) format)
@@ -689,10 +878,6 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
-(function cairo_font_options_copy
-	(
-		(argument ((pointer-to const cairo_font_options_t)) original))
-	(return (pointer-to cairo_font_options_t)))
 (function cairo_matrix_init_identity
 	(
 		(argument ((pointer-to cairo_matrix_t)) matrix))
@@ -701,12 +886,30 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return cairo_status_t))
+(function cairo_user_font_face_set_unicode_to_glyph_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face)
+		(argument ((pointer-to (function-type cairo_user_scaled_font_unicode_to_glyph_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument (long unsigned int) )
+				(argument ((pointer-to long unsigned int)) ))
+			(return cairo_status_t)))) unicode_to_glyph_func))
+	(return void))
 (function cairo_matrix_multiply
 	(
 		(argument ((pointer-to cairo_matrix_t)) result)
 		(argument ((pointer-to const cairo_matrix_t)) a)
 		(argument ((pointer-to const cairo_matrix_t)) b))
 	(return void))
+(function cairo_device_get_type
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return cairo_device_type_t))
+(function cairo_region_is_empty
+	(
+		(argument ((pointer-to const cairo_region_t)) region))
+	(return int))
 (function cairo_scaled_font_text_extents
 	(
 		(argument ((pointer-to cairo_scaled_font_t)) scaled_font)
@@ -765,6 +968,10 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return (pointer-to cairo_pattern_t)))
+(function cairo_font_options_copy
+	(
+		(argument ((pointer-to const cairo_font_options_t)) original))
+	(return (pointer-to cairo_font_options_t)))
 (enum _cairo_surface_type
 	(value (CAIRO_SURFACE_TYPE_IMAGE) 0)
 	(value (CAIRO_SURFACE_TYPE_PDF) 1)
@@ -779,7 +986,22 @@
 	(value (CAIRO_SURFACE_TYPE_SVG) 10)
 	(value (CAIRO_SURFACE_TYPE_OS2) 11)
 	(value (CAIRO_SURFACE_TYPE_WIN32_PRINTING) 12)
-	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13))
+	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13)
+	(value (CAIRO_SURFACE_TYPE_SCRIPT) 14)
+	(value (CAIRO_SURFACE_TYPE_QT) 15)
+	(value (CAIRO_SURFACE_TYPE_RECORDING) 16)
+	(value (CAIRO_SURFACE_TYPE_VG) 17)
+	(value (CAIRO_SURFACE_TYPE_GL) 18)
+	(value (CAIRO_SURFACE_TYPE_DRM) 19)
+	(value (CAIRO_SURFACE_TYPE_TEE) 20)
+	(value (CAIRO_SURFACE_TYPE_XML) 21)
+	(value (CAIRO_SURFACE_TYPE_SKIA) 22)
+	(value (CAIRO_SURFACE_TYPE_SUBSURFACE) 23))
+(function cairo_device_get_user_data
+	(
+		(argument ((pointer-to cairo_device_t)) device)
+		(argument ((pointer-to const cairo_user_data_key_t)) key))
+	(return (pointer-to void)))
 (function cairo_image_surface_get_width
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
@@ -795,6 +1017,23 @@
 		(argument ((pointer-to double)) dx)
 		(argument ((pointer-to double)) dy))
 	(return void))
+(function cairo_toy_font_face_create
+	(
+		(argument ((pointer-to const char)) family)
+		(argument (cairo_font_slant_t) slant)
+		(argument (cairo_font_weight_t) weight))
+	(return (pointer-to cairo_font_face_t)))
+(function cairo_surface_get_mime_data
+	(
+		(argument ((pointer-to cairo_surface_t)) surface)
+		(argument ((pointer-to const char)) mime_type)
+		(argument ((pointer-to (pointer-to const unsigned char))) data)
+		(argument ((pointer-to long unsigned int)) length))
+	(return void))
+(function cairo_pattern_get_reference_count
+	(
+		(argument ((pointer-to cairo_pattern_t)) pattern))
+	(return unsigned int))
 (function cairo_get_line_cap
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -833,6 +1072,10 @@
 		(argument ((pointer-to cairo_pattern_t)) pattern)
 		(argument ((pointer-to const cairo_matrix_t)) matrix))
 	(return void))
+(function cairo_surface_get_device
+	(
+		(argument ((pointer-to cairo_surface_t)) surface))
+	(return (pointer-to cairo_device_t)))
 (function cairo_rectangle_list_destroy
 	(
 		(argument ((pointer-to cairo_rectangle_list_t)) rectangle_list))
@@ -857,6 +1100,10 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return (pointer-to cairo_scaled_font_t)))
+(function cairo_copy_path
+	(
+		(argument ((pointer-to cairo_t)) cr))
+	(return (pointer-to cairo_path_t)))
 (struct _cairo_pattern :size 0)
 (function cairo_get_current_point
 	(
@@ -865,12 +1112,20 @@
 		(argument ((pointer-to double)) y))
 	(return void))
 (enum _cairo_format
+	(value (CAIRO_FORMAT_INVALID) -1)
 	(value (CAIRO_FORMAT_ARGB32) 0)
 	(value (CAIRO_FORMAT_RGB24) 1)
 	(value (CAIRO_FORMAT_A8) 2)
-	(value (CAIRO_FORMAT_A1) 3))
+	(value (CAIRO_FORMAT_A1) 3)
+	(value (CAIRO_FORMAT_RGB16_565) 4))
 (typedef cairo_format_t
 	_cairo_format)
+(function cairo_region_contains_point
+	(
+		(argument ((pointer-to const cairo_region_t)) region)
+		(argument (int) x)
+		(argument (int) y))
+	(return int))
 (function cairo_push_group
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -883,6 +1138,22 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
+(function cairo_user_font_face_set_init_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face)
+		(argument ((pointer-to (function-type cairo_user_scaled_font_init_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument ((pointer-to cairo_t)) )
+				(argument ((pointer-to cairo_font_extents_t)) ))
+			(return cairo_status_t)))) init_func))
+	(return void))
+(function cairo_in_clip
+	(
+		(argument ((pointer-to cairo_t)) cr)
+		(argument (double) x)
+		(argument (double) y))
+	(return int))
 (function cairo_font_options_get_subpixel_order
 	(
 		(argument ((pointer-to const cairo_font_options_t)) options))
@@ -924,6 +1195,17 @@
 		(argument ((pointer-to cairo_font_options_t)) options)
 		(argument (cairo_antialias_t) antialias))
 	(return void))
+(function cairo_show_text_glyphs
+	(
+		(argument ((pointer-to cairo_t)) cr)
+		(argument ((pointer-to const char)) utf8)
+		(argument (int) utf8_len)
+		(argument ((pointer-to const cairo_glyph_t)) glyphs)
+		(argument (int) num_glyphs)
+		(argument ((pointer-to const cairo_text_cluster_t)) clusters)
+		(argument (int) num_clusters)
+		(argument (cairo_text_cluster_flags_t) cluster_flags))
+	(return void))
 (function cairo_set_source_surface
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -938,10 +1220,34 @@
 		(argument ((pointer-to const cairo_matrix_t)) ctm)
 		(argument ((pointer-to const cairo_font_options_t)) options))
 	(return (pointer-to cairo_scaled_font_t)))
+(function cairo_region_translate
+	(
+		(argument ((pointer-to cairo_region_t)) region)
+		(argument (int) dx)
+		(argument (int) dy))
+	(return void))
 (function cairo_image_surface_get_data
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return (pointer-to unsigned char)))
+(function cairo_user_font_face_get_text_to_glyphs_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return (pointer-to (function-type cairo_user_scaled_font_text_to_glyphs_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument ((pointer-to const char)) )
+				(argument (int) )
+				(argument ((pointer-to (pointer-to cairo_glyph_t))) )
+				(argument ((pointer-to int)) )
+				(argument ((pointer-to (pointer-to cairo_text_cluster_t))) )
+				(argument ((pointer-to int)) )
+				(argument ((pointer-to cairo_text_cluster_flags_t)) ))
+			(return cairo_status_t)))))
+(function cairo_pattern_status
+	(
+		(argument ((pointer-to cairo_pattern_t)) pattern))
+	(return cairo_status_t))
 (function cairo_rectangle
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -956,6 +1262,11 @@
 		(argument ((pointer-to double)) dashes)
 		(argument ((pointer-to double)) offset))
 	(return void))
+(function cairo_region_union
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_region_t)) other))
+	(return cairo_status_t))
 (function cairo_font_options_set_hint_style
 	(
 		(argument ((pointer-to cairo_font_options_t)) options)
@@ -964,17 +1275,19 @@
 (function cairo_font_options_create
 	()
 	(return (pointer-to cairo_font_options_t)))
+(function cairo_surface_create_for_rectangle
+	(
+		(argument ((pointer-to cairo_surface_t)) target)
+		(argument (double) x)
+		(argument (double) y)
+		(argument (double) width)
+		(argument (double) height))
+	(return (pointer-to cairo_surface_t)))
 (function cairo_text_path
 	(
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const char)) utf8))
 	(return void))
-(function cairo_line_to
-	(
-		(argument ((pointer-to cairo_t)) cr)
-		(argument (double) x)
-		(argument (double) y))
-	(return void))
 (function cairo_pattern_get_linear_points
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern)
@@ -1026,16 +1339,33 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
+(function cairo_curve_to
+	(
+		(argument ((pointer-to cairo_t)) cr)
+		(argument (double) x1)
+		(argument (double) y1)
+		(argument (double) x2)
+		(argument (double) y2)
+		(argument (double) x3)
+		(argument (double) y3))
+	(return void))
 (function cairo_scale
 	(
 		(argument ((pointer-to cairo_t)) cr)
 		(argument (double) sx)
 		(argument (double) sy))
 	(return void))
+(typedef cairo_rectangle_int_t
+	_cairo_rectangle_int)
 (function cairo_get_group_target
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return (pointer-to cairo_surface_t)))
+(function cairo_region_get_extents
+	(
+		(argument ((pointer-to const cairo_region_t)) region)
+		(argument ((pointer-to cairo_rectangle_int_t)) extents))
+	(return void))
 (function cairo_pattern_get_surface
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern)
@@ -1050,12 +1380,29 @@
 		(argument (double) blue)
 		(argument (double) alpha))
 	(return void))
+(function cairo_surface_get_fallback_resolution
+	(
+		(argument ((pointer-to cairo_surface_t)) surface)
+		(argument ((pointer-to double)) x_pixels_per_inch)
+		(argument ((pointer-to double)) y_pixels_per_inch))
+	(return void))
 (typedef cairo_hint_style_t
 	_cairo_hint_style)
-(function cairo_copy_path
-	(
-		(argument ((pointer-to cairo_t)) cr))
-	(return (pointer-to cairo_path_t)))
+(function cairo_user_font_face_set_text_to_glyphs_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face)
+		(argument ((pointer-to (function-type cairo_user_scaled_font_text_to_glyphs_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument ((pointer-to const char)) )
+				(argument (int) )
+				(argument ((pointer-to (pointer-to cairo_glyph_t))) )
+				(argument ((pointer-to int)) )
+				(argument ((pointer-to (pointer-to cairo_text_cluster_t))) )
+				(argument ((pointer-to int)) )
+				(argument ((pointer-to cairo_text_cluster_flags_t)) ))
+			(return cairo_status_t)))) text_to_glyphs_func))
+	(return void))
 (function cairo_mask_surface
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1063,6 +1410,11 @@
 		(argument (double) surface_x)
 		(argument (double) surface_y))
 	(return void))
+(function cairo_region_xor
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_region_t)) other))
+	(return cairo_status_t))
 (function cairo_path_extents
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1091,6 +1443,10 @@
 		(argument (double) blue)
 		(argument (double) alpha))
 	(return (pointer-to cairo_pattern_t)))
+(function cairo_toy_font_face_get_weight
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return cairo_font_weight_t))
 (function cairo_surface_write_to_png
 	(
 		(argument ((pointer-to cairo_surface_t)) surface)
@@ -1163,6 +1519,12 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument (cairo_antialias_t) antialias))
 	(return void))
+(function cairo_device_get_reference_count
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return unsigned int))
+(typedef cairo_device_type_t
+	_cairo_device_type)
 (function cairo_font_face_get_user_data
 	(
 		(argument ((pointer-to cairo_font_face_t)) font_face)
@@ -1187,12 +1549,20 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
+(function cairo_region_destroy
+	(
+		(argument ((pointer-to cairo_region_t)) region))
+	(return void))
 (function cairo_glyph_path
 	(
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const cairo_glyph_t)) glyphs)
 		(argument (int) num_glyphs))
 	(return void))
+(function cairo_device_flush
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return void))
 (function cairo_device_to_user
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1219,6 +1589,10 @@
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return (pointer-to cairo_pattern_t)))
+(function cairo_text_cluster_allocate
+	(
+		(argument (int) num_clusters))
+	(return (pointer-to cairo_text_cluster_t)))
 (function cairo_surface_mark_dirty_rectangle
 	(
 		(argument ((pointer-to cairo_surface_t)) surface)
@@ -1227,6 +1601,10 @@
 		(argument (int) width)
 		(argument (int) height))
 	(return void))
+(function cairo_glyph_free
+	(
+		(argument ((pointer-to cairo_glyph_t)) glyphs))
+	(return void))
 (function cairo_set_miter_limit
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1249,6 +1627,11 @@
 		(argument ((pointer-to double)) x_offset)
 		(argument ((pointer-to double)) y_offset))
 	(return void))
+(function cairo_region_union_rectangle
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return cairo_status_t))
 (function cairo_pop_group
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -1270,10 +1653,20 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
+(function cairo_scaled_font_get_scale_matrix
+	(
+		(argument ((pointer-to cairo_scaled_font_t)) scaled_font)
+		(argument ((pointer-to cairo_matrix_t)) scale_matrix))
+	(return void))
 (function cairo_get_operator
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return cairo_operator_t))
+(function cairo_region_xor_rectangle
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return cairo_status_t))
 (function cairo_matrix_init_scale
 	(
 		(argument ((pointer-to cairo_matrix_t)) matrix)
@@ -1290,6 +1683,16 @@
 	_cairo)
 (typedef cairo_font_options_t
 	_cairo_font_options)
+(function cairo_device_set_user_data
+	(
+		(argument ((pointer-to cairo_device_t)) device)
+		(argument ((pointer-to const cairo_user_data_key_t)) key)
+		(argument ((pointer-to void)) user_data)
+		(argument ((pointer-to (function-type cairo_destroy_func_t
+			(
+				(argument ((pointer-to void)) ))
+			(return void)))) destroy))
+	(return cairo_status_t))
 (function cairo_get_reference_count
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -1302,6 +1705,18 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const cairo_matrix_t)) matrix))
 	(return void))
+(function cairo_surface_set_mime_data
+	(
+		(argument ((pointer-to cairo_surface_t)) surface)
+		(argument ((pointer-to const char)) mime_type)
+		(argument ((pointer-to const unsigned char)) data)
+		(argument (long unsigned int) length)
+		(argument ((pointer-to (function-type cairo_destroy_func_t
+			(
+				(argument ((pointer-to void)) ))
+			(return void)))) destroy)
+		(argument ((pointer-to void)) closure))
+	(return cairo_status_t))
 (function cairo_fill_preserve
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -1330,6 +1745,15 @@
 	(
 		(argument ((pointer-to cairo_font_face_t)) font_face))
 	(return cairo_font_type_t))
+(function cairo_device_status
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return cairo_status_t))
+(function cairo_region_create_rectangles
+	(
+		(argument ((pointer-to const cairo_rectangle_int_t)) rects)
+		(argument (int) count))
+	(return (pointer-to cairo_region_t)))
 (function cairo_pattern_set_filter
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern)
@@ -1345,6 +1769,19 @@
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return void))
+(function cairo_recording_surface_ink_extents
+	(
+		(argument ((pointer-to cairo_surface_t)) surface)
+		(argument ((pointer-to double)) x0)
+		(argument ((pointer-to double)) y0)
+		(argument ((pointer-to double)) width)
+		(argument ((pointer-to double)) height))
+	(return void))
+(function cairo_region_subtract_rectangle
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return cairo_status_t))
 (function cairo_clip_extents
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1353,6 +1790,10 @@
 		(argument ((pointer-to double)) x2)
 		(argument ((pointer-to double)) y2))
 	(return void))
+(function cairo_device_reference
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return (pointer-to cairo_device_t)))
 (function cairo_pattern_destroy
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern))
@@ -1376,6 +1817,10 @@
 		(argument (double) dx3)
 		(argument (double) dy3))
 	(return void))
+(function cairo_device_destroy
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return void))
 (function cairo_stroke_extents
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1391,6 +1836,10 @@
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return cairo_format_t))
+(function cairo_text_cluster_free
+	(
+		(argument ((pointer-to cairo_text_cluster_t)) clusters))
+	(return void))
 (function cairo_font_face_status
 	(
 		(argument ((pointer-to cairo_font_face_t)) font_face))
@@ -1406,11 +1855,22 @@
 		(argument (double) width_in_points)
 		(argument (double) height_in_points))
 	(return (pointer-to cairo_surface_t)))
+(enum-foreign _cairo_text_cluster_flags
+	(value (CAIRO_TEXT_CLUSTER_FLAG_BACKWARD) 1))
+(typedef-foreign cairo_text_cluster_flags_t
+	_cairo_text_cluster_flags)
 (struct-foreign cairo_glyph_t :size 160
 	(field (long unsigned int) index :offset 0)
 	(field (double) x :offset 32)
 	(field (double) y :offset 96))
 (struct-foreign _cairo_font_options :size 0)
+(enum-foreign _cairo_device_type
+	(value (CAIRO_DEVICE_TYPE_DRM) 0)
+	(value (CAIRO_DEVICE_TYPE_GL) 1)
+	(value (CAIRO_DEVICE_TYPE_SCRIPT) 2)
+	(value (CAIRO_DEVICE_TYPE_XCB) 3)
+	(value (CAIRO_DEVICE_TYPE_XLIB) 4)
+	(value (CAIRO_DEVICE_TYPE_XML) 5))
 (enum-foreign _cairo_line_cap
 	(value (CAIRO_LINE_CAP_BUTT) 0)
 	(value (CAIRO_LINE_CAP_ROUND) 1)
@@ -1423,6 +1883,9 @@
 	(value (CAIRO_SUBPIXEL_ORDER_BGR) 2)
 	(value (CAIRO_SUBPIXEL_ORDER_VRGB) 3)
 	(value (CAIRO_SUBPIXEL_ORDER_VBGR) 4))
+(struct-foreign _cairo_region :size 0)
+(typedef-foreign cairo_region_t
+	_cairo_region)
 (struct-foreign _cairo_user_data_key :size 32
 	(field (int) unused :offset 0))
 (struct-foreign _cairo_scaled_font :size 0)
@@ -1466,6 +1929,12 @@
 	(field (int) num_rectangles :offset 64))
 (typedef-foreign cairo_rectangle_list_t
 	_cairo_rectangle_list)
+(enum-foreign _cairo_region_overlap
+	(value (CAIRO_REGION_OVERLAP_IN) 0)
+	(value (CAIRO_REGION_OVERLAP_OUT) 1)
+	(value (CAIRO_REGION_OVERLAP_PART) 2))
+(typedef-foreign cairo_region_overlap_t
+	_cairo_region_overlap)
 (enum-foreign _cairo_status
 	(value (CAIRO_STATUS_SUCCESS) 0)
 	(value (CAIRO_STATUS_NO_MEMORY) 1)
@@ -1491,7 +1960,19 @@
 	(value (CAIRO_STATUS_INVALID_INDEX) 21)
 	(value (CAIRO_STATUS_CLIP_NOT_REPRESENTABLE) 22)
 	(value (CAIRO_STATUS_TEMP_FILE_ERROR) 23)
-	(value (CAIRO_STATUS_INVALID_STRIDE) 24))
+	(value (CAIRO_STATUS_INVALID_STRIDE) 24)
+	(value (CAIRO_STATUS_FONT_TYPE_MISMATCH) 25)
+	(value (CAIRO_STATUS_USER_FONT_IMMUTABLE) 26)
+	(value (CAIRO_STATUS_USER_FONT_ERROR) 27)
+	(value (CAIRO_STATUS_NEGATIVE_COUNT) 28)
+	(value (CAIRO_STATUS_INVALID_CLUSTERS) 29)
+	(value (CAIRO_STATUS_INVALID_SLANT) 30)
+	(value (CAIRO_STATUS_INVALID_WEIGHT) 31)
+	(value (CAIRO_STATUS_INVALID_SIZE) 32)
+	(value (CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED) 33)
+	(value (CAIRO_STATUS_DEVICE_TYPE_MISMATCH) 34)
+	(value (CAIRO_STATUS_DEVICE_ERROR) 35)
+	(value (CAIRO_STATUS_LAST_STATUS) 36))
 (typedef-foreign cairo_status_t
 	_cairo_status)
 (enum-foreign _cairo_hint_style
@@ -1500,6 +1981,11 @@
 	(value (CAIRO_HINT_STYLE_SLIGHT) 2)
 	(value (CAIRO_HINT_STYLE_MEDIUM) 3)
 	(value (CAIRO_HINT_STYLE_FULL) 4))
+(function cairo_pdf_surface_restrict_to_version
+	(
+		(argument ((pointer-to cairo_surface_t)) surface)
+		(argument (cairo_pdf_version_t) version))
+	(return void))
 (struct-foreign cairo_font_extents_t :size 320
 	(field (double) ascent :offset 0)
 	(field (double) descent :offset 64)
@@ -1552,7 +2038,8 @@
 	(value (CAIRO_FONT_TYPE_TOY) 0)
 	(value (CAIRO_FONT_TYPE_FT) 1)
 	(value (CAIRO_FONT_TYPE_WIN32) 2)
-	(value (CAIRO_FONT_TYPE_QUARTZ) 3))
+	(value (CAIRO_FONT_TYPE_QUARTZ) 3)
+	(value (CAIRO_FONT_TYPE_USER) 4))
 (enum-foreign _cairo_font_slant
 	(value (CAIRO_FONT_SLANT_NORMAL) 0)
 	(value (CAIRO_FONT_SLANT_ITALIC) 1)
@@ -1565,6 +2052,9 @@
 	(value (CAIRO_CONTENT_COLOR_ALPHA) 12288))
 (typedef-foreign cairo_content_t
 	_cairo_content)
+(struct-foreign _cairo_device :size 0)
+(typedef-foreign cairo_device_t
+	_cairo_device)
 (enum-foreign _cairo_operator
 	(value (CAIRO_OPERATOR_CLEAR) 0)
 	(value (CAIRO_OPERATOR_SOURCE) 1)
@@ -1579,7 +2069,22 @@
 	(value (CAIRO_OPERATOR_DEST_ATOP) 10)
 	(value (CAIRO_OPERATOR_XOR) 11)
 	(value (CAIRO_OPERATOR_ADD) 12)
-	(value (CAIRO_OPERATOR_SATURATE) 13))
+	(value (CAIRO_OPERATOR_SATURATE) 13)
+	(value (CAIRO_OPERATOR_MULTIPLY) 14)
+	(value (CAIRO_OPERATOR_SCREEN) 15)
+	(value (CAIRO_OPERATOR_OVERLAY) 16)
+	(value (CAIRO_OPERATOR_DARKEN) 17)
+	(value (CAIRO_OPERATOR_LIGHTEN) 18)
+	(value (CAIRO_OPERATOR_COLOR_DODGE) 19)
+	(value (CAIRO_OPERATOR_COLOR_BURN) 20)
+	(value (CAIRO_OPERATOR_HARD_LIGHT) 21)
+	(value (CAIRO_OPERATOR_SOFT_LIGHT) 22)
+	(value (CAIRO_OPERATOR_DIFFERENCE) 23)
+	(value (CAIRO_OPERATOR_EXCLUSION) 24)
+	(value (CAIRO_OPERATOR_HSL_HUE) 25)
+	(value (CAIRO_OPERATOR_HSL_SATURATION) 26)
+	(value (CAIRO_OPERATOR_HSL_COLOR) 27)
+	(value (CAIRO_OPERATOR_HSL_LUMINOSITY) 28))
 (typedef-foreign cairo_operator_t
 	_cairo_operator)
 (enum-foreign _cairo_font_weight
@@ -1587,6 +2092,9 @@
 	(value (CAIRO_FONT_WEIGHT_BOLD) 1))
 (typedef-foreign cairo_font_weight_t
 	_cairo_font_weight)
+(struct-foreign cairo_text_cluster_t :size 64
+	(field (int) num_bytes :offset 0)
+	(field (int) num_glyphs :offset 32))
 (struct-foreign _cairo :size 0)
 (struct-foreign cairo_path :size 96
 	(field (cairo_status_t) status :offset 0)
@@ -1594,8 +2102,18 @@
 		(pointer-to cairo_path_data_t)
 ) data :offset 32)
 	(field (int) num_data :offset 64))
+(struct-foreign _cairo_rectangle_int :size 128
+	(field (int) x :offset 0)
+	(field (int) y :offset 32)
+	(field (int) width :offset 64)
+	(field (int) height :offset 96))
 (typedef-foreign cairo_path_data_t
 	_cairo_path_data_t)
+(enum _cairo_pdf_version
+	(value (CAIRO_PDF_VERSION_1_4) 0)
+	(value (CAIRO_PDF_VERSION_1_5) 1))
+(typedef cairo_pdf_version_t
+	_cairo_pdf_version)
 (typedef-foreign cairo_filter_t
 	_cairo_filter)
 (enum-foreign _cairo_path_data_type
@@ -1621,7 +2139,17 @@
 	(value (CAIRO_SURFACE_TYPE_SVG) 10)
 	(value (CAIRO_SURFACE_TYPE_OS2) 11)
 	(value (CAIRO_SURFACE_TYPE_WIN32_PRINTING) 12)
-	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13))
+	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13)
+	(value (CAIRO_SURFACE_TYPE_SCRIPT) 14)
+	(value (CAIRO_SURFACE_TYPE_QT) 15)
+	(value (CAIRO_SURFACE_TYPE_RECORDING) 16)
+	(value (CAIRO_SURFACE_TYPE_VG) 17)
+	(value (CAIRO_SURFACE_TYPE_GL) 18)
+	(value (CAIRO_SURFACE_TYPE_DRM) 19)
+	(value (CAIRO_SURFACE_TYPE_TEE) 20)
+	(value (CAIRO_SURFACE_TYPE_XML) 21)
+	(value (CAIRO_SURFACE_TYPE_SKIA) 22)
+	(value (CAIRO_SURFACE_TYPE_SUBSURFACE) 23))
 (struct-foreign _cairo_font_face :size 0)
 (enum-foreign _cairo_fill_rule
 	(value (CAIRO_FILL_RULE_WINDING) 0)
@@ -1630,10 +2158,12 @@
 	_cairo_fill_rule)
 (struct-foreign _cairo_pattern :size 0)
 (enum-foreign _cairo_format
+	(value (CAIRO_FORMAT_INVALID) -1)
 	(value (CAIRO_FORMAT_ARGB32) 0)
 	(value (CAIRO_FORMAT_RGB24) 1)
 	(value (CAIRO_FORMAT_A8) 2)
-	(value (CAIRO_FORMAT_A1) 3))
+	(value (CAIRO_FORMAT_A1) 3)
+	(value (CAIRO_FORMAT_RGB16_565) 4))
 (typedef-foreign cairo_format_t
 	_cairo_format)
 (typedef-foreign cairo_font_type_t
@@ -1646,6 +2176,10 @@
 	_cairo_line_join)
 (typedef-foreign cairo_surface_type_t
 	_cairo_surface_type)
+(function cairo_pdf_version_to_string
+	(
+		(argument (cairo_pdf_version_t) version))
+	(return (pointer-to const char)))
 (enum-foreign _cairo_hint_metrics
 	(value (CAIRO_HINT_METRICS_DEFAULT) 0)
 	(value (CAIRO_HINT_METRICS_OFF) 1)
@@ -1654,6 +2188,8 @@
 	_cairo_hint_metrics)
 (typedef-foreign cairo_scaled_font_t
 	_cairo_scaled_font)
+(typedef-foreign cairo_rectangle_int_t
+	_cairo_rectangle_int)
 (function cairo_pdf_surface_set_size
 	(
 		(argument ((pointer-to cairo_surface_t)) surface)
@@ -1664,6 +2200,13 @@
 	_cairo_hint_style)
 (typedef-foreign cairo_font_face_t
 	_cairo_font_face)
+(function cairo_pdf_get_versions
+	(
+		(argument ((pointer-to (pointer-to const cairo_pdf_version_t))) versions)
+		(argument ((pointer-to int)) num_versions))
+	(return void))
+(typedef-foreign cairo_device_type_t
+	_cairo_device_type)
 (typedef-foreign cairo_bool_t
 	int)
 (typedef-foreign cairo_pattern_t
@@ -1689,6 +2232,10 @@
 	(pointer-to _XOC))
 (typedef-foreign XOM
 	(pointer-to _XOM))
+(enum-foreign _cairo_text_cluster_flags
+	(value (CAIRO_TEXT_CLUSTER_FLAG_BACKWARD) 1))
+(typedef-foreign cairo_text_cluster_flags_t
+	_cairo_text_cluster_flags)
 (typedef-foreign blksize_t
 	long int)
 (struct-foreign XNoExposeEvent :size 224
@@ -1721,6 +2268,13 @@
 		(pointer-to (pointer-to char))
 ) charset_list :offset 32))
 (struct-foreign _cairo_font_options :size 0)
+(enum-foreign _cairo_device_type
+	(value (CAIRO_DEVICE_TYPE_DRM) 0)
+	(value (CAIRO_DEVICE_TYPE_GL) 1)
+	(value (CAIRO_DEVICE_TYPE_SCRIPT) 2)
+	(value (CAIRO_DEVICE_TYPE_XCB) 3)
+	(value (CAIRO_DEVICE_TYPE_XLIB) 4)
+	(value (CAIRO_DEVICE_TYPE_XML) 5))
 (struct-foreign XDestroyWindowEvent :size 192
 	(field (int) type :offset 0)
 	(field (long unsigned int) serial :offset 32)
@@ -1741,7 +2295,7 @@
 		(pointer-to _XExtData)
 ) next :offset 32)
 	(field (
-		(pointer-to (function-type _2050
+		(pointer-to (function-type _2902
 			(
 				(argument ((pointer-to _XExtData)) ))
 			(return int)))
@@ -1791,6 +2345,9 @@
 	(field (int) same_screen :offset 448))
 (typedef-foreign XButtonPressedEvent
 	XButtonEvent)
+(struct-foreign _cairo_region :size 0)
+(typedef-foreign cairo_region_t
+	_cairo_region)
 (struct-foreign _XIMPreeditDrawCallbackStruct :size 128
 	(field (int) caret :offset 0)
 	(field (int) chg_first :offset 32)
@@ -1844,10 +2401,6 @@
 ) l :offset 0))
 
 ) data :offset 224))
-(struct-foreign __pthread_internal_slist :size 32
-	(field (
-		(pointer-to __pthread_internal_slist)
-) __next :offset 0))
 (union-foreign XEDataObject :size 32 
 	(field (
 		(pointer-to Display)
@@ -1875,16 +2428,16 @@
 	(field (long unsigned int) event :offset 128)
 	(field (long unsigned int) window :offset 160)
 	(field (int) override_redirect :offset 192))
-(struct-foreign XIMCallback :size 64
-	(field ((pointer-to char)) client_data :offset 0)
-	(field ((pointer-to (function-type XIMProc
-			(
-				(argument ((pointer-to _XIM)) )
-				(argument ((pointer-to char)) )
-				(argument ((pointer-to char)) ))
-			(return void)))) callback :offset 32))
+(struct-foreign XOMFontInfo :size 96
+	(field (int) num_font :offset 0)
+	(field (
+		(pointer-to (pointer-to XFontStruct))
+) font_struct_list :offset 32)
+	(field (
+		(pointer-to (pointer-to char))
+) font_name_list :offset 64))
 (typedef-foreign blkcnt64_t
-	long long int)
+	long int)
 (struct-foreign XMapRequestEvent :size 192
 	(field (int) type :offset 0)
 	(field (long unsigned int) serial :offset 32)
@@ -1931,7 +2484,7 @@
 
 ) point :offset 0))
 (typedef-foreign __uint64_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign __id_t
 	unsigned int)
 (typedef-foreign Font
@@ -1950,7 +2503,7 @@
 	(field (int) delta :offset 64)
 	(field ((pointer-to _XOC)) font_set :offset 96))
 (typedef-foreign __intptr_t
-	int)
+	long int)
 (struct-foreign cairo_text_extents_t :size 384
 	(field (double) x_bearing :offset 0)
 	(field (double) y_bearing :offset 64)
@@ -2006,7 +2559,7 @@
 	XMotionEvent)
 (struct-foreign _XPrivate :size 0)
 (typedef-foreign fsblkcnt64_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign __socklen_t
 	unsigned int)
 (struct-foreign _cairo_matrix :size 384
@@ -2028,9 +2581,8 @@
 	(field (int) from_configure :offset 192))
 (typedef-foreign __int16_t
 	short int)
-(struct-foreign _XrmHashBucketRec :size 0)
 (typedef-foreign __loff_t
-	long long int)
+	long int)
 (struct-foreign _cairo_rectangle_list :size 96
 	(field (cairo_status_t) status :offset 0)
 	(field (
@@ -2040,7 +2592,7 @@
 (typedef-foreign cairo_rectangle_list_t
 	_cairo_rectangle_list)
 (typedef-foreign __rlim64_t
-	long long unsigned int)
+	long unsigned int)
 (struct-foreign XKeyEvent :size 480
 	(field (int) type :offset 0)
 	(field (long unsigned int) serial :offset 32)
@@ -2096,6 +2648,12 @@
 ) text :offset 96))
 (typedef-foreign XIMStringConversionCallbackStruct
 	_XIMStringConversionCallbackStruct)
+(enum-foreign _cairo_region_overlap
+	(value (CAIRO_REGION_OVERLAP_IN) 0)
+	(value (CAIRO_REGION_OVERLAP_OUT) 1)
+	(value (CAIRO_REGION_OVERLAP_PART) 2))
+(typedef-foreign cairo_region_overlap_t
+	_cairo_region_overlap)
 (typedef-foreign XIMStringConversionType
 	short unsigned int)
 (struct-foreign Screen :size 640
@@ -2151,6 +2709,18 @@
 	(field (long unsigned int) target :offset 224)
 	(field (long unsigned int) property :offset 256)
 	(field (long unsigned int) time :offset 288))
+(struct-foreign XSelectionEvent :size 288
+	(field (int) type :offset 0)
+	(field (long unsigned int) serial :offset 32)
+	(field (int) send_event :offset 64)
+	(field (
+		(pointer-to Display)
+) display :offset 96)
+	(field (long unsigned int) requestor :offset 128)
+	(field (long unsigned int) selection :offset 160)
+	(field (long unsigned int) target :offset 192)
+	(field (long unsigned int) property :offset 224)
+	(field (long unsigned int) time :offset 256))
 (enum-foreign _cairo_status
 	(value (CAIRO_STATUS_SUCCESS) 0)
 	(value (CAIRO_STATUS_NO_MEMORY) 1)
@@ -2176,7 +2746,19 @@
 	(value (CAIRO_STATUS_INVALID_INDEX) 21)
 	(value (CAIRO_STATUS_CLIP_NOT_REPRESENTABLE) 22)
 	(value (CAIRO_STATUS_TEMP_FILE_ERROR) 23)
-	(value (CAIRO_STATUS_INVALID_STRIDE) 24))
+	(value (CAIRO_STATUS_INVALID_STRIDE) 24)
+	(value (CAIRO_STATUS_FONT_TYPE_MISMATCH) 25)
+	(value (CAIRO_STATUS_USER_FONT_IMMUTABLE) 26)
+	(value (CAIRO_STATUS_USER_FONT_ERROR) 27)
+	(value (CAIRO_STATUS_NEGATIVE_COUNT) 28)
+	(value (CAIRO_STATUS_INVALID_CLUSTERS) 29)
+	(value (CAIRO_STATUS_INVALID_SLANT) 30)
+	(value (CAIRO_STATUS_INVALID_WEIGHT) 31)
+	(value (CAIRO_STATUS_INVALID_SIZE) 32)
+	(value (CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED) 33)
+	(value (CAIRO_STATUS_DEVICE_TYPE_MISMATCH) 34)
+	(value (CAIRO_STATUS_DEVICE_ERROR) 35)
+	(value (CAIRO_STATUS_LAST_STATUS) 36))
 (typedef-foreign cairo_status_t
 	_cairo_status)
 (typedef-foreign Cursor
@@ -2226,10 +2808,6 @@
 	(field (int) depth :offset 0)
 	(field (int) bits_per_pixel :offset 32)
 	(field (int) scanline_pad :offset 64))
-(struct-foreign __fsid_t :size 64
-	(field (
-		(array (int) 1u)
-) __val :offset 0))
 (struct-foreign _cairo_rectangle :size 256
 	(field (double) x :offset 0)
 	(field (double) y :offset 64)
@@ -2295,7 +2873,8 @@
 	(value (CAIRO_FONT_TYPE_TOY) 0)
 	(value (CAIRO_FONT_TYPE_FT) 1)
 	(value (CAIRO_FONT_TYPE_WIN32) 2)
-	(value (CAIRO_FONT_TYPE_QUARTZ) 3))
+	(value (CAIRO_FONT_TYPE_QUARTZ) 3)
+	(value (CAIRO_FONT_TYPE_USER) 4))
 (typedef-foreign uid_t
 	unsigned int)
 (struct-foreign XGraphicsExposeEvent :size 384
@@ -2313,13 +2892,11 @@
 	(field (int) count :offset 288)
 	(field (int) major_code :offset 320)
 	(field (int) minor_code :offset 352))
-(struct-foreign XTextItem :size 128
-	(field (
-		(pointer-to char)
-) chars :offset 0)
-	(field (int) nchars :offset 32)
-	(field (int) delta :offset 64)
-	(field (long unsigned int) font :offset 96))
+(struct-foreign XFontProp :size 64
+	(field (long unsigned int) name :offset 0)
+	(field (long unsigned int) card32 :offset 32))
+(typedef-foreign ino64_t
+	long unsigned int)
 (typedef-foreign pthread_spinlock_t
 	int)
 (typedef-foreign __mode_t
@@ -2347,9 +2924,6 @@
 	_XDisplay)
 (typedef-foreign timer_t
 	(pointer-to void))
-(struct-foreign XFontProp :size 64
-	(field (long unsigned int) name :offset 0)
-	(field (long unsigned int) card32 :offset 32))
 (function cairo_xlib_surface_create
 	(
 		(argument ((pointer-to Display)) dpy)
@@ -2386,9 +2960,9 @@
 		(array (char) 47u)
 ) __size :offset 0)
 	(field (long long int) __align :offset 0))
-(union-foreign pthread_barrier_t :size 160 
+(union-foreign pthread_barrier_t :size 256 
 	(field (
-		(array (char) 19u)
+		(array (char) 31u)
 ) __size :offset 0)
 	(field (long int) __align :offset 0))
 (typedef-foreign __uint8_t
@@ -2428,20 +3002,26 @@
 	(field (XMappingEvent) xmapping :offset 0)
 	(field (XErrorEvent) xerror :offset 0)
 	(field (XKeymapEvent) xkeymap :offset 0)
+	(field (XGenericEvent) xgeneric :offset 0)
+	(field (XGenericEventCookie) xcookie :offset 0)
 	(field (
 		(array (long int) 23u)
 ) pad :offset 0))
 (typedef-foreign XEvent
 	_XEvent)
+(typedef-foreign XIMStringConversionPosition
+	short unsigned int)
 (struct-foreign XOMOrientation :size 64
 	(field (int) num_orientation :offset 0)
 	(field (
 		(pointer-to XOrientation)
 ) orientation :offset 32))
-(typedef-foreign XIMStringConversionPosition
-	short unsigned int)
 (typedef-foreign Colormap
 	long unsigned int)
+(struct-foreign __fsid_t :size 64
+	(field (
+		(array (int) 1u)
+) __val :offset 0))
 (typedef-foreign fsid_t
 	__fsid_t)
 (typedef-foreign __int8_t
@@ -2456,6 +3036,9 @@
 	(return int))
 (typedef-foreign u_short
 	short unsigned int)
+(struct-foreign _cairo_device :size 0)
+(typedef-foreign cairo_device_t
+	_cairo_device)
 (typedef-foreign __useconds_t
 	unsigned int)
 (struct-foreign XCrossingEvent :size 544
@@ -2496,7 +3079,9 @@
 	(field (short int) descent :offset 64)
 	(field (short unsigned int) attributes :offset 80))
 (typedef-foreign __nlink_t
-	unsigned int)
+	long unsigned int)
+(typedef-foreign dev_t
+	long unsigned int)
 (struct-foreign XTimeCoord :size 64
 	(field (long unsigned int) time :offset 0)
 	(field (short int) x :offset 32)
@@ -2517,7 +3102,22 @@
 	(value (CAIRO_OPERATOR_DEST_ATOP) 10)
 	(value (CAIRO_OPERATOR_XOR) 11)
 	(value (CAIRO_OPERATOR_ADD) 12)
-	(value (CAIRO_OPERATOR_SATURATE) 13))
+	(value (CAIRO_OPERATOR_SATURATE) 13)
+	(value (CAIRO_OPERATOR_MULTIPLY) 14)
+	(value (CAIRO_OPERATOR_SCREEN) 15)
+	(value (CAIRO_OPERATOR_OVERLAY) 16)
+	(value (CAIRO_OPERATOR_DARKEN) 17)
+	(value (CAIRO_OPERATOR_LIGHTEN) 18)
+	(value (CAIRO_OPERATOR_COLOR_DODGE) 19)
+	(value (CAIRO_OPERATOR_COLOR_BURN) 20)
+	(value (CAIRO_OPERATOR_HARD_LIGHT) 21)
+	(value (CAIRO_OPERATOR_SOFT_LIGHT) 22)
+	(value (CAIRO_OPERATOR_DIFFERENCE) 23)
+	(value (CAIRO_OPERATOR_EXCLUSION) 24)
+	(value (CAIRO_OPERATOR_HSL_HUE) 25)
+	(value (CAIRO_OPERATOR_HSL_SATURATION) 26)
+	(value (CAIRO_OPERATOR_HSL_COLOR) 27)
+	(value (CAIRO_OPERATOR_HSL_LUMINOSITY) 28))
 (typedef-foreign cairo_operator_t
 	_cairo_operator)
 (enum-foreign XOrientation
@@ -2526,10 +3126,6 @@
 	(value (XOMOrientation_TTB_LTR) 2)
 	(value (XOMOrientation_TTB_RTL) 3)
 	(value (XOMOrientation_Context) 4))
-(function cairo_xlib_surface_get_gc
-	(
-		(argument ((pointer-to cairo_surface_t)) surface))
-	(return (pointer-to _XGC)))
 (struct-foreign XColor :size 96
 	(field (long unsigned int) pixel :offset 0)
 	(field (short unsigned int) red :offset 32)
@@ -2549,10 +3145,29 @@
 	(field (int) depth :offset 32)
 	(field (int) bits_per_pixel :offset 64)
 	(field (int) scanline_pad :offset 96))
+(struct-foreign cairo_text_cluster_t :size 64
+	(field (int) num_bytes :offset 0)
+	(field (int) num_glyphs :offset 32))
+(struct-foreign XIMCallback :size 64
+	(field ((pointer-to char)) client_data :offset 0)
+	(field ((pointer-to (function-type XIMProc
+			(
+				(argument ((pointer-to _XIM)) )
+				(argument ((pointer-to char)) )
+				(argument ((pointer-to char)) ))
+			(return void)))) callback :offset 32))
 (typedef-foreign quad_t
-	long long int)
+	long int)
 (typedef-foreign u_long
 	long unsigned int)
+(struct-foreign XICCallback :size 64
+	(field ((pointer-to char)) client_data :offset 0)
+	(field ((pointer-to (function-type XICProc
+			(
+				(argument ((pointer-to _XIC)) )
+				(argument ((pointer-to char)) )
+				(argument ((pointer-to char)) ))
+			(return int)))) callback :offset 32))
 (struct-foreign XRectangle :size 64
 	(field (short int) x :offset 0)
 	(field (short int) y :offset 16)
@@ -2560,9 +3175,19 @@
 	(field (short unsigned int) height :offset 48))
 (typedef-foreign int32_t
 	int)
-(enum-foreign XIMStatusDataType
-	(value (XIMTextType) 0)
-	(value (XIMBitmapType) 1))
+(enum-foreign XIMCaretDirection
+	(value (XIMForwardChar) 0)
+	(value (XIMBackwardChar) 1)
+	(value (XIMForwardWord) 2)
+	(value (XIMBackwardWord) 3)
+	(value (XIMCaretUp) 4)
+	(value (XIMCaretDown) 5)
+	(value (XIMNextLine) 6)
+	(value (XIMPreviousLine) 7)
+	(value (XIMLineStart) 8)
+	(value (XIMLineEnd) 9)
+	(value (XIMAbsolutePosition) 10)
+	(value (XIMDontChange) 11))
 (struct-foreign XGCValues :size 736
 	(field (int) function :offset 0)
 	(field (long unsigned int) plane_mask :offset 32)
@@ -2609,6 +3234,11 @@
 		(pointer-to cairo_path_data_t)
 ) data :offset 32)
 	(field (int) num_data :offset 64))
+(struct-foreign _cairo_rectangle_int :size 128
+	(field (int) x :offset 0)
+	(field (int) y :offset 32)
+	(field (int) width :offset 64)
+	(field (int) height :offset 96))
 (typedef-foreign __pid_t
 	int)
 (struct-foreign XIMStyles :size 64
@@ -2616,6 +3246,13 @@
 	(field (
 		(pointer-to long unsigned int)
 ) supported_styles :offset 32))
+(struct-foreign __pthread_internal_list :size 64
+	(field (
+		(pointer-to __pthread_internal_list)
+) __prev :offset 0)
+	(field (
+		(pointer-to __pthread_internal_list)
+) __next :offset 32))
 (typedef-foreign cairo_path_data_t
 	_cairo_path_data_t)
 (function cairo_xlib_surface_set_size
@@ -2625,7 +3262,7 @@
 		(argument (int) height))
 	(return void))
 (typedef-foreign __dev_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign cairo_filter_t
 	_cairo_filter)
 (struct-foreign timespec :size 64
@@ -2660,7 +3297,7 @@
 		(pointer-to Screen)
 ) screen :offset 704))
 (typedef-foreign __blkcnt64_t
-	long long int)
+	long int)
 (typedef-foreign Window
 	long unsigned int)
 (struct-foreign _XIMStringConversionText :size 128
@@ -2682,7 +3319,7 @@
 (typedef-foreign fsblkcnt_t
 	long unsigned int)
 (typedef-foreign __qaddr_t
-	(pointer-to long long int))
+	(pointer-to long int))
 (struct-foreign _XIMStatusDrawCallbackStruct :size 64
 	(field (XIMStatusDataType) type :offset 0)
 	(field (
@@ -2711,8 +3348,6 @@
 	XFocusChangeEvent)
 (typedef-foreign XKeyPressedEvent
 	XKeyEvent)
-(typedef-foreign __pthread_slist_t
-	__pthread_internal_slist)
 (struct-foreign XErrorEvent :size 160
 	(field (int) type :offset 0)
 	(field (
@@ -2727,8 +3362,6 @@
 	XFocusChangeEvent)
 (typedef-foreign __uint32_t
 	unsigned int)
-(typedef-foreign ino64_t
-	long long unsigned int)
 (enum-foreign _cairo_path_data_type
 	(value (CAIRO_PATH_MOVE_TO) 0)
 	(value (CAIRO_PATH_LINE_TO) 1)
@@ -2745,18 +3378,6 @@
 		(array (char) 3u)
 ) __size :offset 0)
 	(field (int) __align :offset 0))
-(struct-foreign XSelectionEvent :size 288
-	(field (int) type :offset 0)
-	(field (long unsigned int) serial :offset 32)
-	(field (int) send_event :offset 64)
-	(field (
-		(pointer-to Display)
-) display :offset 96)
-	(field (long unsigned int) requestor :offset 128)
-	(field (long unsigned int) selection :offset 160)
-	(field (long unsigned int) target :offset 192)
-	(field (long unsigned int) property :offset 224)
-	(field (long unsigned int) time :offset 256))
 (typedef-foreign int16_t
 	short int)
 (function cairo_xlib_surface_get_visual
@@ -2771,8 +3392,6 @@
 		(argument (int) width)
 		(argument (int) height))
 	(return void))
-(typedef-foreign blkcnt_t
-	long int)
 (typedef-foreign __daddr_t
 	int)
 (enum-foreign _cairo_surface_type
@@ -2789,7 +3408,17 @@
 	(value (CAIRO_SURFACE_TYPE_SVG) 10)
 	(value (CAIRO_SURFACE_TYPE_OS2) 11)
 	(value (CAIRO_SURFACE_TYPE_WIN32_PRINTING) 12)
-	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13))
+	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13)
+	(value (CAIRO_SURFACE_TYPE_SCRIPT) 14)
+	(value (CAIRO_SURFACE_TYPE_QT) 15)
+	(value (CAIRO_SURFACE_TYPE_RECORDING) 16)
+	(value (CAIRO_SURFACE_TYPE_VG) 17)
+	(value (CAIRO_SURFACE_TYPE_GL) 18)
+	(value (CAIRO_SURFACE_TYPE_DRM) 19)
+	(value (CAIRO_SURFACE_TYPE_TEE) 20)
+	(value (CAIRO_SURFACE_TYPE_XML) 21)
+	(value (CAIRO_SURFACE_TYPE_SKIA) 22)
+	(value (CAIRO_SURFACE_TYPE_SUBSURFACE) 23))
 (struct-foreign _cairo_font_face :size 0)
 (typedef-foreign ulong
 	long unsigned int)
@@ -2805,15 +3434,11 @@
 (typedef-foreign id_t
 	unsigned int)
 (typedef-foreign __ssize_t
-	int)
+	long int)
 (typedef-foreign __fsfilcnt_t
 	long unsigned int)
 (typedef-foreign __blkcnt_t
 	long int)
-(function cairo_xlib_surface_get_display
-	(
-		(argument ((pointer-to cairo_surface_t)) surface))
-	(return (pointer-to Display)))
 (typedef-foreign __u_int
 	unsigned int)
 (enum-foreign _cairo_fill_rule
@@ -2827,13 +3452,15 @@
 		(pointer-to (pointer-to char))
 ) supported_values :offset 32))
 (typedef-foreign fsfilcnt64_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign XIMFeedback
 	long unsigned int)
 (struct-foreign _cairo_pattern :size 0)
 (struct-foreign _XGC :size 0)
 (typedef-foreign XLeaveWindowEvent
 	XCrossingEvent)
+(typedef-foreign blkcnt_t
+	long int)
 (struct-foreign _XIC :size 0)
 (struct-foreign _XIMHotKeyTrigger :size 96
 	(field (long unsigned int) keysym :offset 0)
@@ -2842,10 +3469,12 @@
 (typedef-foreign XIMHotKeyTrigger
 	_XIMHotKeyTrigger)
 (enum-foreign _cairo_format
+	(value (CAIRO_FORMAT_INVALID) -1)
 	(value (CAIRO_FORMAT_ARGB32) 0)
 	(value (CAIRO_FORMAT_RGB24) 1)
 	(value (CAIRO_FORMAT_A8) 2)
-	(value (CAIRO_FORMAT_A1) 3))
+	(value (CAIRO_FORMAT_A1) 3)
+	(value (CAIRO_FORMAT_RGB16_565) 4))
 (typedef-foreign cairo_format_t
 	_cairo_format)
 (typedef-foreign __time_t
@@ -2854,15 +3483,9 @@
 	(field (
 		(array (long int) 31u)
 ) fds_bits :offset 0))
-(union-foreign pthread_attr_t :size 288 
+(union-foreign pthread_attr_t :size 448 
 	(field (
-		(array (char) 35u)
-) __size :offset 0)
-	(field (long int) __align :offset 0))
-(union-foreign pthread_mutex_t :size 192 
-	(field (__pthread_mutex_s) __data :offset 0)
-	(field (
-		(array (char) 23u)
+		(array (char) 55u)
 ) __size :offset 0)
 	(field (long int) __align :offset 0))
 (typedef-foreign __off_t
@@ -2876,8 +3499,11 @@
 	int)
 (typedef-foreign daddr_t
 	int)
+(enum-foreign XIMStatusDataType
+	(value (XIMTextType) 0)
+	(value (XIMBitmapType) 1))
 (typedef-foreign __fsblkcnt64_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign cairo_font_type_t
 	_cairo_font_type)
 (typedef-foreign KeyCode
@@ -2885,14 +3511,14 @@
 (typedef-foreign XIMPreeditCaretCallbackStruct
 	_XIMPreeditCaretCallbackStruct)
 (typedef-foreign ssize_t
-	int)
+	long int)
 (union-foreign pthread_rwlockattr_t :size 64 
 	(field (
 		(array (char) 7u)
 ) __size :offset 0)
 	(field (long int) __align :offset 0))
 (typedef-foreign __int64_t
-	long long int)
+	long int)
 (typedef-foreign __fsblkcnt_t
 	long unsigned int)
 (typedef-foreign __clockid_t
@@ -2907,9 +3533,9 @@
 	(field (int) key :offset 192)
 	(field (int) auto_repeat_mode :offset 224))
 (typedef-foreign size_t
-	unsigned int)
+	long unsigned int)
 (typedef-foreign __fsfilcnt64_t
-	long long unsigned int)
+	long unsigned int)
 (struct-foreign XKeyboardState :size 448
 	(field (int) key_click_percent :offset 0)
 	(field (int) bell_percent :offset 32)
@@ -2924,7 +3550,7 @@
 	(field (short int) x :offset 0)
 	(field (short int) y :offset 16))
 (typedef-foreign loff_t
-	long long int)
+	long int)
 (typedef-foreign __u_char
 	unsigned char)
 (struct-foreign _XImage :size 704
@@ -2964,6 +3590,16 @@
 	long unsigned int)
 (typedef-foreign Atom
 	long unsigned int)
+(struct-foreign XResizeRequestEvent :size 224
+	(field (int) type :offset 0)
+	(field (long unsigned int) serial :offset 32)
+	(field (int) send_event :offset 64)
+	(field (
+		(pointer-to Display)
+) display :offset 96)
+	(field (long unsigned int) window :offset 128)
+	(field (int) width :offset 160)
+	(field (int) height :offset 192))
 (enum-foreign _cairo_line_join
 	(value (CAIRO_LINE_JOIN_MITER) 0)
 	(value (CAIRO_LINE_JOIN_ROUND) 1)
@@ -2977,7 +3613,7 @@
 (typedef-foreign XIMStringConversionText
 	_XIMStringConversionText)
 (typedef-foreign _XPrivDisplay
-	(pointer-to _1020))
+	(pointer-to _1108))
 (enum-foreign _cairo_hint_metrics
 	(value (CAIRO_HINT_METRICS_DEFAULT) 0)
 	(value (CAIRO_HINT_METRICS_OFF) 1)
@@ -3012,6 +3648,8 @@
 	(field (int) map_entries :offset 224))
 (typedef-foreign int64_t
 	long long int)
+(typedef-foreign cairo_rectangle_int_t
+	_cairo_rectangle_int)
 (struct-foreign XSegment :size 64
 	(field (short int) x1 :offset 0)
 	(field (short int) y1 :offset 16)
@@ -3074,6 +3712,12 @@
 	unsigned int)
 (typedef-foreign __fd_mask
 	long int)
+(union-foreign pthread_mutex_t :size 320 
+	(field (__pthread_mutex_s) __data :offset 0)
+	(field (
+		(array (char) 39u)
+) __size :offset 0)
+	(field (long int) __align :offset 0))
 (typedef-foreign Mask
 	long unsigned int)
 (struct-foreign XCreateWindowEvent :size 384
@@ -3091,29 +3735,29 @@
 	(field (int) height :offset 288)
 	(field (int) border_width :offset 320)
 	(field (int) override_redirect :offset 352))
-(enum-foreign XIMCaretDirection
-	(value (XIMForwardChar) 0)
-	(value (XIMBackwardChar) 1)
-	(value (XIMForwardWord) 2)
-	(value (XIMBackwardWord) 3)
-	(value (XIMCaretUp) 4)
-	(value (XIMCaretDown) 5)
-	(value (XIMNextLine) 6)
-	(value (XIMPreviousLine) 7)
-	(value (XIMLineStart) 8)
-	(value (XIMLineEnd) 9)
-	(value (XIMAbsolutePosition) 10)
-	(value (XIMDontChange) 11))
+(struct-foreign XTextItem :size 128
+	(field (
+		(pointer-to char)
+) chars :offset 0)
+	(field (int) nchars :offset 32)
+	(field (int) delta :offset 64)
+	(field (long unsigned int) font :offset 96))
+(typedef-foreign __pthread_list_t
+	__pthread_internal_list)
 (typedef-foreign ptrdiff_t
-	int)
+	long int)
 (typedef-foreign pthread_key_t
 	unsigned int)
 (typedef-foreign __timer_t
 	(pointer-to void))
 (typedef-foreign __off64_t
-	long long int)
+	long int)
 (typedef-foreign cairo_font_face_t
 	_cairo_font_face)
+(function cairo_xlib_surface_get_display
+	(
+		(argument ((pointer-to cairo_surface_t)) surface))
+	(return (pointer-to Display)))
 (struct-foreign XHostAddress :size 96
 	(field (int) family :offset 0)
 	(field (int) length :offset 32)
@@ -3121,7 +3765,7 @@
 		(pointer-to char)
 ) address :offset 64))
 (typedef-foreign u_quad_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign XEnterWindowEvent
 	XCrossingEvent)
 (typedef-foreign GC
@@ -3139,8 +3783,10 @@
 	(field (int) state :offset 160))
 (typedef-foreign XIMResetState
 	long unsigned int)
+(typedef-foreign cairo_device_type_t
+	_cairo_device_type)
 (typedef-foreign __quad_t
-	long long int)
+	long int)
 (typedef-foreign __u_long
 	long unsigned int)
 (struct-foreign XColormapEvent :size 256
@@ -3154,8 +3800,9 @@
 	(field (long unsigned int) colormap :offset 160)
 	(field (int) c_new :offset 192)
 	(field (int) state :offset 224))
+(struct-foreign _XrmHashBucketRec :size 0)
 (typedef-foreign nlink_t
-	unsigned int)
+	long unsigned int)
 (typedef-foreign pthread_once_t
 	int)
 (typedef-foreign caddr_t
@@ -3174,24 +3821,24 @@
 	long unsigned int)
 (typedef-foreign cairo_user_data_key_t
 	_cairo_user_data_key)
-(union-foreign pthread_rwlock_t :size 256 
+(union-foreign pthread_rwlock_t :size 448 
 	(field (
-		(struct-foreign  :size 256
+		(struct-foreign  :size 352
 	(field (int) __lock :offset 0)
 	(field (unsigned int) __nr_readers :offset 32)
 	(field (unsigned int) __readers_wakeup :offset 64)
 	(field (unsigned int) __writer_wakeup :offset 96)
 	(field (unsigned int) __nr_readers_queued :offset 128)
 	(field (unsigned int) __nr_writers_queued :offset 160)
-	(field (unsigned char) __flags :offset 192)
-	(field (unsigned char) __shared :offset 200)
-	(field (unsigned char) __pad1 :offset 208)
-	(field (unsigned char) __pad2 :offset 216)
-	(field (int) __writer :offset 224))
+	(field (int) __writer :offset 192)
+	(field (int) __shared :offset 224)
+	(field (long unsigned int) __pad1 :offset 256)
+	(field (long unsigned int) __pad2 :offset 288)
+	(field (unsigned int) __flags :offset 320))
 
 ) __data :offset 0)
 	(field (
-		(array (char) 31u)
+		(array (char) 55u)
 ) __size :offset 0)
 	(field (long int) __align :offset 0))
 (struct-foreign XArc :size 96
@@ -3222,7 +3869,7 @@
 	(field (long unsigned int) private5 :offset 288)
 	(field (int) private6 :offset 320)
 	(field (
-		(pointer-to (function-type _2061
+		(pointer-to (function-type _3024
 			(
 				(argument ((pointer-to _XDisplay)) ))
 			(return long unsigned int)))
@@ -3255,7 +3902,7 @@
 		(pointer-to _XrmHashBucketRec)
 ) db :offset 960)
 	(field (
-		(pointer-to (function-type _2062
+		(pointer-to (function-type _3025
 			(
 				(argument ((pointer-to _XDisplay)) ))
 			(return int)))
@@ -3307,16 +3954,6 @@
 	(field (int) y :offset 224))
 (typedef-foreign ino_t
 	long unsigned int)
-(struct-foreign XResizeRequestEvent :size 224
-	(field (int) type :offset 0)
-	(field (long unsigned int) serial :offset 32)
-	(field (int) send_event :offset 64)
-	(field (
-		(pointer-to Display)
-) display :offset 96)
-	(field (long unsigned int) window :offset 128)
-	(field (int) width :offset 160)
-	(field (int) height :offset 192))
 (struct-foreign XCirculateEvent :size 224
 	(field (int) type :offset 0)
 	(field (long unsigned int) serial :offset 32)
@@ -3327,34 +3964,40 @@
 	(field (long unsigned int) event :offset 128)
 	(field (long unsigned int) window :offset 160)
 	(field (int) place :offset 192))
+(struct-foreign XGenericEventCookie :size 256
+	(field (int) type :offset 0)
+	(field (long unsigned int) serial :offset 32)
+	(field (int) send_event :offset 64)
+	(field (
+		(pointer-to Display)
+) display :offset 96)
+	(field (int) extension :offset 128)
+	(field (int) evtype :offset 160)
+	(field (unsigned int) cookie :offset 192)
+	(field (
+		(pointer-to void)
+) data :offset 224))
 (typedef-foreign XIMText
 	_XIMText)
+(struct-foreign XGenericEvent :size 192
+	(field (int) type :offset 0)
+	(field (long unsigned int) serial :offset 32)
+	(field (int) send_event :offset 64)
+	(field (
+		(pointer-to Display)
+) display :offset 96)
+	(field (int) extension :offset 128)
+	(field (int) evtype :offset 160))
 (typedef-foreign off64_t
-	long long int)
+	long int)
 (typedef-foreign key_t
 	int)
-(struct-foreign XOMFontInfo :size 96
-	(field (int) num_font :offset 0)
-	(field (
-		(pointer-to (pointer-to XFontStruct))
-) font_struct_list :offset 32)
-	(field (
-		(pointer-to (pointer-to char))
-) font_name_list :offset 64))
 (function cairo_xlib_surface_get_screen
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return (pointer-to Screen)))
 (typedef-foreign __u_quad_t
-	long long unsigned int)
-(struct-foreign XICCallback :size 64
-	(field ((pointer-to char)) client_data :offset 0)
-	(field ((pointer-to (function-type XICProc
-			(
-				(argument ((pointer-to _XIC)) )
-				(argument ((pointer-to char)) )
-				(argument ((pointer-to char)) ))
-			(return int)))) callback :offset 32))
+	long unsigned int)
 (typedef-foreign cairo_antialias_t
 	_cairo_antialias)
 (typedef-foreign __rlim_t
@@ -3376,12 +4019,10 @@
 	cairo_path)
 (typedef-foreign __blksize_t
 	long int)
-(typedef-foreign dev_t
-	long long unsigned int)
 (typedef-foreign XButtonReleasedEvent
 	XButtonEvent)
 (typedef-foreign __ino64_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign XIC
 	(pointer-to _XIC))
 (typedef-foreign XID